今天试验了resetlog 跨越时间段进行恢复:
先备份:
C:\Documents and Settings\Jonup>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 1月 11 10:53:14 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: SHENG (DBID=1778268600)
RMAN> backup database plus archivelog delete input;
启动 backup 于 11-1月 -12
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =4 记录 ID=5 时间戳=772283042
通道 ORA_DISK_1: 正在启动段 1 于 11-1月 -12
通道 ORA_DISK_1: 已完成段 1 于 11-1月 -12
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRIMARY\BACKUPSET\2012_01_11\O1_MF_ANNNN_TAG20120111T110402_7JSZ13PY
_.BKP 标记=TAG20120111T110402 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100004772112323.ARC 记录 ID=5 时间戳 =772283042
完成 backup 于 11-1月 -12
启动 backup 于 11-1月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\SYSAUX01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\USERS01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\DEMO.DBF
通道 ORA_DISK_1: 正在启动段 1 于 11-1月 -12
通道 ORA_DISK_1: 已完成段 1 于 11-1月 -12
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRIMARY\BACKUPSET\2012_01_11\O1_MF_NNNDF_TAG20120111T110405_7JSZ16N0
_.BKP 标记=TAG20120111T110405 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:25
完成 backup 于 11-1月 -12
启动 backup 于 11-1月 -12
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =5 记录 ID=6 时间戳=772283131
通道 ORA_DISK_1: 正在启动段 1 于 11-1月 -12
通道 ORA_DISK_1: 已完成段 1 于 11-1月 -12
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRIMARY\BACKUPSET\2012_01_11\O1_MF_ANNNN_TAG20120111T110531_7JSZ3WY8
_.BKP 标记=TAG20120111T110531 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100005772112323.ARC 记录 ID=6 时间戳 =772283131
完成 backup 于 11-1月 -12
启动 Control File and SPFILE Autobackup 于 11-1月 -12
段 handle=D:\DBA\BACKUP\C-1778268600-20120111-00 comment=NONE
完成 Control File and SPFILE Autobackup 于 11-1月 -12
RMAN>
---------------------
下面开始对数据库进行操作:
SQL> select * from demo.a;
I
----------
1
2
3
4
5
6
已选择6行。
SQL> insert into demo.a values (7);
已创建 1 行。
SQL> commit;
提交完成。
SQL> insert into demo.a values (8);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from demo.a;
I
----------
1
2
3
4
5
6
7
8
已选择8行。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log_history;
在列 NEXT_CHANGE# 前截断 (按要求)
在列 RESETLOGS_CHANGE# 前截断 (按要求)
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
1 772112324 1 1 752527 09-1月 -12 09-1月
2 772274859 1 1 754955 09-1月 -12 09-1月
3 772282426 1 2 784240 11-1月 -12 09-1月
4 772282527 1 3 789307 11-1月 -12 09-1月
5 772283041 1 4 789362 11-1月 -12 09-1月
6 772283130 1 5 789913 11-1月 -12 09-1月
7 772283397 1 6 789962 11-1月 -12 09-1月
8 772284384 1 7 790121 11-1月 -12 09-1月
已选择8行。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log_history;
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
1 772112324 1 1 752527 09-1月 -12 09-1月
2 772274859 1 1 754955 09-1月 -12 09-1月
3 772282426 1 2 784240 11-1月 -12 09-1月
4 772282527 1 3 789307 11-1月 -12 09-1月
5 772283041 1 4 789362 11-1月 -12 09-1月
6 772283130 1 5 789913 11-1月 -12 09-1月
7 772283397 1 6 789962 11-1月 -12 09-1月
8 772284384 1 7 790121 11-1月 -12 09-1月
9 772289768 1 1 789963 11-1月 -12 11-1月
已选择9行。
SQL> insert into demo.a values(8);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log_history;
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
1 772112324 1 1 752527 09-1月 -12 09-1月
2 772274859 1 1 754955 09-1月 -12 09-1月
3 772282426 1 2 784240 11-1月 -12 09-1月
4 772282527 1 3 789307 11-1月 -12 09-1月
5 772283041 1 4 789362 11-1月 -12 09-1月
6 772283130 1 5 789913 11-1月 -12 09-1月
7 772283397 1 6 789962 11-1月 -12 09-1月
8 772284384 1 7 790121 11-1月 -12 09-1月
9 772289768 1 1 789963 11-1月 -12 11-1月
10 772289816 1 2 793426 11-1月 -12 11-1月
已选择10行。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 D:\oracle\product\10.2.0\oradata\arch
最早的联机日志序列 1
下一个存档日志序列 3
当前日志序列 3
SQL> truncate table demo.a;
表被截断。
SQL> select * from demo.a;
未选定行
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log_history;
在列 NEXT_CHANGE# 前截断 (按要求)
在列 RESETLOGS_CHANGE# 前截断 (按要求)
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
1 772112324 1 1 752527 09-1月 -12 09-1月
2 772274859 1 1 754955 09-1月 -12 09-1月
3 772282426 1 2 784240 11-1月 -12 09-1月
4 772282527 1 3 789307 11-1月 -12 09-1月
5 772283041 1 4 789362 11-1月 -12 09-1月
6 772283130 1 5 789913 11-1月 -12 09-1月
7 772283397 1 6 789962 11-1月 -12 09-1月
8 772284384 1 7 790121 11-1月 -12 09-1月
9 772289768 1 1 789963 11-1月 -12 11-1月
10 772289816 1 2 793426 11-1月 -12 11-1月
11 772289927 1 3 793455 11-1月 -12 11-1月
已选择11行。
-------------------
SQL> insert into demo.a values(9);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from v$log_history;
在列 NEXT_CHANGE# 前截断 (按要求)
在列 RESETLOGS_CHANGE# 前截断 (按要求)
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
1 772112324 1 1 752527 09-1月 -12 09-1月
2 772274859 1 1 754955 09-1月 -12 09-1月
3 772282426 1 2 784240 11-1月 -12 09-1月
4 772282527 1 3 789307 11-1月 -12 09-1月
5 772283041 1 4 789362 11-1月 -12 09-1月
6 772283130 1 5 789913 11-1月 -12 09-1月
7 772283397 1 6 789962 11-1月 -12 09-1月
8 772284384 1 7 790121 11-1月 -12 09-1月
9 772289768 1 1 789963 11-1月 -12 11-1月
10 772289816 1 2 793426 11-1月 -12 11-1月
11 772289927 1 3 793455 11-1月 -12 11-1月
已选择11行。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log_history;
在列 NEXT_CHANGE# 前截断 (按要求)
在列 RESETLOGS_CHANGE# 前截断 (按要求)
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
1 772112324 1 1 752527 09-1月 -12 09-1月
2 772274859 1 1 754955 09-1月 -12 09-1月
3 772282426 1 2 784240 11-1月 -12 09-1月
4 772282527 1 3 789307 11-1月 -12 09-1月
5 772283041 1 4 789362 11-1月 -12 09-1月
6 772283130 1 5 789913 11-1月 -12 09-1月
7 772283397 1 6 789962 11-1月 -12 09-1月
8 772284384 1 7 790121 11-1月 -12 09-1月
9 772289768 1 1 789963 11-1月 -12 11-1月
10 772289816 1 2 793426 11-1月 -12 11-1月
11 772289927 1 3 793455 11-1月 -12 11-1月
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
12 772290144 1 4 793562 11-1月 -12 11-1月
已选择12行。
SQL> select * from demo.a;
I
----------
9
-------------------
下面关掉databse,
进行不完全恢复:
RMAN> startup mount;
Oracle 实例已启动
数据库已装载
系统全局区域总计 603979776 字节
Fixed Size 1250380 字节
Variable Size 272632756 字节
Database Buffers 322961408 字节
Redo Buffers 7135232 字节
RMAN> run {
2> set until sequence 3 thread 1;
3> restore database;
4> recover database;
5> }
正在执行命令: SET until clause
启动 restore 于 11-1月 -12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\USERS01.DBF
正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\DEMO.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRIMARY\BACKUPSET\2012_01_11\O1_MF_NNNDF_T
G20120111T110405_7JSZ16N0_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRIMARY\BACKUPSET\2012_01_11\O1_MF_NNNDF_TAG20120111T110405_7JSZ1
N0_.BKP 标记 = TAG20120111T110405
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:56
完成 restore 于 11-1月 -12
启动 recover 于 11-1月 -12
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 5 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100005772112323.ARC 存在于磁盘上
存档日志线程 1 序列 1 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100001772284781.ARC 存在于磁盘上
存档日志线程 1 序列 2 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100002772284781.ARC 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100005772112323.ARC 线程 =1 序列 =5
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100001772284781.ARC 线程 =1 序列 =1
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100002772284781.ARC 线程 =1 序列 =2
介质恢复完成, 用时: 00:00:06
完成 recover 于 11-1月 -12
RMAN> alter database open resetlogs;
数据库已打开
发现redo 已经重置:
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 D:\oracle\product\10.2.0\oradata\arch
最早的联机日志序列 0
下一个存档日志序列 1
当前日志序列 1
SQL> select * from demo.a;
I
----------
7
8
1
2
3
4
5
6
已选择8行。
数据恢复成功。
---------------
下面继续:
SQL> insert into demo.a values(10);
已创建 1 行。
SQL> commit;
提交完成。
SQL> insert into demo.a values(11);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from demo.a;
I
----------
7
8
10
11
1
2
3
4
5
6
已选择10行。
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
1 772112324 1 1 752527 09-1月 -12 09-1月
2 772274859 1 1 754955 09-1月 -12 09-1月
3 772282426 1 2 784240 11-1月 -12 09-1月
4 772282527 1 3 789307 11-1月 -12 09-1月
5 772283041 1 4 789362 11-1月 -12 09-1月
6 772283130 1 5 789913 11-1月 -12 09-1月
7 772283397 1 6 789962 11-1月 -12 09-1月
8 772284384 1 7 790121 11-1月 -12 09-1月
9 772289768 1 1 789963 11-1月 -12 11-1月
10 772289816 1 2 793426 11-1月 -12 11-1月
11 772289927 1 3 793455 11-1月 -12 11-1月
RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME RESETLO
---------- ---------- ---------- ---------- ------------- -------------- -------
12 772290144 1 4 793562 11-1月 -12 11-1月
13 772290911 1 1 793456 11-1月 -12 11-1月
14 772290923 1 2 793853 11-1月 -12 11-1月
已选择14行。
下面进行恢复:
RMAN> startup mount;
Oracle 实例已启动
数据库已装载
系统全局区域总计 603979776 字节
Fixed Size 1250380 字节
Variable Size 276827060 字节
Database Buffers 318767104 字节
Redo Buffers 7135232 字节
RMAN> run {
2> restore database;
3> recover database;
4> }
启动 restore 于 11-1月 -12
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\USERS01.DBF
正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\SHENG\DEMO.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRIMARY\BACKUPSET\2012_01_11\O1_MF_NNNDF_TA
G20120111T110405_7JSZ16N0_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\PRIMARY\BACKUPSET\2012_01_11\O1_MF_NNNDF_TAG20120111T110405_7JSZ16
N0_.BKP 标记 = TAG20120111T110405
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:56
完成 restore 于 11-1月 -12
启动 recover 于 11-1月 -12
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 5 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100005772112323.ARC 存在于磁盘上
存档日志线程 1 序列 1 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100001772284781.ARC 存在于磁盘上
存档日志线程 1 序列 2 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100002772284781.ARC 存在于磁盘上
存档日志线程 1 序列 1 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100001772290594.ARC 存在于磁盘上
存档日志线程 1 序列 2 已作为文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100002772290594.ARC 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100005772112323.ARC 线程 =1 序列 =5
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100001772284781.ARC 线程 =1 序列 =1
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\00100002772284781.ARC 线程 =1 序列 =2
介质恢复完成, 用时: 00:00:08
完成 recover 于 11-1月 -12
alter database open;
SQL> select * from demo.a;
I
----------
7
8
10
11
1
2
3
4
5
6
已选择10行。