بازیابی یک PDB از RMAN backup
بعضی وقتها شرایطی پیش میاد که میخواهیم فقط یک یا چند PDB خاص را با استفاده از بکاپی که از آنها داریم بازیابی کنیم. مثلا PDB حذف شده است یا اینکه PDB1 وجود دارد و میخواهیم بکاپی از PDB1 را که مربوط به گذشته است ، با یک نام دیگر بازیابی و اطلاعاتی را از آن بدست آوریم.
1- در ابتدا باید یک auxiliary instance ایجاد کنیم. که این کار را میتوانیم روی همان سرور یا سرور دیگری انجام دهیم.
--Create password file for auxiliary instance
$ cd $ORACLE_HOME/dbs
$ orapwd file=orapwtest password=m#12345678 entries=5
--Create init file for auxiliary instance
$ vi inittest.ora
نکته 1) برای ایجاد کردن init file میتوانید از روی spfile دیتابیس source یک pfile ایجاد کنید و بعد از ایجاد تغییرات لازم از آن به عنوان init file برای auxiliary instance استفاده کنید.
2- در مرحله بعدی باید auxiliary instance را nomount کنید.
$ export ORACLE_SID=TEST
$ echo $ORACLE_SID
$ sqlplus / as sysdba
SQL> startup nomount pfile=/u01/app/oracle/product/12.2.0/db_1/dbs/inittest.ora;
3- در این مرحله با استفاده از دستور RMAN duplicate میتوانیم PDB مورد نظر را بازیابی نماییم.
$ rman auxiliary sys/m#12345678
RMAN> duplicate database to 'TEST' pluggable database PDB1
2> UNTIL TIME "TO_DATE ('15-10-2018 04:40:00','dd-mm-yyyy hh24:mi:ss')"
3> backup location '/home/oracle/back/';
نکته 2) باید بکاپ تمام archiveهایی که میخواهیم recover کنیم در مسیر بکاپ ها موجود باشد.
4- بعد میتوانیم با استفاده از دستورات زیر PDB1 را از root container auxiliary instance جدا کنیم و به root container که میخواهیم متصل نماییم.
--auxiliary instance
SQL> alter pluggable database PDB1 close immediate;
SQL> alter pluggable database PDB1 unplug into '/home/oracle/pdb1.pdb';
--target database
SQL> create pluggable database PDB1 as clone using '/home/oracle/pdb1.pdb';
SQL> alter pluggable database PDB1 open;
Attachments