پروژه درس گرافیک کامپیوتری - رسم اشکال هندسی و بازی Snake

یه استاد تو دانشگاه داشتیم ازمون یه پروژه خواست به این شکل:

تو ویژوال استودیو به صورت فرم
یه سری ابجکت هندسی میخوایم (مثل دایره/ لوزی/ مثلث و ...) که متحرک باشن و بشه با موس و کیبرد کنترلشون کرد
همچنین تو فضای صفحه نمایش محدود باشه (از صفحه بیرون نزنن)

یه پروژه مار(Snake) هم با سی شارپ فرم میخوایم (خیلی خیلی ساده فقط هم تو فضای ثابت صفحه (از صفحه بیرون نره))

همچنین امکان تنظیم سرعت حرکت تو هر دو پروژه باشه و همچنین شروع و توقف حرکت

 

دریافت
حجم: 887 کیلوبایت
توضیحات: همراه با سورس

ادامه مطلب...
۰۲ اسفند ۹۴ ، ۲۲:۳۱ ۲ نظر
مهدی غفاری

ساخت databaselink

به مثال زیر دقت کنید:

Create database link myTestlink connect to system identified by 123 using 'orcl2';

خب حالا هر زمان ما از عبارت myTestlink استفاده کنیم دیتابیس اوراکل با یوزر system و پسورد 123 وصل میشه به دیتابیس orcl2

نکته: اگر مخزن در سرور localhost نیست مخزن را به صورت orcl2_computername وارد کنید. مثال: orcl2_localhost به مخزن orcl2 در همین کامپیوتر اشاره دارد. همچنین می‌توانید به جای اسم سرور از ip سرور نیز استفاده کنید.

استفاده از Database Link

بعد از ساخت Database link می‌توان گفت:

Select * from dual@myTestlink;

حذف Database Link

برای حذف Database Link می‌توانید به صورت زیر عمل کنید:

drop database link myTestlink;
۱۰ مرداد ۹۴ ، ۱۸:۰۶ ۲ نظر
مهدی غفاری

بازیابی اطلاعات در ورژن‌های مختلف اوراکل

همیشه یادتون باشه وقتی Export می‌گیرید از ورژن بالا به پایین در برخی موارد خاص ممکنه به مشکل بخورید ولی باز هم می‌تونید Export رو انجام بدید.

من خودم از 12 اکسپورت بردم رو 11 از 11 بردم رو 10 و مشکل خاصی نداشتم.

معمولاً بیشترین مشکلی که در Export روی ورژن‌های مختلف موجوده SPها هستن چون مثلاً یه SP تو 12 بوده و بعد موقع بازیابی روی مثلاً 10g چون اون SP وجود نداره SPها برنمیگردن البته بازیابی انجام میشه ولی همه SPها از کار افتادن، در این مواقع می‌توان SPها رو دوباره نوشت و کامپایل کرد.

۱۰ مرداد ۹۴ ، ۱۷:۴۱ ۰ نظر
مهدی غفاری

نحوه exportگیری در اوراکل (Data Pump Export)

با استفاده از دستور expdp می‌توان عملیات exportگیری به روش Data Pump را شروع کرد، به مثال زیر دقت کنید:

C:\Users\Mahdi>expdp

Export: Release 12.1.0.1.0 - Production on Sat Aug 1 16:58:44 2015
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.

