PDB Unplug and Plugin in Oracle Database 12c
در موارد مختلفی شاید نیاز داشته باشیم که یک PDB را از یک root container جدا و آن را به یک root container دیگر متصل کنیم.
در اوراکل 12.1 برای انجام این کار باید ابتدا PDB را به صورت یک "xml." فایل unplug کنیم.
alter pluggable database PDB1 close immediate;
alter pluggable database PDB1 unplug into '/home/oracle/pdb1/pdb1.xml';
بعد این pdb1.xml را به همراه دیتافایل های مربوطه به مکان جدید منتقل و به root container جدید متصل میکنیم.
نکته 1) دیتافایل ها را به مسیری مشابه مسیر دیتافایل ها در سرور اصلی منتقل میکنیم.
create pluggable database PDB1 using '/home/oracle/pdb1/pdb1.xml' ;
alter pluggable database PDB1 open;
اگر بخواهید مسیر دیتافایل ها را تغییر دهید میتوانید یا پارامتر db_create_file_dest را ست کنید یا با استفاده از دستور زیر این کار را انجام دهید:
create pluggable database PDB2 using '/home/oracle/pdb1/pdb1.xml'
file_name_convert=('/u02/app/oracle/oradata/pdb1/','/u01/app/oracle/oradata/pdb2/');
از اوراکل 12.2 میتوانیم PDB را به صورت یک "pdb." که یک archive file است، unplug کنیم که این فایل علاوه بر metadata ، شامل همه دیتافایل های مربوط به آن PDB هم میشود. این ویژگی جدید علاوه بر اینکه انتقال فایل بین سرورها را ساده تر میکند، خطاهای انسانی را نیز کاهش میدهد.
alter pluggable database PDB1 close immediate;
alter pluggable database PDB1 unplug into '/home/oracle/pdb1/pdb1.pdb';
فایل ''pdb1.pdb'' را به سرور جدید منتقل و دستور زیر را اجرا میکنیم.
create pluggable database PDB1 using '/home/oracle/pdb1/pdb1.pdb' ;
alter pluggable database PDB1 open;
نکته 2) plugin کردن یک PDB به یک CDB شبیه به ایجاد یک PDB جدید است. پس باید ابتدا مطمئن شویم که این PDB با CDB جدید compatible است یا نه ، که میتوانیم با استفاده از دستور زیر این کار را انجام دهیم:
set serveroutput on
declare
l_result boolean;
begin
l_result := dbms_pdb.check_plug_compatibility(
pdb_descr_file => '/home/oracle/pdb1/pdb1.pdb',
pdb_name => 'pdb1');
if l_result then
dbms_output.put_line('compatible');
else
dbms_output.put_line('incompatible');
end if;
end;
نکته 3) اگر بخواهیم pdb را مجددا به همان cdb قبلی متصل کنیم و دیتافایل ها آنجا موجود باشند ، میتوانیم با استفاده از دستور زیر این کار را انجام دهیم.
create pluggable database pdb1 using '/home/oracle/pdb1/pdb1.xml'
nocopy
tempfile reuse;
- منابع