Welcome 微信登录

首页 / 数据库 / MySQL / RMAN表空间时间点恢复

一直想做个基于时间点的表空间恢复,今天测试了一下,做个笔记,方面以后查阅! 环境:Linux 5.2  10.2.0.1RMAN 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;date2012年 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 SMITHselect * from scott.sales;         ID CUST_NAME  SALES_AMOUNT---------- ---------- ------------         1 SCOTT              8000         1 SMITH             10000         3 SCOTT              6000         4 BLAKE              6700select * 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表空间作为一个集合,是自包含的。
  • 1
  • 2
  • 下一页
SQLite3判断Token类型(Keyword)Oracle Event 10046相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

<