از اوراکل نسخه 12cR1 می توان تنها یک جدول خاص را با استفاده از بکاپ RMAN بازیابی کرد.
در زمان بازیابی جدول با این روش، ابتدا instance موقتی ایجاد شده و در پی آن tablespaceهایی که جدول مورد نظر به آنها وابسته است، بازیابی خواهند شد.
پس از ان، از این جدول به روش data pump، دامپی گرفته خواهد شد که در هنگام بازیابی بر روی بانک اصلی، از این فایل استفاده می شود.
بعد از بازیابی جدول، همه فایلهای ایجاد شده اعم از دیتافایل و نیز دامپ فایل، حذف خواهند شد.
این روش محدودیتهایی را هم به همراه دارد از قبیل:
1. کاربر sys نباید مالک جدول باشد.
2. tablespace ای که جدول در ان قرار دارد، نباید SYSAUX و SYSTEM باشد.
3. بانک مقصد باید در حالت read/write و مود ارشیو قرار داشته باشد.
مثال زیر را ببینید:
مثال: در این مثال قصد داریم جدول usef.tbl1 را به 10 دقیقه قبلبرگردانیم. قبل از انجام ریکاوری، باید scn مربوط به ده دقیقه قبل را در بانک جاری بدست آورد:
SQL> select timestamp_to_scn(sysdate-10/24/60) from dual;
285697212528
دستور زیر، عمل ریکاوری جدول tbl1 را در بانک جاری انجام خواهد داد:
RMAN> RECOVER TABLE usef.tbl1
UNTIL SCN 285697212528
AUXILIARY DESTINATION ‘/u01/aux’
DATAPUMP DESTINATION ‘/u01/pump’
DUMP FILE ‘usef_tbl1.dat’
REMAP TABLE ‘USEF’.’TBL1′:’TBL9′;
RMAN-05026: WARNING: presuming following set of tablespaces applies to specified Point-in-Time
List of tablespaces expected to have UNDO segments
Tablespace SYSTEM
Tablespace UNDOTBS1
Creating automatic instance, with SID=’gtkj’
initialization parameters used for automatic instance:
db_name=TEST
db_unique_name=gtkj_pitr_TEST
compatible=12.1.0.2.0
restore clone datafile 1, 4, 3;
switch clone datafile all;
}
renamed tempfile 1 to /u01/aux/TEST/datafile/o1_mf_temp_%u_.tmp in control file
datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=934128982 file name=/u01/aux/TEST/datafile/o1_mf_system_d8gm3738_.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=5 STAMP=934128982 file name=/u01/aux/TEST/datafile/o1_mf_undotbs1_d8gm373l_.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=6 STAMP=934128982 file name=/u01/aux/TEST/datafile/o1_mf_sysaux_d8gm374l_.dbf
{
set until scn 285697212528;
sql clone “alter database datafile 5 online”;
recover clone database tablespace “USEF_TBS”, “SYSTEM”, “UNDOTBS1”, “SYSAUX” delete archivelog;
alter clone database open resetlogs;
}
sql “create or replace directory TSPITR_DIROBJ_DPDIR as ”
EXPDP> . . exported “USEF”.”TBL1″ 5.304 KB 4 rows
EXPDP> Master table “SYS”.”TSPITR_EXP_gtkj_qgBa” successfully loaded/unloaded
EXPDP> Dump file set for SYS.TSPITR_EXP_gtkj_qgBa is:
EXPDP> /u01/pump/usef_tbl1.dat
IMPDP> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
IMPDP> . . imported “USEF”.”TBL9″ 5.304 KB 4 rows
auxiliary instance file /u01/aux/TEST/datafile/o1_mf_temp_d8gm508s_.tmp deleted
auxiliary instance file /u01/aux/GTKJ_PITR_TEST/onlinelog/o1_mf_3_d8gm8j8v_.log deleted
auxiliary instance file /u01/aux/GTKJ_PITR_TEST/onlinelog/o1_mf_2_d8gm8hsb_.log deleted
auxiliary instance file /u01/aux/GTKJ_PITR_TEST/onlinelog/o1_mf_1_d8gm8h96_.log deleted
auxiliary instance file /u01/aux/GTKJ_PITR_TEST/datafile/o1_mf_usef_tbs_d8gm6pnp_.dbf deleted
auxiliary instance file /u01/aux/TEST/datafile/o1_mf_sysaux_d8gm374l_.dbf deleted
auxiliary instance file /u01/aux/TEST/datafile/o1_mf_undotbs1_d8gm373l_.dbf deleted
auxiliary instance file /u01/aux/TEST/datafile/o1_mf_system_d8gm3738_.dbf deleted
auxiliary instance file /u01/aux/TEST/controlfile/o1_mf_d8gm30lg_.ctl deleted
auxiliary instance file usef_tbl1.dat deleted
Finished recover at 24-JAN-17
همچنین با پارامتر NOTABLEIMPORT می توان از imort شدن جدول در بانک مقصد جلوگیری کرد که در نهایت همه دیتافایلهای مربوط به بانک موقت پاک می شوند ولی فایل دامپ کماکان باقی خواهد ماند.
برای انجام ریکاوری به این شیوه، دستور قبلی به صورت زیر اصلاح می شود:
RMAN> RECOVER TABLE usef.tbl1
UNTIL SCN 285697212528
AUXILIARY DESTINATION ‘/u01/aux’
DATAPUMP DESTINATION ‘/u01/pump’
DUMP FILE ‘usef_tbl1.dat’
NOTABLEIMPORT;
بعد از اجرای دستور بالا، می توان با استفاده از دامپ ایجاد شده، جدول را به صورت دستی برگرداند:
impdp usef/abc directory=xx dumpfile=usef_tbl1.dat remap_table=tbl1:tbl4
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 – 64bit Production
. . imported “USEF”.”TBL4″ 5.304 KB 4 rows
Job “USEF”.”SYS_IMPORT_FULL_01″ successfully completed at Tue Jan 24 21:05:02 2017 elapsed 0 00:00:01