测试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
启动 restore 于 01-3月 -12
通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
正将数据文件00005恢复到D:\ORACLEDATE\SCOTT_TBS01.DBF
正将数据文件00006恢复到D:\ORACLEDATE\SQUIRREL_TBS01.DBF
通道 c1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2012_03_01\O1_MF_NNNDF_TAG20120301T155459_7NYBTNN0_.BKP
通道 c1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2012_03_01\O1_MF_NNNDF_TAG20120301T155459_7NYBTNN0_.BKP 标记 = TAG20120301T155459
通道 c1: 恢复完成, 用时: 00:01:05
完成 restore 于 01-3月 -12
启动 recover 于 01-3月 -12
正在开始介质的恢复
介质恢复完成, 用时: 00:00:04
完成 recover 于 01-3月 -12
数据库已打开
释放的通道: c1
释放的通道: c2
RMAN> exit
恢复管理器完成。
C:\Documents and Settings\Administrator>sqlplus / as sysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 3月 1 16:11:53 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from squirrel.a;
ID NAME
---------- --------------------
1 zhangsan
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
可以删除RMANbackup的备份:
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 1 16:12:30 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1300448497)
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
1 Full 898.73M DISK 00:01:10 01-3月 -12
BP 关键字: 1 状态: AVAILABLE 已压缩: NO 标记: TAG20120301T155459
段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2012_03_01\O1_MF_NNNDF_TAG20120301T155459_7NYBTNN0_.BKP
备份集 1 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 1030664 01-3月 -12 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
2 Full 1030664 01-3月 -12 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
3 Full 1030664 01-3月 -12 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
4 Full 1030664 01-3月 -12 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
5 Full 1030664 01-3月 -12 D:\ORACLEDATE\SCOTT_TBS01.DBF
6 Full 1030664 01-3月 -12 D:\ORACLEDATE\SQUIRREL_TBS01.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2 Full 6.80M DISK 00:00:08 01-3月 -12
BP 关键字: 2 状态: AVAILABLE 已压缩: NO 标记: TAG20120301T155459
段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2012_03_01\O1_MF_NCSNF_TAG20120301T155459_7NYBX4SD_.BKP
包括的控制文件: Ckp SCN: 1030723 Ckp 时间: 01-3月 -12
包含的 SPFILE: 修改时间: 01-3月 -12
RMAN> delete backup;
RMAN>delete expired backup;
如果手动物理删除了backupset 需:
RMAN>crosscheck backup;
RMAN>delete expired backup;