Because of a logical corruption in the EMPLOYES tables, you want to perform. Tablespace
Point-in-Time Recovery (TSPITR) to recover the table.
Before you started the TSPITR process, you
queried the TS_PITR_CHECK view and you realized that the table has a referential constraint with
DEPARTMENTS that exists in another tablespace, MASTERTBS.
Which two actions will permit the TSPITR to work? (Choose two.)
因为EMPLOYES表逻辑损坏,需要通过执行TSPITR去恢复表,
OCPV13707
。在执行TSPITR进程时,查询TS_PITR_CHECK 视图你发现表有和DEPARTMENTS的参数约束,DEPARTMENTS表存在于其他表空间MASTERTBS,执行哪个操作才能允许TSPITR运行?A.Taking the MASTERTBS tablespace offline
B.Dropping the relationship between the tables 删除表的关系
C.Adding the MASTERTBS tablespace to the recovery set 将MASTERTBS表空间加入恢复集
D.Putting the MASTERTBS tablespace in read-only mode
Answer:BC
<code class=" hljs perl">TSPITR介绍 TSPITR(表空间时间点恢复)用于将一个或多个表空间恢复到过去某个时间点的状态,而其他表空间仍然保持现有状态。 (1) TSPITR(Tablespace Point-In-Time Recovery),只适用于ARCHIVELOG模式。 (2) TSPITR实现方法,建议使用RMAN实现表空间时间点恢复。 (3) DBPITR(Database Point-In-TIme Recovery),数据库时间点恢复;表示将数据库的所有表空间恢复到过去时间颠倒俄状态,只适用于ARCHIVELOG模式。 (4) 主数据库(Primary Database),用于存放应用系统数据的Oracle数据库。当执行TSPITR时,主数据库是指包含有被恢复表空间的数据库。 (5) 恢复集(Recovery Set),是指在主数据库上需要执行TSPITR的表空间集合。注意,当在恢复集的表空间上执行TSPITR时,要求这些表空间必须是自包含的。 (6) 辅助数据库(Auxiliary Database),是主数据库的一个副本数据库。当执行TSPITR时,辅助数据库用于将恢复集表空间恢复到过去时间点。注意,辅助数据库的所有物理文件都是从主数据库备份中取得,并且辅助数据库必须包含SYSTEM表空间、UNDO表空间、恢复集表空间的备份文件。 (7) 辅助集(Auxiliary Set),是指辅助数据库所需要的、除了恢复集表空间文件之外地饿其他文件集合。当执行TSPITR时,辅助数据库除了需要恢复表空间的备份文件之外,还需要备份控制文件、SYSTEM表空间的备份文件、UNDO表空间的备份文件。注意:恢复集表空间必须为自包含; 违反自包含表空间集合的常见情况如下: 1> 表空间集合包含有SYS方案对象 2> 表空间集合包含了索引所在的表空间,但没有包含索引基表所在的表空间 3> 表空间集合没有包含分区表的所有分区 4> 表空间集合包含了表所在的表空间,但没有包含其LOB列所在的表空间检查自包含方式: SQL> connect sys/oracle@demo as sysdba SQL> execute dbms_tts.transport_set_check(‘user01‘,true); SQL> Select * From transport_set_violations;过程如下:1创建实例(自动或者手动)2 Restore database只恢复(system undotbs sysaux和指定的需要恢复的表空间)3 recover database until time4 使用exp从还原数据库导出5 导入到源数据库测试--创建表空间CREATE TABLESPACE "TSPITR_TEST" LOGGING DATAFILE ‘C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSPITR_TEST.ora‘ SIZE 50M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;-- create tablecreate table tspitr_test_table (i_id integer, c_name varchar2(10)) tablespace TSPITR_TEST;create index itest on tspitr_test_table(i_id) tablespace TSPITR_TEST;insert into tspitr_test_table(i_id,c_name) values (1, ‘1‘);insert into tspitr_test_table(i_id,c_name) values (2, ‘2‘);insert into tspitr_test_table(i_id,c_name) values (3, ‘3‘);insert into tspitr_test_table(i_id,c_name) values (4, ‘4‘);insert into tspitr_test_table(i_id,c_name) values (5, ‘5‘);insert into tspitr_test_table(i_id,c_name) values (6, ‘6‘);insert into tspitr_test_table(i_id,c_name) values (7, ‘7‘);insert into tspitr_test_table(i_id,c_name) values (8, ‘8‘);insert into tspitr_test_table(i_id,c_name) values (8, ‘9‘);insert into tspitr_test_table(i_id,c_name) values (10, ‘10‘);insert into tspitr_test_table(i_id,c_name) values (11, ‘11‘);select * from tspitr_test_table;--check SELECT * FROM SYS.TS_PITR_CHECKWHERE ( TS1_NAME IN (‘TSPITR_TEST‘) AND TS2_NAME NOT IN (‘TSPITR_TEST‘) ) OR ( TS1_NAME NOT IN (‘TSPITR_TEST‘) AND TS2_NAME IN (‘TSPITR_TEST‘) ); --记住时间点select sysdate from dual;--执行rman备份run{ allocate channel d1 type disk; backup tag ts_test format ‘C:\temp\TS_t%t_s%s.bkp‘ tablespace TSPITR_TEST,UNDOTBS1,SYSTEM; backup current controlfile; release channel d1;}--模拟操作 修改tspitr_test_table的表delete from tspitr_test_table where c_name like ‘%1%‘;commit;RMAN> run {2> recover tablespace TSPITR_TEST until time "to_date(‘2010-3-18 13:31:48‘,‘yyyy-mm-dd hh24:mi:ss‘)" auxiliary destination ‘C:\auxiliary‘;3> }启动 recover 于 18-3月 -10分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=148 devtype=DISKRMAN-05026: 警告: 假定以下表空间集适用于指定的时间点表空间列表要求具有 UNDO 段表空间 SYSTEM表空间 UNDOTBS1使用 SID=‘test‘ 创建自动实例供自动实例使用的初始化参数:db_name=ORCLcompatible=10.2.0.1.0db_block_size=8192db_files=200db_unique_name=tspitr_ORCL_testlarge_pool_size=1Mshared_pool_size=110M#No auxiliary parameter file useddb_create_file_dest=C:\auxiliarycontrol_files=C:\auxiliary/cntrl_tspitr_ORCL_test.f启动自动实例 ORCLOracle 实例已启动系统全局区域总计 201326592 字节Fixed Size 1248092 字节Variable Size 146801828 字节Database Buffers 50331648 字节Redo Buffers 2945024 字节自动实例已创建内存脚本的内容:{# set the until clauseset until time "to_date(‘2010-3-18 13:31:48‘,‘yyyy-mm-dd hh24:mi:ss‘)";# restore the controlfilerestore clone controlfile;# mount the controlfilesql clone ‘alter database mount clone database‘;# archive current online log for tspitr to a resent until timesql ‘alter system archive log current‘;# avoid unnecessary autobackups for structural changes during TSPITRsql ‘begin dbms_backup_restore.AutoBackupFlag(FALSE); end;‘;}正在执行内存脚本正在执行命令: SET until clause启动 restore 于 18-3月 -10分配的通道: ORA_AUX_DISK_1通道 ORA_AUX_DISK_1: sid=37 devtype=DISK通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集通道 ORA_AUX_DISK_1: 正在复原控制文件通道 ORA_AUX_DISK_1: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_03_18\O1_MF_S_713971810_5T3GM4G6_.BKP通道 ORA_AUX_DISK_1: 已恢复备份段 1段句柄 = C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_03_18\O1_MF_S_713971810_5T3GM4G6_.BKP 标记 = TAG20100318T133010通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:03输出文件名=C:\AUXILIARY\CNTRL_TSPITR_ORCL_test.F完成 restore 于 18-3月 -10sql 语句: alter database mount clone databasesql 语句: alter system archive log currentsql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;释放的通道: ORA_DISK_1释放的通道: ORA_AUX_DISK_1内存脚本的内容:{# generated tablespace point-in-time recovery script# set the until clauseset until time "to_date(‘2010-3-18 13:31:48‘,‘yyyy-mm-dd hh24:mi:ss‘)";plsql <<<-- tspitr_2declare sqlstatement varchar2(512); offline_not_needed exception; pragma exception_init(offline_not_needed, -01539);begin sqlstatement := ‘alter tablespace ‘|| ‘TSPITR_TEST‘ ||‘ offline for recover‘; krmicd.writeMsg(6162, sqlstatement); krmicd.execSql(sqlstatement);exception when offline_not_needed then null;end; >>>;# set an omf destination filename for restoreset newname for clone datafile 1 to new;# set an omf destination filename for restoreset newname for clone datafile 2 to new;# set an omf destination tempfileset newname for clone tempfile 1 to new;# set a destination filename for restoreset newname for datafile 20 to"C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSPITR_TEST.ORA";# rename all tempfilesswitch clone tempfile all;# restore the tablespaces in the recovery set plus the auxilliary tablespacesrestore clone datafile 1, 2, 20;switch clone datafile all;#online the datafiles restored or flippedsql clone "alter database datafile 1 online";#online the datafiles restored or flippedsql clone "alter database datafile 2 online";#online the datafiles restored or flippedsql clone "alter database datafile 20 online";# make the controlfile point at the restored datafiles, then recover themrecover clone database tablespace "TSPITR_TEST", "SYSTEM", "UNDOTBS1" delete archivelog;alter clone database open resetlogs;# PLUG HERE the creation of a temporary tablespace if export fails due to lack# of temporary space.# For example in Unix these two lines would do that:#sql clone "create tablespace aux_tspitr_tmp# datafile ‘‘/tmp/aux_tspitr_tmp.dbf‘‘ size 500K";}正在执行内存脚本正在执行命令: SET until clausesql 语句: alter tablespace TSPITR_TEST offline for recover正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME临时文件 1 在控制文件中已重命名为 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_%U_.TMP启动 restore 于 18-3月 -10分配的通道: ORA_AUX_DISK_1通道 ORA_AUX_DISK_1: sid=39 devtype=DISK通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件正将数据文件00001恢复到C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_%U_.DBF正将数据文件00002恢复到C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF正将数据文件00020恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TSPITR_TEST.ORA通道 ORA_AUX_DISK_1: 正在读取备份段 C:\TEMP\TS_T713971680_S14.BKP通道 ORA_AUX_DISK_1: 已恢复备份段 1段句柄 = C:\TEMP\TS_T713971680_S14.BKP 标记 = TS_LEVEL0通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:02:05完成 restore 于 18-3月 -10数据文件 1 已转换成数据文件副本输入数据文件副本 recid=5 stamp=713972344 文件名=C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_5T3GZTN2_.DBF数据文件 2 已转换成数据文件副本输入数据文件副本 recid=6 stamp=713972344 文件名=C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_5T3GZTSX_.DBFsql 语句: alter database datafile 1 onlinesql 语句: alter database datafile 2 onlinesql 语句: alter database datafile 20 online启动 recover 于 18-3月 -10使用通道 ORA_AUX_DISK_1正在开始介质的恢复存档日志线程 1 序列 51 已作为文件 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2010_03_18\O1_MF_1_51_5T3GZN5F_.ARC 存在于磁盘上存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2010_03_18\O1_MF_1_51_5T3GZN5F_.ARC 线程 =1 序列 =51介质恢复完成, 用时: 00:00:01完成 recover 于 18-3月 -10数据库已打开内存脚本的内容:{# export the tablespaces in the recovery sethost ‘exp userid =\"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=oracletest)(ARGS=^‘(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^‘)(ENVS=^‘ORACLE_SID=test^‘))(CONNECT_DATA=(SID=test))) as sysdba\" point_in_time_recover=y tablespaces=TSPITR_TEST file=tspitr_a.dmp‘;# shutdown clone before importshutdown clone immediate# import the tablespaces in the recovery sethost ‘imp userid =\"/@ as sysdba\" point_in_time_recover=y file=tspitr_a.dmp‘;# online/offline the tablespace importedsql "alter tablespace TSPITR_TEST online";sql "alter tablespace TSPITR_TEST offline";# enable autobackups in case user does open resetlogs from RMAN after TSPITRsql ‘begin dbms_backup_restore.AutoBackupFlag(TRUE); end;‘;}正在执行内存脚本Export: Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集注: 将不导出表数据 (行)即将导出表空间时间点恢复对象...对于表空间 TSPITR_TEST.... 正在导出簇定义. 正在导出表定义. . 正在导出表 tspitr_test_table. 正在导出引用完整性约束条件. 正在导出触发器. 终止时间点恢复成功终止导出, 没有出现警告,电脑资料
《OCPV13707》(https://www.unjs.com)。主机命令完成数据库已关闭数据库已卸载Oracle 实例已关闭Import: Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options经由常规路径由 EXPORT:V10.02.01 创建的导出文件即将导入表空间时间点恢复对象...已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入. 正在将 SYS 的对象导入到 SYS. 正在将 CUSTOMER21 的对象导入到 CUSTOMER21. . 正在导入表 "tspitr_test_table". 正在将 SYS 的对象导入到 SYS成功终止导入, 没有出现警告。主机命令完成sql 语句: alter tablespace TSPITR_TEST onlinesql 语句: alter tablespace TSPITR_TEST offlinesql 语句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;删除自动实例自动实例已删除已删除辅助实例文件 C:\AUXILIARY\CNTRL_TSPITR_ORCL_test.F已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_5T3GZTN2_.DBF已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_5T3GZTSX_.DBF已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_5T3H49K4_.TMP已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_1_5T3H3XNK_.LOG已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_2_5T3H3ZYB_.LOG已删除辅助实例文件 C:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_3_5T3H423H_.LOG完成 recover 于 18-3月 -10还原成功;