文档详情

oracle RMAN 进行表空间基于时间点恢复.doc

发布:2017-06-30约10.49万字共12页下载文档
文本预览下载声明
RMAN TSPITR 使用rman进行表空间基于时间点的恢复 收藏 实例说明: (1)先创建2个表空间。 create tablespace user01 datafile +DG1 size 1M; create tablespace user02 datafile +DG1 size 1M; (2)在每个表空间上各创建一张表。 create table scott.customers (cust_id int,cust_name varchar2(10)) tablespace user01; create table scott.sales (id int,cust_name varchar2(10),sales_amount number(8,2)) tablespace user02; (3)在每个表中插入2条记录,提交。检查当前的时间点,待会表空间user01要恢复到当前时间点。 insert into scott.customers values(1,SOCTT); insert into scott.customers values(2,SMITH); insert into scott.sales values(1,SCOTT,8000); insert into scott.sales values(1,SMITH,10000); COMMIT; ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM SWITCH LOGFILE; date 2010年 03月 11日 星期四 21:44:52 CST (4) truncate 表1,往表2中插入2条记录。在表空间1中再创建一个表。 truncate table scott.customers; insert into scott.sales values(3,SCOTT,6000); insert into scott.sales values(4,BLAKE,6700); commit; create table scott.employee(id int,name varchar2(10)) tablespace user01; (5) 利用rman进行表空间1基于时间点的恢复。 --rman部分恢复表空间 recover tablespace user01 until time to_timestamp(2010-03-11 21:44:52,yyyy-mm-dd hh24:mi:ss) auxiliary destination /home/oracle/backup; (6)将表空间user01 联机, 检查表1的数据是否找回来,检查表2的数据是否是4条,检查新创建的表是否已经不存在。 alter tablespace user01 online; select * from scott.customers; CUST_ID CUST_NAME ---------- ---------- 1 SOCTT 2 SMITH select * from scott.sales; ID CUST_NAME SALES_AMOUNT ---------- ---------- ------------ 1 SCOTT 8000 1 SMITH 10000 3 SCOTT 6000 4 BLAKE 6700 select * from dba_tables where owner = SCOTT and table_name=EMPLOYEE; no rows selected 一切如我们所愿,此时,表空间不完全恢复完成。 注意: 只有自包含的表空间,才能基于单独不完全恢复。所谓自包含,是指该表空间中的对象不依赖于其它表空间中的对象,如该表空间中索引的基本在其它表空间,该表中某些表的lob列放在其它表空间。 如在上例中,执行: create index scott.idx_customers on scott.customers(cust_name) tablespace user02; begin dbms_tts.transport_set_check(user02,true); end; select * fro
显示全部
相似文档