欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle RMAN不完全恢复database到指定时间点

程序员文章站 2022-06-08 08:52:15
...

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

Oracle RMAN不完全恢复database到指定时间点