12
返回列表 发新帖
楼主: chao_ping

[精华] 关于recovery through resetlogs的研究和探讨

[复制链接]
论坛徽章:
10
九尾狐狸
日期:2006-04-12 17:38:17会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB元老
日期:2006-04-17 20:13:232011新春纪念徽章
日期:2011-02-18 11:43:35
11#
发表于 2006-3-6 16:52 | 只看该作者
Prerequisites
In order to use this method, you must meet the following criteria:
• The database currently must be an Oracle RDBMS version 7.3.3 (or higher) as
well as before the RESETLOGS.
• There is no whole closed or opened database backup after RESETLOGS.
• There is a whole closed or opened database backup prior to RESETLOGS.
• Control files before and after RESETLOGS exist.
• All archived logs and online redo logs are present for recovery.
• The alert log contains information from the previous RESETLOGS.

使用道具 举报

回复
论坛徽章:
64
会员2007贡献徽章
日期:2007-09-26 18:42:10NBA常规赛纪念章
日期:2008-04-18 19:48:16欧洲冠军杯纪念徽章
日期:2008-05-23 14:31:342009新春纪念徽章
日期:2009-01-04 14:52:28NBA常规赛纪念章
日期:2009-04-16 14:28:42NBA季后赛纪念徽章
日期:2009-06-16 11:28:172010新春纪念徽章
日期:2010-01-04 08:33:08
12#
发表于 2006-5-11 10:56 | 只看该作者
这虽是多年前的帖子了,但相关的问题现在还有问的,所以顶上

使用道具 举报

回复
论坛徽章:
12
授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-02-18 11:43:332010新春纪念徽章
日期:2010-03-01 11:19:59BLOG每日发帖之星
日期:2009-01-27 01:01:05BLOG每日发帖之星
日期:2009-01-23 01:01:092008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:鸡
日期:2008-01-02 17:35:53会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB元老
日期:2007-05-09 17:56:18
13#
发表于 2006-6-30 16:45 | 只看该作者
首先做一个全备份
C:\Documents and Settings\Administrator>set oracle_sid=test

C:\Documents and Settings\Administrator>set nls_date_format=yyyymmdd hh24:mi:ss

C:\Documents and Settings\Administrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount

Oracle 例程已启动
数据库已加载

系统全局区域总计     126950220 字节

Fixed Size                      453452 字节
Variable Size                109051904 字节
Database Buffers              16777216 字节
Redo Buffers                    667648 字节

RMAN> backup database;

启动 backup 于 20060630 16:21:10
正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 20060630 16:21:13
通道 ORA_DISK_1: 已完成段 1 于 20060630 16:21:28
段 handle=D:\ORACLE\ORA92\DATABASE\01HMUDFO_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:16
完成 backup 于 20060630 16:21:28

RMAN> shutdown immediate

数据库已卸载
Oracle 例程已关闭

RMAN> quit


恢复管理器完成。

拷贝这时的控制文件,称为a.ctl[/COLOR]

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 6月 30 16:22:25 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> create table a1 as select * from dba_users;

表已创建。

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

SQL> /

系统已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> quit

创建了a1表


进行不完全恢复[/COLOR] :

从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开

C:\Documents and Settings\Administrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount

Oracle 例程已启动
数据库已加载

系统全局区域总计     126950220 字节

Fixed Size                      453452 字节
Variable Size                109051904 字节
Database Buffers              16777216 字节
Redo Buffers                    667648 字节

RMAN> run{
2> set until time '20060630 16:21:00';
3> restore database;
4> recover database;}

正在执行命令: SET until clause
正在使用目标数据库控制文件替代恢复目录

启动 restore 于 20060630 16:25:04

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:\ORACLE\ORA92\DATABASE\01HMUDFO_1_1 tag=TAG20060630T162111 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 20060630 16:25:21

启动 recover 于 20060630 16:25:21
使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 22 已作为文件 D:\ORACLE\ORADATA\TEST\ARCHIVELOG\1EST001001S0
0022.ARC 存在于磁盘上
存档日志文件名 =D:\ORACLE\ORADATA\TEST\ARCHIVELOG\1EST001001S00022.ARC 线程 =1
序列 =22
完成介质的恢复
完成 recover 于 20060630 16:25:22

RMAN> alter database open resetlogs;

数据库已打开

RMAN> quit


恢复管理器完成。

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 6月 30 16:25:49 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
已连接。

