ایجاد یک pdb از pdb دیگر بصورت از راه دور(با کمک dblink) در اوراکل 12.1.0.2 قابل انجام است منتهی بروزرسانی این pdb)pdb کپی شده) بعد از ایجاد، در این نسخه امکان پذیر نخواهد بود و همچنین، pdb مبدا در زمان انجام کپی، باید در حالت read only قرار داشته باشد.
در اوراکل 12cR2، علاوه بر قابلیت کپی از راه دور یک pdb ان هم به صورت کاملا انلاین(pdb مبدا می تواند در حالت سرویس دهی قرار داشته باشد)، قابلیت بروزرسانی هم ارائه شد به طور کلی، در این نسخه می توان یک pdb را به سه روش زیر از بانک اطلاعاتی دیگر کپی و در مورد شیوه بروزرسانی ان اعمال نظر کرد:
1.غیر قابل بروز رسانی: در این روش، بعد از ایجاد pdb، قابلیت بروزرسانی آن وجود نخواهد داشت پس برای ایجاد pdb، صرفا کافیست بعد از ساخت Database Link، آن را(pdb جدید) با کمک دستور create pluggable database ایجاد کرده و در نهایت در حالت open read write قرار داد:
SQL> create database link DEST_LINK connect to USEF using ‘CDB18c’;
SQL> CREATE PLUGGABLE DATABASE pdb_non_refresh FROM PDB18C@dest_link REFRESH MODE NONE;
Pluggable database altered.
SQL> alter pluggable database PDB_NON_REFRESH open;
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
———- —————————— ———- ———-
3 PDB_NON_REFRESH READ WRITE NO
2.بروزرسانی به روش دستی: در این روش می توان pdb کپی شده را بصورت دستی با کمک pdb از راه دور بروزرسانی کرد البته بعد از ایجاد pdb به این روش، تنها می توان ان را در حالت read only open قرار داد(برای گزارش گیری) و امکان باز کردن ان به صورت read write وجود نخواهد داشت:
SQL>CREATE PLUGGABLE DATABASE manual_pdb FROM PDB18C@dest_link REFRESH MODE MANUAL;
Pluggable database altered.
SQL> alter pluggable database MANUAL_PDB open;
ORA-65341: cannot open pluggable database in read/write mode
SQL> alter pluggable database MANUAL_PDB open read only;
Pluggable database altered.
همچنین برای بروز رسانی این pdb، باید آن را در وضیعت mounted قرار داد:
SQL> ALTER PLUGGABLE DATABASE MANUAL_PDB REFRESH;
ORA-65025: Pluggable database MANUAL_PDB is not closed on all instances.
SQL> alter pluggable database MANUAL_PDB close;
Pluggable database altered.
SQL> ALTER PLUGGABLE DATABASE MANUAL_PDB REFRESH;
Pluggable database altered.
در زمان این بروزرسانی، پیامهای زیر در alert log قابل مشاهده می باشند:
2018-04-21T15:27:06.040311+04:30
ALTER PLUGGABLE DATABASE MANUAL_PDB REFRESH
2018-04-21T15:27:08.061904+04:30
Applying media recovery for pdb-4099 from SCN 6032366 to SCN 6032372
Remote log information: count-1
thr-1, seq-3, logfile-/u01/arch/parlog_1_3_27d6a2c_974028799.arc, los-1610239, nxs-18446744073709551615
MANUAL_PDB(4):Media Recovery Start
2018-04-21T15:27:08.063387+04:30
MANUAL_PDB(4):Serial Media Recovery started
MANUAL_PDB(4):max_pdb is 9
2018-04-21T15:27:08.130375+04:30
MANUAL_PDB(4):Media Recovery Log /u01/arch/parlog_1_3_27d6a2c_974028799.arc
2018-04-21T15:27:08.349375+04:30
MANUAL_PDB(4):Incomplete Recovery applied until change 6032372 time 04/21/2018 15:26:42
2018-04-21T15:27:08.352087+04:30
MANUAL_PDB(4):Media Recovery Complete (usefdb18)
Completed: ALTER PLUGGABLE DATABASE MANUAL_PDB REFRESH
برای مشاهده اثر این بروزرسانی، تغییراتی را در pdb18c اعمال می کنیم تا بررسی کنیم این تغییرات در manual_pdb اعمال خواهند شد یا خیر:
SQL> alter session set container=PDB18C;
SQL> create table tbl(last_name varchar2(9));
SQL> insert into tbl values(‘USEFZADEH’);
بعد از بروزرسانی manual_pdb، تغییرات را بررسی می کنیم:
SQL> ALTER PLUGGABLE DATABASE MANUAL_PDB REFRESH;
SQL> alter pluggable database MANUAL_PDB open read only;
SQL> alter session set container=MANUAL_PDB;
SQL> select * from tbl;
LAST_NAME
———
USEFZADEH
تغییرات در manual_pdb به درستی اعمال شده است.
3.بروزرسانی خودکار: pdb ایجاد شده دقیقا مشابه manual pdb می باشد با این تفاوت که با ایجاد یک scheduler_job در پس زمینه، بروزرسانی را به صورت خودکار انجام می شود:
SQL> CREATE PLUGGABLE DATABASE Automatically_pdb FROM PDB18C@dest_link REFRESH MODE EVERY 1 MINUTES;
Pluggable database altered.
مشاهده مشخصات scheduler_job:
select owner,job_name from dba_scheduler_jobs where job_name like ‘%AUTOMATIC%’;
SYS AUTOMATICALLY_PDB_2539133358_REFRESH
همچنین در هر یک دقیقه(بر اساس زمان تعیین شده)، پیامهایی به جهت بروزرسانی در alert log قابل مشاهده خواهند بود:
2018-04-21T15:36:59.287246+04:30
AUTOMATICALLY_PDB(5):alter pluggable database refresh
2018-04-21T15:37:02.260273+04:30
Applying media recovery for pdb-4099 from SCN 6033636 to SCN 6033665
Remote log information: count-1
thr-1, seq-3, logfile-/u01/arch/parlog_1_3_27d6a2c_974028799.arc, los-1610239, nxs-18446744073709551615
AUTOMATICALLY_PDB(5):Media Recovery Start
2018-04-21T15:37:02.261849+04:30
AUTOMATICALLY_PDB(5):Serial Media Recovery started
AUTOMATICALLY_PDB(5):max_pdb is 9
2018-04-21T15:37:02.334578+04:30
AUTOMATICALLY_PDB(5):Media Recovery Log /u01/arch/parlog_1_3_27d6a2c_974028799.arc
2018-04-21T15:37:02.562613+04:30
AUTOMATICALLY_PDB(5):Incomplete Recovery applied until change 6033665 time 04/21/2018 15:36:35
2018-04-21T15:37:02.565688+04:30
AUTOMATICALLY_PDB(5):Media Recovery Complete (usefdb18)
AUTOMATICALLY_PDB(5):Completed: alter pluggable database refresh
برای خارج کردن یک pdb از فرایند بروزرسانی، می توان از دستورات زیر استفاده کرد:
SQL> alter pluggable database AUTOMATICALLY_PDB close;
ORA-65020: pluggable database AUTOMATICALLY_PDB already closed
SQL> alter pluggable database AUTOMATICALLY_PDB REFRESH MODE NONE;
Pluggable database altered.
SQL> alter pluggable database AUTOMATICALLY_PDB open;
Pluggable database altered.
SQL> alter session set container=AUTOMATICALLY_PDB;
Session altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
———- —————————— ———- ———-
5 AUTOMATICALLY_PDB READ WRITE NO
بعد از اجرای این دستورات، قابلیت بروزرسانی این pdb از بین خواهد رفت و می توان از این pdb برای سرویس دهی به صورت read write استفاده کرد.
پ.ن 1:دیتافایلهای مربوط به pdbهای کلون، در مسیری که برای پارامتر db_create_file_dest تعیین شده است، ایجاد خواهند شد.
پ.ن 2:دستور زیر، حالت بروزرسانی هر کدام از pdbها را نشان می دهد:
SQL> SELECT pdb_name, refresh_mode, refresh_interval FROM dba_pdbs;
PDB_NAME REFRES REFRESH_INTERVAL
——————– —— —————-
MANUAL_PDB MANUAL
AUTOMATICALLY_PDB AUTO 1
PDB_NON_REFRESH NONE
Comments (2)