Username: test
Password:
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit
Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions
Starting "TEST"."SYS_EXPORT_SCHEMA_01": test/********
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
. . exported "TEST"."T1" 5.484 KB 3 rows
Master table "TEST"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for TEST.SYS_EXPORT_SCHEMA_01 is:
E:\APP\ORACLE\ADMIN\ORCL\DPDUMP\EXPDAT.DMP
Job "TEST"."SYS_EXPORT_SCHEMA_01" successfully completed at Sat Aug 1 17:00:20 2
015 elapsed 0 00:00:56

C:\Users\Mahdi>

خب همانطور که می‌بیندی بعد از ورود دستور expdp فقط کافی است اطلاعات اکانتی که می‌خواهید از آن بک‌آپ بگیرید را وارد کنید. بعد از وارد کردن اطلاعات اکانت به طور خودکار بک‌آپ گیری از جداول و رول‌های یوزر شروع شده و در آخر مسیر ذخیره فایل نمایش داده می‌شود.

بازیابی اطلاعات از فایل بک‌آپ

برای بازیابی اطلاعات از فایل بک‌آپ ابتدا یوزر موردنظر را از سطح دیتابیس پاک می‌کنیم سپس اقدام به بازیابی می‌کنیم:

SQL> drop user test cascade;

User dropped.

حال از دستور impdp برای بازیابی اطلاعات از روی فایل بک‌آپ Data Pump استفاده می‌کنیم:

C:\Users\Mahdi>impdp

Import: Release 12.1.0.1.0 - Production on Sat Aug 1 17:19:08 2015
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
Username: system
Password:
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit
Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/********
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "TEST"."T1" 5.484 KB 3 rows
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
Job "SYSTEM"."SYS_IMPORT_FULL_01" successfully completed at Sat Aug 1 17:19:36 2
015 elapsed 0 00:00:16

نکته: موقع بازیابی با Data Pump به طور خودکار user برمیگرده و نیازی به ایجاد user مانند حالت classic export نیست.

نکته: به طور معمول در سازمان‌ها(بسته به سیاست بک‌آپ گیری سازمان متغیر خواهد بود) هفته‌ای یکبار Data Pump Export انجام می‌شود و روزانه یکبار بک‌آپ با RMAN

SQL> select * from test.t1;

ID NAME
---------- --------------------
1 mahdi
2 mohsen
2 mohammad

نکته: impdp از همان مسیری که به صورت پیش‌فرض expdp بک‌آپ را گرفته بازیابی اطلاعات را انجام می‌دهد. اگر شما بخواهید از Export‌ گرفته شده در سرور دیگری استفاده کنید باید دقیقاً فایل بک‌آپ را در مسیر پیش‌فرض Data Pump قرار دهید تا impdp بتواند بازیابی را انجام دهد.

نکته: می‌توان با تنظیم یک Environment variable مسیر پیش‌فرض impdp را برای بازیابی و یا موقع بک‌آپ برای expdp تغییر داد. ولی به صورت پیش‌فرض از ROOT اوراکل برای بک‌آپ و بازیابی استفاده می‌کنند.(اطلاعات بیشتر)

۱۰ مرداد ۹۴ ، ۱۶:۳۸ ۰ نظر
مهدی غفاری

تفاوت Data pump Export با Classic Export

از ورژن 10g ابزاری به اوراکل اضافه شد به نام Data Pump Export وظیفه این ابزار این بود که به جای Exp که یه عمل بسیار کندیه برای Exportگیری از دیتابیس عمل Expگیری رو سریعتر انجام بده و اصطلاحاً dynamic buffer است

نکته: Classic Exp به صورت static buffer عمل می‌کند، یعنی در حین انجام عملیات Exportگیری بافرش تغییر نمیکنه و از یک بافر ثابت استفاده می‌کنه پس اگر بافر رو زیاد بدید عمل Exportگیری سریع انجام میشه اما اگه transaction زیاد موقع Exportگیری روی دیتابیس بیوفته دیتابیس کرش میکنه و اگر بافر رو کم بدید موقع transaction زیاد دیتابیس کرش نمیکنه ولی عمل Exportگیری ممکنه چندین روز طول بکشه

پس راه‌حل استفاده از Data Pump است که به صورت dynamic buffer عمل می‌کنه.

۱۰ مرداد ۹۴ ، ۱۶:۲۷ ۰ نظر
مهدی غفاری

نحوه export گیری در اوراکل (Classic Export)

خب در حقیقت با exportگیری کل structure دیتابیس رو انتقال می‌دهیم یعنی می‌توانیم کل structure یک دیتابیس را از یک سرور به یک سرور دیگه به صورت کامل انتقال دهیم. ولی برای بک‌آپ گیری به صورت معمول از RMAN استفاده می‌شود.

نکته: تو محیط RMAN می‌توان بک‌آپ با structure هم گرفت.

در اوراکل محیط export شامل ۲ ورژن میشه:

  1. Classic Export
  2. Export Data Pump (قابل دسترس از ورژن 10g به بعد)

قبل از export‌گیری محیطی را برای تست آماده می‌کنیم:

Enter user-name: system
Enter password:
Last Successful login time: Sat Apr 25 2015 22:24:51 +04:30

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> create user test identified by 123;
User created.
SQL> grant dba, connect to test;
Grant succeeded.
SQL> connect test
Enter password:
Connected.
SQL> create table t1(id number, name varchar2(20));
Table created.
SQL> insert into t1 values (1, 'mahdi');
1 row created.
SQL> insert into t1 values (2, 'mohsen');
1 row created.
SQL> insert into t1 values (2, 'mohammad');
1 row created.
SQL> select * from t1;
ID         NAME
---------- --------------------
1 mahdi
2 mohsen
2 mohammad
SQL>

ادامه مطلب...
۰۴ مرداد ۹۴ ، ۲۰:۲۴ ۱ نظر
مهدی غفاری

انتشار اپلیکیشن "دوربین مخفی"

توضیحات رو می‌تونید از طریق صفحه اپلیکیشن در کافه بازار دنبال کنید:

۰۴ مرداد ۹۴ ، ۱۷:۴۷ ۰ نظر
مهدی غفاری

خاموش و روشن کردن listener

اگر listener oracle شما خوابیده است ابتدا وارد Oracle Net Manager شوید و از وجود Service Namingها به ازای هر مخزن اطمینان حاصل کنید (اگر ۲ مخزن دارید به ازای هر مخزن باید یک SN موجود باشد). مانند شکل زیر:

با زدن show advanced می‌توانید تنظیمات مختلف شنونده را برای مخزن موردنظر انجام دهید.

برای اضافه یا حذف listenerها به ابزار Net Configuration Assistant مراجعه می‌کنیم. Listener configuration را انتخاب و Next می‌کنیم.

(برای اجرای این ابزار می‌توانید بر روی shortcut این نرم‌افزار در سیستم‌عامل خود کلیک کنید و یا با زدن netca در شل سیستم‌عاملتون این نرم‌افزار را اجرا کنید.)

 

به طور معمول برای stop کردن listener من خودم شخصاً deleteاش می‌کنم و دوباره add می‌کنم.

بعد از انتخاب delete بر روی Next کلیک می‌کنیم:

نکته: اگر پورت listener را عوض کرده‌اید، الزاماً باید وارد Net Manager شوید و از این طریق پورت مخزن مورد نظر را به پورت جدید listener اتصال دهید.

۰۴ مرداد ۹۴ ، ۱۷:۰۱ ۰ نظر
مهدی غفاری

نصب Solaris x86 11 از روی ISO در Virtualmachine - NICها، IPها و hostnameها

حالا یک سرور سولاریس ۱۱.۲ در اختیار ماست و کاری هم با آن نداریم. بیایید کار را ادامه دهیم و بر روی سیستم یک دیتابیس 12c نصب کنیم. این کار، محیط تجربی مناسبی را در اختیارمان می‌گذارد تا ویژگی‌های دیتابیس را تجربه کنیم؛ چیزهایی شبیه نمای V$KERNEL_IO_OUTLIER و روش جدید به‌اشتراک‌گذاری بهینه‌ی حافظه‌ی دیتابیس حافظه‌ی مدیریت.

قبل از اینکه بتوانیم دیتابیس 12c را بر روی ماشین مجازی نصب کنیم، می‌بایست تغییرات کوچکی را اعمال کنیم. من در محیط vbox خود شبکه‌ی مجزایی دارم که بر روی آن یک سرور OEM 12c و یک سرور DNS را بکار می‌گیرم که نسخه‌هایی کاملا مشابه موارد بکار رفته در OEM 12c هستند. همچنین باید با استفاده از دیسک‌های مجازی کمی هم به فضای دیسک اضافه کنم و آن را درون یک سید ZFS جدید قرار دهم.

اول از همه می‌بایست یک NIC جدید به سرور دیتابیس خارجی اضافه کنیم. این کار عمدتا به خاطر محیط آزمایشی مد نظر من است که می‌خواهم آن را به یک سیستم Oracle Enterprise Manager 12c متصل کنم. همچنین لازم است که این NIC جدید به جای یک آدرس آی‌پی بر مبنای DHCP، یک آی‌پی ایستا داشته باشد.

 

اول از همه می‌بایست سرور سولاریس ۱۱.۲ را خاموش کنیم. این کار را می‌توان با استفاده از دستور شات‌داون انجام داد:

پس از چند دقیقه ماشین مجازی می‌بایست خاموش شده باشد و شبیه این حالت در ویرچوآل باکس به نظر بیاید.

حالا باید یک رابط کاربری جدید اضافه کنیم. VM را انتخاب کنید و بر رو settings کلیلک کنید.

حالا کارد تنظیمات را در پیش روی خود دارید.

گزینه Network و سپس سومین اداپتور را انتخاب کنید. ما از اسلات اول برای آدرس NAT و از اسلات دوم برای میزبانی که تنها از DHCP استفاده می‌کند، بر روی پیش‌نمایش VM استفاده کردیم. از اداپتور سوم برای apaptert هاست‌مبنا استفاده می‌کنیم که بر روی شبکه‌ی یکسانی که سرورهای OEM بر روی آن قرار دارند هم استفاده می‌شود. این

 

بر روی OK کلیک کنید و بک آپ VM را شروع کنید.

 

به مجرد دوباره آنلاین شدن، می‌بایست رابط کاربری جدید را آی‌پی گذاری کنیم. به سیستم وارد شوید و دستور su  را در مورد روت اجزا کنید.

حالا ifconfig –a را اجرا کنید.

حالا ما یک رابط کاربری net2 هم برای IPV4 و هم برای IPV6 می‌بینیم و می‌توانیم این نکته را با نگاه کردن به ether (MAC) address 8:0:27:d1:3f:90 تایید کنیم. در تنطیمات vbox هم ما همین را می‌بینیم. معمولا صفرهای اول اعداد هم اضافه می‌شوند؛ پس 8:0:27:d1:3f:90 می‌شود 08:00:27:d1:3f:90, یا  080027d13f90.\

خواهید دید که رابط کاربری IPV4 یک آی‌پی به آدرس 192.168.56.103  را DHCP کرده است. می‌بایست این رابط کاربری را برای شبکه OEM آی‌پی گذاری مجدد کنیم. در سولاریس ۱۱، شبکه دیگر بر مبنای فایل‌های /etc/hostname.$INTERFACE تعریف نشده و از روش جدیدی استفاده می‌کند. به عنوان یک ادمین سولاریس، دیگر از فایلهای فلت برای پیکربندی استفاده نمی‌شود. باید از دستورهای dladm  و  ipadmبرای پیشبرد کار استفاده کنیم. برخلاف دستور ifconfig، تغییرات اعمال شده توسط dladm  و  ipadm پس از ری‌بوت هم پایدار هستند.

رابط کاربری را با آدرس 172.20.2.55  دوباره آی‌پی گذاری می‌کنیم و نت‌مسک را بروزرسانی می کنیم. و همه‌ی این‌ها تنها با یک دستور! نام آی‌پی جدید را lab می‌گذاریم.

root@Solaris112:~# ipadm create-addr -T static -a 172.20.2.55/22 net2/lab

حالا بیایید با استفاده از دستور ipadm تمامی آدرس‌های آی‌پی را نشان دهیم.

 

بیایید کمی تمیزکاری انجام دهیم و آدرس net2/v4 را پاک کنیم.

و حالا می‌توانیم این را تایید کنیم.

 

همچنین می‌توانیم دی‌ان‌اس را بروزرسانی کنیم تا از دی‌ان‌اس داخلی دستگاه من استفاده کند. درست مثل اطلاعات رابط کاربری. دی‌ان‌اس دیگر با اعمال تغییرات در فایلهای فلت مدیریت نمی‌شود. تمام اطلاعات دی ان‌اس در SMF (تاسیسات مدیریت خدمات) نگهداری می‌شود. SMF با دستور svccfg مدیریت می‌شود. ورودی های دی‌ان‌اس در svc:/network/dns/client نگهداری می‌شوند.

اول از همه بیایید سرچ دی‌ان‌اس را بروزرسانی کنیم تا از the svc:/network/dns/client استفاده کند. می توان چند موتور جستجو داشت. تنها کافی ست دامنه دومی را در “” بگذارید.

network/dns/client setprop config/search=’(“labs.mythics.com” “talesfromthedatacenter.com” “xyzzy.net” )’

 

حالا باید تغییراتی که اعمال کرده‌ایم را تایید کنیم.

حالا سرور دی‌ان‌اس را تنظیم می‌کنیم.

به هنگام انتخاب نام می‌توان چندین سرور دی‌ان‌اس را اضافه کرد.خیلی ساده با این دستور:

svccfg -s svc:/network/dns/client setprop config/nameserver=net_address: ‘(172.20.2.50 172.20.2.0 192.168.1.10)’

حالا می توانیم تغییرات جدید را تایید کنیم.

ما همچنین می‌خواهیم که نام سرور را از Solaris112 به  solaris تغییر دهیم. این مورد را هم می‌توان در SMF سراغ گرفت و با دستور svccfg به راحتی می توان آن را به راحتی تغییر داد.

حالا لازم است که مشخصات را از نو بنویسیم و  identity serviceرا از نو بالا بیاوریم.

می‌توان از دستور hostname برای تایید این مورد استفاده کرد.

دستورات مورد نظر با وارد شدن به ویرچوآل باکس در دفعه‌ی بعد تغییر خواهند کرد.

دفعه‌ی بعد، zopol101!

 

۱۱ تیر ۹۴ ، ۲۱:۵۳ ۰ نظر
مهدی غفاری

نصب Solaris x86 11 از روی ISO در Virtualbox - راه ساده‌ای برای پچ‌کردن سولاریس

سالها قبل کار سختی بر دوش ادمینهای سولاریس بود و آن پچ‌کردن سیستمها بود! پچ‌کردن ساعت‌ها سیستم را داون می‌کرد و آماده‌سازی برنامه بک‌اوت حتی از این هم بیشتر طول می‌کشید. اغلب به سیستمهای لینوکسی نگاه می‌کردیم و اینکه چه راحت می‌توانستیم آنها را پچ کنیم حسرت میخوردیم. اما در سولاریس ۱۱ اوراکل زندگی را برایمان آسان کرد. حالا پچ‌کردن حتی از لینوکس هم بهتر شده است. با سیستم پچ‌کردن جدید نه تنها می‌توان سیستم را با یک ری‌بوت ساده پچ کرد، بلکه برنامه بک‌آوت هم جزئی از سیستم عامل شده است. به همین خاطر برگشتن به حالت قبلی سیستم هم درست به اندازه‌ی ری‌بوت ساده است!‌ این ابزار جدید هوشمند هم هست و دیگر لازم نیست ساعت‌ها صرف نصب آپدیت برای کامپوننت‌هایی کنیم که در سیستم نیستند. و بهتر از همه اینکه همه‌ی اینها در سیستم‌عامل جاسازی شده‌اند و توسط اوراکل پشتیبانی می‌شوند. هیچ نیازی به ابزارهای پشتیبانی نشده نیست.

 

اول از همه پیش از آغاز پچ‌کردن از سیستم عامل بک‌آپ می‌گیریم. مدیریت محیط بوت با beadm command جدید ساده است. فقط باید محض احتیاط از سیستم عامل در حال اجرا بک‌آپ بگیریم.

از beadm command برای ساختن BE جدید به نام demo1 استفاده می‌کنیم.

root@Solaris112:~# beadm create demo1

حالا می‌بینید که ما محیط نصبی به نام سولاریس و محیط جدیدی به نام demo1 داریم. نشان R بیانگر فعال بودن سیستم مورد نظر است و نشان N بیانگر این نکته است که سیستم با ری‌بوت بعدی به کار گرفته خواهد شد.

root@Solaris112:~# beadm list

BE Active Mountpoint Space Policy Created
— —— ———- —– —— ——-
demo1 – – 70.0K static 2014-10-08 22:28
solaris NR / 3.33G static 2014-07-04 19:57

root@Solaris112:~#

ادامه مطلب...
۱۱ تیر ۹۴ ، ۱۷:۳۸ ۰ نظر
مهدی غفاری