时间:2021-07-01 10:21:17 帮助过:36人阅读
Oracle RMAN不完全恢复database到指定时间点(简单模拟),测试database不完全恢复到2012-03-01
Oracle RMAN不完全恢复database到指定时间点(简单模拟),测试database不完全恢复到2012-03-01
cmd>sqlplus / as sysdba;
SQL>shutdown immediate
SQL>alter database archivelog;
SQL>conn squirrel/squirrel;
SQL>CREATE TABLE a(id number(10) not null primary key, name varchar2(20));
SQL>INSERT INTO a(id,name) values(1,zhangsan);
SQL>conn / as sysdba;
SQL> select * from squirrel.a;
ID NAME
---------- --------------------
1 zhangsan
设置时间格式
SQL>alter session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;
SQL>select sysdate from dual;
SYSDATE
-------------------
2012-03-01 16:00:42
SQL>shutdown immediate;
SQL>startup mount;
SQL>exit
cmd>rman target /
RMAN>backup database;
RMAN>exit;
这里模拟对T表的误删除(DDL类型的TRUNCATE方法)
SQL>truncate table squirrel.a;
接着我们不完全恢复到指定时间2012-03-01 16:00:42
【重要提醒】在使用RMAN完成基于时间点的不完全恢复之前,最好对现场做一个备份,我们这里只需要备份数据库的控制文件和日志文件即可。当恢复结束后不满足我们要求时,可以恢复控制文件和日志文件后重新进行恢复。
RMAN> run {
2> allocate channel c1 type disk;
3> allocate channel c2 type disk;
4> sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
5> set until time='2012-03-01 16:00:42';
6> restore database;
7> recover database;
8> alter database open resetlogs;}
使用目标数据库控制文件替代恢复目录
分配的通道: c1
通道 c1: sid=156 devtype=DISK
分配的通道: c2
通道 c2: sid=155 devtype=DISK
sql 语句: alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"
正在执行命令: SET until clause
,