视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
RMAN表空间时间点恢复
2020-11-09 11:37:15 责编:小采
文档


一直想做个基于时间点的表空间恢复,今天测试了一下,做个笔记,方面以后查阅!环境:Linux 5.2 10.2.0.1RMAN TSPITR 使用rman进

一直想做个基于时间点的表空间恢复,今天测试了一下,做个笔记,方面以后查阅!

环境:Linux 5.2 10.2.0.1

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

2012年 02月 29日 星期三 22:53:57 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('2012-02-29 22:53:57','yyyy-mm-dd hh24:mi:ss')" ----此处也可以通过scn来恢复,二者等价timestamp_to_scn

auxiliary destination '/home/Oracle/backup';

(6)将表空间user01 联机, 检查表1的数据是否找回来,检查表2的数据是否是4条,检查新创建的表是否已经不存在。

alter tablespace user01 online; ---recover的时候会自动offline

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 * from transport_set_violations;

会提示:Index SCOTT.IDX_CUSTOMERS in tablespace USER02 points to table SCOTT.CUSTOMERS in tablespace USER01.

begin

dbms_tts.transport_set_check('USER01,user02',true);

end;

select * from transport_set_violations;

不会有任何提示,因为user01/user02表空间作为一个集合,是自包含的。

下载本文
显示全文
专题