SQL> desc a1
ERROR:
ORA-04043: 对象 a1 不存在

发现恢复成功,a1表没有了[/COLOR]


SQL> create table a2 as select * from dba_users;

表已创建。

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> quit

创建了另一张表a2
这时备份了控制文件b.ctl

开始进行跨越resetlog的恢复,先把原来的a.ctl复制回来[/COLOR]

从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开

C:\Documents and Settings\Administrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount

Oracle 例程已启动
数据库已加载

系统全局区域总计     126950220 字节

Fixed Size                      453452 字节
Variable Size                109051904 字节
Database Buffers              16777216 字节
Redo Buffers                    667648 字节

RMAN> run{
2> set until time '20060630 16:21:00';
3> restore database;
4> recover database;}

正在执行命令: SET until clause
正在使用目标数据库控制文件替代恢复目录

启动 restore 于 20060630 16:28:33

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:\ORACLE\ORA92\DATABASE\01HMUDFO_1_1 tag=TAG20060630T162111 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 20060630 16:28:51

启动 recover 于 20060630 16:28:51
使用通道 ORA_DISK_1

正在开始介质的恢复
完成介质的恢复

完成 recover 于 20060630 16:28:52

RMAN> shutdown immediate

数据库已卸载
Oracle 例程已关闭

RMAN> quit


恢复管理器完成。

完成了不完全恢复,这时再将b.ctl复制回来,继续恢复
[/COLOR]
C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 6月 30 16:29:40 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
ORA-01190: 控制文件或数据文件1来自于最后一个 RESETLOGS 之前
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF'


SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-01190: 控制文件或数据文件1来自于最后一个 RESETLOGS 之前
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF'a[/COLOR]

使用道具 举报

回复
论坛徽章:
12
授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-02-18 11:43:332010新春纪念徽章
日期:2010-03-01 11:19:59BLOG每日发帖之星
日期:2009-01-27 01:01:05BLOG每日发帖之星
日期:2009-01-23 01:01:092008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:鸡
日期:2008-01-02 17:35:53会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB元老
日期:2007-05-09 17:56:18
14#
发表于 2006-6-30 16:47 | 只看该作者
各位能找出我的问题出在哪里么?按理说我都是使用IMMEDIATE关闭的,比之abort应该根据容易啊,可是我反复作了不关是abort还是immediate都不能成功。使用冷备份我倒是1次就成功了。

使用道具 举报

回复
论坛徽章:
12
奥运会纪念徽章:皮划艇静水
日期:2008-05-04 15:32:29参与WIN7挑战赛纪念
日期:2009-11-17 13:32:26祖国60周年纪念徽章
日期:2009-10-09 08:28:00CTO参与奖
日期:2009-01-15 11:42:462009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:举重
日期:2008-10-24 13:16:31授权会员
日期:2008-09-29 09:30:46奥运会纪念徽章:马术
日期:2008-09-05 04:19:37奥运会纪念徽章:曲棍球
日期:2008-08-14 11:19:03奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-31 22:06:04
15#
发表于 2008-7-24 10:50 | 只看该作者
原帖由 wenaini 于 2006-6-30 16:45 发表
首先做一个全备份
Cocuments and SettingsAdministrator>set oracle_sid=test

Cocuments and SettingsAdministrator>set nls_date_format=yyyymmdd hh24:mi:ss

Cocuments and SettingsAdministrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount

Oracle 例程已启动
数据库已加载

系统全局区域总计     126950220 字节

Fixed Size                      453452 字节
Variable Size                109051904 字节
Database Buffers              16777216 字节
Redo Buffers                    667648 字节

RMAN> backup database;

启动 backup 于 20060630 16:21:10
正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:ORACLEORADATATESTSYSTEM01.DBF
输入数据文件 fno=00002 name=D:ORACLEORADATATESTUNDOTBS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 20060630 16:21:13
通道 ORA_DISK_1: 已完成段 1 于 20060630 16:21:28
段 handle=D:ORACLEORA92DATABASE1HMUDFO_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:16
完成 backup 于 20060630 16:21:28

RMAN> shutdown immediate

数据库已卸载
Oracle 例程已关闭

RMAN> quit


恢复管理器完成。

拷贝这时的控制文件,称为a.ctl

Cocuments and SettingsAdministrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 6月 30 16:22:25 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> create table a1 as select * from dba_users;

表已创建。

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

