نحوه 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:~#

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

نصب Solaris x86 11 از روی ISO در Virtualbox - بخش اول

اخیراً من با یک DBA در حاشیه یکی از رویدادهای IOUG برخورد داشتم در صحبت‌هامون ایشون شکایت می‌کرد و می‌گفت که نمی‌تواند از Solaris 11.2 استفاده کند و حتی آن را نصب کند. ایشون منو چند هفته قبل دیده بود که در حال ارائه پیش‌نمایش Openstack بودم، بنابراین از من خواست که Solaris 11.2 را بر روی یک ماشین مجازی نصب کنم. و این هم چگونگی انجام قدم به قدم این کار:

اول از همه بایستی Solaris 11.2 x86 ISO را دانلود کنید. می‌توانید از اینجا دانلود کنید.

حالا یک ماشین‌مجازی جدید به اسم Solaris 11.2 demo ایجاد می‌کنیم.

 

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

Fast-Start Failover و Observer

در این مطلب می‌خواهیم اندک توضیح بیشتری راجع به Failover ارائه بدیم، همچنین می‌خواهیم راجع به امکان جدید Observer صحبت کنیم:

در مطلب قبل گفتیم که در زمانی که سرور primary شما به مشکل بخوره (چند تا از مشکلاتی که معمولاً پیش میاد: سرور primary شما shutdown abort شده یا یکی از دیسک‌های سرور به مشکل خورده باشه، یا یکی از datafileهای شما offline شده باشه، یا اینکه log writer نتونه روی redoها تغییرات رو بنویسه و هر مشکلی که به هر دلیلی کاربران نتونن با دیتابیس اصلی کار کنن) تو این حالت‌ها ما نیاز به Failover داریم.

حالا یه ابزاری داریم که می‌تونه خارج از ساختار primary و standby قرار بگیره این ابزار Observer نام داره.

Observer می‌تونه وضعیت‌های مشکل در سرور primary (مثل چند وضعیت اختلالی که در بالاتر توضیح دادیم) رو کنترل کنه

Observer می‌تونه خارج از سایت‌ standby و primary باشه یا اینکه فقط در primary یا standby یا به صورت یک سرور جدا باشه باشه (محل قرارگیری Observer بستگی به طراحی سایت شما یا disaster site شما و بیزینسی که داره از اپلیکیشن متصل به دیتابیس استفاده میکنه داره)

همونطور که گفتیم این ابزار وضعیت‌های اختلال سرور اصلی رو کنترل میکنه و در صورت به وقوع پیوستن اختلال دستور Failover رو صادر میکنه و به این ترتیب سرور standby بلافاصله توی مدار قرار میگیره و شروع به سروریس‌دهی به کاربران میکنه (اتوماتیک استارت Failover توسط Observer)

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

Data Guard Broker

خب تو توضیحاتی که توی مطالب قبلی داشتیم گفتیم که Data Guard Broker "یک چارچوب مدیریتی توزیع شده است که ایجاد، نگهداری و نظارت بر تنظیمات Data Guard را متمرکز کرده و برعهده دارد."

مثلاً وقتی شما می‌خواید یک سرور standby‌ اضافه کنید یا اینکه می‌خواهید یکسری از پارامترها را تغییر دهید یا اینکه می‌خواهید کانفیگ‌های حال حاضر وضعیت Data Guard تون رو بررسی کنید خب Data Guard Broker این نقش رو به عهده داره همچنین Data Guard Brokerفایلهای خودش رو هم روی دیتابیس و هم روی سیستم‌عامل داره.

وظابف Data Guard Broker:

  • اضافه کردن Standby Database به پیکربندی Data Guard موجود: شما می‌توانید تا ۹ تا سرور standby تو محل‌های مختلف داشته باشید.
  • مدیریت پیکربندی Data Guard در هر کدام از دیتابیس‌های (primary, standby) موجود: شما با استفاده از کانفیگ‌های موجود می‌تونید این پیکربندی رو مدیریت کنید.
  • انجام switch over و fail over با استفاده از یک دستور: در حقیقت یکی از مهمترین و پرکاربردترین وظایف Data Guard Broker است. شما با استفاده از switch over می‌توانید رول‌های (primary, standby) را باهم عوض کنید. switch over میتونه برای ارتقای سخت‌افزاری باشه یا برای هر دلیل دیگه‌ای استفاده بشه. با استفاده از fail over هم می‌توانید اگر سرور primaryتون به مشکل خورد با دستور fail over به راحتی می‌تونید سرور standby رو توی مدار قرار بدید.
۲۰ خرداد ۹۴ ، ۱۶:۰۳ ۰ نظر
مهدی غفاری