Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

‫‪www.usefzadeh.com‬‬ ‫‪@oracledb‬‬ ‫‪vahidusefzadeh@gmail.

com‬‬

‫اجرای ‪ exp/expdp‬در محیط ‪data guard‬‬

‫برای تهیه دامپ در محیط ‪ ،data guard‬می توان از ابزار ‪ Exp‬بصورت مستقیم و از ابزار ‪ Expdp‬به صورت‬
‫غیرمستقیم(با کمک ‪ )database link‬استفاده کرد همچنین با تبدیل ‪ data guard‬به ‪ ،snapshot standby‬هم‬
‫می توان مجددا از ابزار ‪ Expdp‬به صورت مستقیم بهره گرفت‪.‬‬

‫در ادامه به بررسی این سه روش خواهیم پرداخت‪.‬‬

‫‪Exp‬‬ ‫‪‬‬

‫در دستور زیر‪ ،‬با کمک ابزار ‪ exp‬در محیط ‪ ،data guard‬از جدول ‪ test_us‬دامپ گرفته می شود‪ .‬این کار بدون‬
‫هیچ تغییر خاصی در این محیط‪ ،‬قابل انجام است‪:‬‬
‫‪exp usef/a file='/u01/oracle/e.dmp' tables=test_us‬‬
‫‪Export: Release 12.2.0.1.0 - Production on Wed Feb 21 10:39:39 2018‬‬

‫‪. . exporting table‬‬ ‫‪TEST_US‬‬ ‫‪14 rows exported‬‬

‫‪Export terminated successfully with warnings.‬‬

‫‪ EXPDP‬و ‪DBLINK‬‬ ‫‪‬‬

‫همانطور که در ابتدای متن اورده شد‪ ،‬تهیه دامپ مستقیم برای ‪ Expdp‬امکان پذیر نمی باشد مگر انکه‬
‫استندبای‪ ،‬در حالت ‪ snapshot standby‬قرار داشته باشد(این امکان ناپذیری‪ ،‬به عدم قابلیت ساخت ‪Master‬‬
‫‪ table‬در حالت ‪ read-only‬برمی گردد)‪ .‬با اجرای ‪ expdp‬در این محیط‪ ،‬این دستور با خطای زیر‪ ،‬متوقف‬
‫خواهد شد‪:‬‬
‫‪expdp usef/abc directory=dr dumpfile=test_dg.dmp tables=test_us‬‬
‫‪ORA-31626: job does not exist‬‬

‫"‪ORA-31633: unable to create master table "USEF.SYS_EXPORT_TABLE_05‬‬

‫‪ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95‬‬

‫‪ORA-06512: at "SYS.KUPV$FT", line 1038‬‬

‫‪ORA-16000: database open for read-only access‬‬

‫برای حل این مسئله‪ ،‬می توان روش دیگری را برگزید‪ ،‬در این روش‪ ،‬ابتدا باید به بانک دیگری متصل شد و با‬
‫ایجاد ‪ ،dblink‬ارتباطی را بین این بانک دوم با ‪ data guard‬برقرار کرد و سپس با کمک این ‪ ،dblink‬از اطالعات‬
‫موجود در ‪ ،data guard‬دامپی را تهیه کرد‪.‬‬
www.usefzadeh.com @oracledb vahidusefzadeh@gmail.com

.‫مثال زیر ببینید‬

‫ دایرکتوری ای‬،‫ بر روی ان اجرا شود‬Expdp ‫ بانکی که قرار است‬،‫ ابتدا در بانک دوم به عبارتی دیگر‬،‫در این مثال‬
:‫را ایجاد می کنیم‬

SQL> create directory dr as '/oracle';


Directory created.

:‫ می سازیم‬data guard ‫ای را در همین محیط برای اتصال به‬database link ،‫پس از ایجاد دایرکتوری‬

SQL> create public database link us_dg connect to usef identified by abc using 'tns_dg';
Database link created.

‫ تعریف شده‬tnsnames.ora ‫ای اشاره دارد که در فایل‬tns ‫ به نام‬،dblink ‫ در دستور ساخت‬tns_dg ‫عبارت‬
:‫است‬
tns_dg =

(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.56.4)(PORT = 1521)))

(CONNECT_DATA =

(SID =dg)

(SERVER = DEDICATED) ))

:‫ را اجرا می کنیم‬Expdp ‫در نهایت دستور‬

expdp usef/a@pdb1 directory=dr network_link=us_dg dumpfile=test_dg.dmp tables=test_us


Export: Release 12.2.0.1.0 - Production on Wed Feb 21 10:26:00 2018

. . exported "USEF"."TEST_US" 31.43 KB 14 rows

Master table "USEF"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

Job "USEF"."SYS_EXPORT_TABLE_01" successfully completed at Wed Feb 21 10:26:28 2018 elapsed 0 00:00:27

‫ معایبی چون عدم پشتیبانی از‬،‫ البته استفاده از این روش‬.‫ اجرا شد‬،‫ این دستور بدون خطا‬،‫همانطور که می بینید‬
.‫ها و نیز زمانبر بودن نسبی عملیات را در پی خواهد داشت‬large object

SNAPSHOT STANDBY ‫ و‬EXPDP 

‫ بهره‬expdp ‫ هم می توان از دستور‬snapshot standby ‫ در حالت‬،‫همانطور که در ابتدای متن هم عنوان شد‬


.‫ دامپی را تهیه خواهد شد‬usef ‫ از کاربر‬،snapshot standby ‫ به‬data guard ‫ در ادامه ضمن تبدیل‬.‫گرفت‬
www.usefzadeh.com @oracledb vahidusefzadeh@gmail.com

:‫ باید ابتدا استندبای را از حالت ریکاور خارج کرد‬،‫برای این کار‬

SQL> recover managed standby database cancel;


Media recovery complete.

:‫ منتقل نمود‬snapshot standby ‫ را به حالت‬standby ،‫سپس با اجرای دستور زیر‬

SQL> alter database convert to snapshot standby;


Database altered.

:‫ قرار داد‬open ‫ بانک را در وضیعت‬،‫در نهایت‬

SQL> alter database open;


Database altered.

:‫ امکان پذیر خواهد بود‬standby ‫در این مرحله امکان تهیه دامپ از‬

expdp \'sys/sy AS SYSDBA\' directory=dr dumpfile=dump.dmp schemas=usef


Export: Release 11.2.0.4.0 - Production on Sun Apr 15 17:44:47 2018
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Total estimation using BLOCKS method: 128 KB

Processing object type SCHEMA_EXPORT/TABLE/TABLE

. . exported "USEF"."TBL97" 18.78 KB 5 rows


. . exported "USEF"."TBL_USEF" 18.79 KB 5 rows

Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded

:‫ استندبای را به حالت اول بر می گردانیم‬،‫بعد از اجرای موفق این دستور‬

SQL> startup mount force;


Database mounted.

SQL> alter database convert to physical standby;


Database altered.

SQL> alter database recover managed standby database disconnect from session;
Database altered.

You might also like