SQL> /

系统已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> quit

创建了a1表


进行不完全恢复 :

从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开

Cocuments and SettingsAdministrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount

Oracle 例程已启动
数据库已加载

系统全局区域总计     126950220 字节

Fixed Size                      453452 字节
Variable Size                109051904 字节
Database Buffers              16777216 字节
Redo Buffers                    667648 字节

RMAN> run{
2> set until time '20060630 16:21:00';
3> restore database;
4> recover database;}

正在执行命令: SET until clause
正在使用目标数据库控制文件替代恢复目录

启动 restore 于 20060630 16:25:04

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:ORACLEORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到D:ORACLEORADATATESTUNDOTBS01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:ORACLEORA92DATABASE1HMUDFO_1_1 tag=TAG20060630T162111 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 20060630 16:25:21

启动 recover 于 20060630 16:25:21
使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 22 已作为文件 D:ORACLEORADATATESTARCHIVELOG1EST001001S0
0022.ARC 存在于磁盘上
存档日志文件名 =D:ORACLEORADATATESTARCHIVELOG1EST001001S00022.ARC 线程 =1
序列 =22
完成介质的恢复
完成 recover 于 20060630 16:25:22

RMAN> alter database open resetlogs;

数据库已打开

RMAN> quit


恢复管理器完成。

Cocuments and SettingsAdministrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 6月 30 16:25:49 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
已连接。

SQL> desc a1
ERROR:
ORA-04043: 对象 a1 不存在

发现恢复成功,a1表没有了


SQL> create table a2 as select * from dba_users;

表已创建。

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> quit

创建了另一张表a2
这时备份了控制文件b.ctl

开始进行跨越resetlog的恢复,先把原来的a.ctl复制回来

从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开

Cocuments and SettingsAdministrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup mount

Oracle 例程已启动
数据库已加载

系统全局区域总计     126950220 字节

Fixed Size                      453452 字节
Variable Size                109051904 字节
Database Buffers              16777216 字节
Redo Buffers                    667648 字节

RMAN> run{
2> set until time '20060630 16:21:00';
3> restore database;
4> recover database;}

正在执行命令: SET until clause
正在使用目标数据库控制文件替代恢复目录

启动 restore 于 20060630 16:28:33

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:ORACLEORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到D:ORACLEORADATATESTUNDOTBS01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:ORACLEORA92DATABASE1HMUDFO_1_1 tag=TAG20060630T162111 params=NU
LL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 20060630 16:28:51

启动 recover 于 20060630 16:28:51
使用通道 ORA_DISK_1

正在开始介质的恢复
完成介质的恢复

完成 recover 于 20060630 16:28:52

RMAN> shutdown immediate

数据库已卸载
Oracle 例程已关闭

RMAN> quit


恢复管理器完成。

完成了不完全恢复,这时再将b.ctl复制回来,继续恢复

Cocuments and SettingsAdministrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 6月 30 16:29:40 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
ORA-01190: 控制文件或数据文件1来自于最后一个 RESETLOGS 之前
ORA-01110: 数据文件 1: 'D:ORACLEORADATATESTSYSTEM01.DBF'


SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-01190: 控制文件或数据文件1来自于最后一个 RESETLOGS 之前
ORA-01110: 数据文件 1: 'D:ORACLEORADATATESTSYSTEM01.DBF'a


"控制文件或数据文件1来自于最后一个 RESETLOGS 之前"我认为是控制文件SCN和RODO的SCN不一致了,看看你有没有在归档模式下运行
很有可能是你在NOarchivelog模式下做的实验

使用道具 举报

回复
论坛徽章:
12
奥运会纪念徽章:皮划艇静水
日期:2008-05-04 15:32:29参与WIN7挑战赛纪念
日期:2009-11-17 13:32:26祖国60周年纪念徽章
日期:2009-10-09 08:28:00CTO参与奖
日期:2009-01-15 11:42:462009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:举重
日期:2008-10-24 13:16:31授权会员
日期:2008-09-29 09:30:46奥运会纪念徽章:马术
日期:2008-09-05 04:19:37奥运会纪念徽章:曲棍球
日期:2008-08-14 11:19:03奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-31 22:06:04
16#
发表于 2008-7-24 10:54 | 只看该作者
另外10g的就简单多了
有一个“对应物”的概念,用list incarnatio 查看对应物的备份集
然后是类似于基于SCN的恢复命令

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表