楼主: susan_j

[备份恢复] 请教如何进行数据恢复

[复制链接]
论坛徽章:
138
19周年集字徽章-19
日期:2020-06-08 08:30:56马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02路虎
日期:2013-11-22 12:26:18问答徽章
日期:2014-05-08 12:15:31
21#
发表于 2008-3-13 17:30 | 只看该作者

rman recover 测试.txt

1.95 KB, 下载次数: 25

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
22#
发表于 2008-3-13 19:46 | 只看该作者
原帖由 棉花糖ONE 于 2008-3-13 17:30 发表



我觉得不用删除所有数据文件,如果是裸设备这也太麻烦了~,也不用恢复控制文件,直接用现在的就可以,lz要恢复的时间点数据文件的结构也没有改变~

如下:

---1.建立测试环境
全备数据库;
建立lz的test表(将被truncate的那个);
创建TS1表空间,并在上面建立T表(用来测试是否可以恢复TS1表空间数据);

C:\Documents and Settings\RequieM>sqlplus " / as sysdba"

SQL*Plus: Release 9.2.0.8.0 - Production on 星期四 3月 13 19:13:41 2008

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

已连接到空闲例程。

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  101785012 bytes
Fixed Size                   454068 bytes
Variable Size              75497472 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production中断开

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

恢复管理器: 版本9.2.0.8.0 - Production

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

连接到目标数据库: MYDB (DBID=2561219694)

RMAN> report schema;

正在使用目标数据库控制文件替代恢复目录
数据库方案报表
文件 KB    表空间           RB segs 数据文件名称
---- ---------- -------------------- ------- -------------------
1        409600 SYSTEM               ***     F:\ORACLE\ORADATA\MYDB\SYSTEM01.DBF

2        204800 UNDOTBS1             ***     F:\ORACLE\ORADATA\MYDB\UNDOTBS01.DB
F
3        102400 TEST                 ***     F:\ORACLE\ORADATA\MYDB\TEST.DBF

RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'F:\oracle\oraba
ckup\MYDB\%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'F:\oracle\orabackup\MYDB\%d_%s_%p.B
AK';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'F:\ORACLE\PRODUCT\9.2.0\DATABASE\SNCFMYD
B.ORA'; # default

RMAN> backup database include current controlfile plus archivelog delete all inp
ut;


启动 backup 于 13-3月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=12 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =32 记录 ID=30 时间戳=648952586
通道 ORA_DISK_1: 正在启动段 1 于 13-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 13-3月 -08
段 handle=F:\ORACLE\ORABACKUP\MYDB\MYDB_45_1.BAK comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =F:\ORACLE\ORADATA\MYDB\ARCHIVE\1_32.DBF 记录 ID=30 时间戳 =64895
2586
完成 backup 于 13-3月 -08

启动 backup 于 13-3月 -08
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00002 name=F:\ORACLE\ORADATA\MYDB\UNDOTBS01.DBF
输入数据文件 fno=00003 name=F:\ORACLE\ORADATA\MYDB\TEST.DBF
通道 ORA_DISK_1: 正在启动段 1 于 13-3月 -08
通道 ORA_DISK_2: 正在启动 full 数据文件备份集
通道 ORA_DISK_2: 正在指定备份集中的数据文件
备份集中包括当前控制文件
输入数据文件 fno=00001 name=F:\ORACLE\ORADATA\MYDB\SYSTEM01.DBF
通道 ORA_DISK_2: 正在启动段 1 于 13-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 13-3月 -08
段 handle=F:\ORACLE\ORABACKUP\MYDB\MYDB_46_1.BAK comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:09
通道 ORA_DISK_2: 已完成段 1 于 13-3月 -08
段 handle=F:\ORACLE\ORABACKUP\MYDB\MYDB_47_1.BAK comment=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:24
完成 backup 于 13-3月 -08

启动 backup 于 13-3月 -08
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
说明与恢复目录中的任何存档日志均不匹配
完成 backup 于 13-3月 -08

启动 Control File and SPFILE Autobackup 于 13-3月 -08
段 handle=F:\ORACLE\ORABACKUP\MYDB\C-2561219694-20080313-00 comment=NONE
完成 Control File and SPFILE Autobackup 于 13-3月 -08

RMAN> exit


恢复管理器完成。

C:\Documents and Settings\RequieM>sqlplus " / as sysdba"

SQL*Plus: Release 9.2.0.8.0 - Production on 星期四 3月 13 19:17:08 2008

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


连接到:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

SQL> alter database open;

数据库已更改。

SQL> create table test tablespace TEST as select * from v$version;

表已创建。

SQL> select * from test;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

SQL> CREATE TABLESPACE "TS1"
  2      LOGGING
  3      DATAFILE 'F:\ORACLE\ORADATA\MYDB\TS1.ora' SIZE 5M EXTENT
  4      MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO
  5  /

表空间已创建。

SQL> create table T tablespace TS1 as select * from v$version;

表已创建。

SQL> select * from T;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production



---2.开始模拟错误
记录当前SCN;(实际环境可以logmnr来查)
truncate 表test;

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                   99420

SQL> truncate table TEST;

表已截掉。

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                   99434

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  101785012 bytes
Fixed Size                   454068 bytes
Variable Size              75497472 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production中断开



关闭数据库后,做基于SCN的不完全恢复,发现失败,因为datafile 4,也就是TS1表空间的数据文件没有备份~

C:\Documents and Settings\RequieM>target /
'target' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

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

恢复管理器: 版本9.2.0.8.0 - Production

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

连接到目标数据库: MYDB (DBID=2561219694)


RMAN> report schema;

正在使用目标数据库控制文件替代恢复目录
数据库方案报表
文件 KB    表空间           RB segs 数据文件名称
---- ---------- -------------------- ------- -------------------
1        409600 SYSTEM               ***     F:\ORACLE\ORADATA\MYDB\SYSTEM01.DBF

2        204800 UNDOTBS1             ***     F:\ORACLE\ORADATA\MYDB\UNDOTBS01.DB
F
3        102400 TEST                 ***     F:\ORACLE\ORADATA\MYDB\TEST.DBF
4          5120 TS1                  ***     F:\ORACLE\ORADATA\MYDB\TS1.ORA


RMAN> run {
2> set until scn 99420;
3> restore database;
4> recover database;
5> }

正在执行命令: SET until clause

启动 restore 于 13-3月 -08

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=12 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=13 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 03/13/2008 19:25:55
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 4 found to restore

RMAN> exit


恢复管理器完成。


--- 使用命令 ALTER DATABASE CREATE DATAFILE 4 AS 'F:\ORACLE\ORADATA\MYDB\TS1.ORA' reuse 清空datafile4

C:\Documents and Settings\RequieM>sqlplus " / as sysdba"

SQL*Plus: Release 9.2.0.8.0 - Production on 星期四 3月 13 19:28:58 2008

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


连接到:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

SQL> ALTER DATABASE CREATE DATAFILE 4 AS 'F:\ORACLE\ORADATA\MYDB\TS1.ORA' reuse;


数据库已更改。

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



基于SCN再次转储除datafile 4,以外的所有数据文件~然后恢复数据库;

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

恢复管理器: 版本9.2.0.8.0 - Production

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

连接到目标数据库: MYDB (DBID=2561219694)

RMAN> run {
2> set until scn 99420;
3> restore datafile 1,2,3;
4> recover database;
5> }

正在执行命令: SET until clause

启动 restore 于 13-3月 -08

使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到F:\ORACLE\ORADATA\MYDB\UNDOTBS01.DBF
正将数据文件00003恢复到F:\ORACLE\ORADATA\MYDB\TEST.DBF
通道 ORA_DISK_2: 正在开始恢复数据文件备份集
通道 ORA_DISK_2: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到F:\ORACLE\ORADATA\MYDB\SYSTEM01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=F:\ORACLE\ORABACKUP\MYDB\MYDB_46_1.BAK tag=TAG20080313T191627 params=N
ULL
通道 ORA_DISK_1: 恢复完成
通道 ORA_DISK_2: 已恢复备份段 1
段 handle=F:\ORACLE\ORABACKUP\MYDB\MYDB_47_1.BAK tag=TAG20080313T191627 params=N
ULL
通道 ORA_DISK_2: 恢复完成
完成 restore 于 13-3月 -08

启动 recover 于 13-3月 -08
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2

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

完成 recover 于 13-3月 -08

RMAN> exit


恢复管理器完成。



恢复成功~! 打开数据库,查看TEST已经恢复,并且TS1中的数据并未丢失~

C:\Documents and Settings\RequieM>sqlplus " / as sysdba"

SQL*Plus: Release 9.2.0.8.0 - Production on 星期四 3月 13 19:30:36 2008

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


连接到:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

SQL> alter database open resetlogs;

数据库已更改。

SQL> select * from test;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

SQL> select * from T;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
PL/SQL Release 9.2.0.8.0 - Production
CORE    9.2.0.8.0       Production
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production

如果LZ在建立表空间或添加数据文件后及时地备份了新加入的数据文件,就跟简单了,直接不完全恢复就可以~

使用道具 举报

回复
论坛徽章:
138
19周年集字徽章-19
日期:2020-06-08 08:30:56马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02路虎
日期:2013-11-22 12:26:18问答徽章
日期:2014-05-08 12:15:31
23#
发表于 2008-3-13 19:50 | 只看该作者
你那方法就是我在3楼发的啊

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
24#
发表于 2008-3-13 19:57 | 只看该作者
原帖由 棉花糖ONE 于 2008-3-13 19:50 发表
你那方法就是我在3楼发的啊





嘻嘻~

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
25#
发表于 2008-3-13 20:03 | 只看该作者
棉花糖ONE 刚刚发现你现在是版主了~

恭喜恭喜,工作找到了么?

使用道具 举报

回复
论坛徽章:
5
2008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:兔
日期:2009-01-24 14:48:21
26#
 楼主| 发表于 2008-3-21 15:43 | 只看该作者
今天抽时间再进行了一下恢复测试,试过几次之后,发现还是得按照棉花糖版主的方式,必须把所有数据文件删除后才能恢复成功.如果不删除所有数据文件,在alter database open resetlogs 的时候,会出现以下报错:

RMAN> sql 'alter database open resetlogs';

sql 语句: alter database open resetlogs
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 03/21/2008 15:09:28 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败: alter database open resetlogs
ORA-01153: 激活了不兼容的介质恢复

哪位能帮忙解释一下?

再次谢谢棉花糖版主,zergduan 还有其他各位的帮忙!

使用道具 举报

回复
论坛徽章:
5
2008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:兔
日期:2009-01-24 14:48:21
27#
 楼主| 发表于 2008-3-21 15:48 | 只看该作者
zergduan  23 楼的方法还没试,回头也试试看.

使用道具 举报

回复
论坛徽章:
5
2008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:兔
日期:2009-01-24 14:48:21
28#
 楼主| 发表于 2008-3-24 13:59 | 只看该作者
今天尝试用zergduan的方法,利用当前的控制文件进行恢复测试,结果发现如果恢复前不删除所有的数据文件,在恢复后,resetlogs打开数据库的时候,还是会报出错误:

sql 语句:  alter database open resetlogs
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 03/24/2008 13:30:25 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败:  alter database open resetlogs
ORA-01153: 激活了不兼容的介质恢复


如果恢复前把数据文件都删除,则恢复可以成功。

以下是测试的过程,请大家指正一下

使用道具 举报

回复
论坛徽章:
5
2008新春纪念徽章
日期:2008-02-13 12:43:03生肖徽章2007版:兔
日期:2009-01-24 14:48:21
29#
 楼主| 发表于 2008-3-24 14:06 | 只看该作者
C:\>rman catalog rman/rman@rmandb target sys/oracle@ora10g

恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 24 11:44:02 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到目标数据库: ORA10G (DBID=3968729586)
连接到恢复目录数据库

RMAN> backup database format='C:\oracle\product\10.2.0\backup\rman\ora10g\%d_%s.
bak' plus archivelog delete all input;


启动 backup 于 24-3月 -08
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =1 记录 ID=35 时间戳=650202306
通道 ORA_DISK_1: 正在启动段 1 于 24-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 24-3月 -08
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORA10G\BACKUPSET\2008_03_24\
O1_MF_ANNNN_TAG20080324T114508_3YG8Y6LK_.BKP 标记=TAG20080324T114508 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\ARCH\ARC00001_0649956177
.001 记录 ID=35 时间戳 =650202306
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =2 记录 ID=33 时间戳=649956179
输入存档日志线程 =1 序列 =3 记录 ID=34 时间戳=649956179
输入存档日志线程 =1 序列 =4 记录 ID=32 时间戳=649956178
通道 ORA_DISK_1: 正在启动段 1 于 24-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 24-3月 -08
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORA10G\BACKUPSET\2008_03_24\
O1_MF_ANNNN_TAG20080324T114508_3YG8YBTC_.BKP 标记=TAG20080324T114508 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\ARCH\ARC00002_0649873797
.001 记录 ID=33 时间戳 =649956179
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\ARCH\ARC00003_0649873797
.001 记录 ID=34 时间戳 =649956179
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\ARCH\ARC00004_0649873797
.001 记录 ID=32 时间戳 =649956178
完成 backup 于 24-3月 -08

启动 backup 于 24-3月 -08
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSTEM01.DBF

输入数据文件 fno=00003 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSAUX01.DBF

输入数据文件 fno=00002 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\UNDOTBS01.DB
F
输入数据文件 fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\USERS01.DBF
输入数据文件 fno=00005 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TS1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 24-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 24-3月 -08
段句柄=C:\ORACLE\PRODUCT\10.2.0\BACKUP\RMAN\ORA10G\ORA10G_39.BAK 标记=TAG2008032
4T114516 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:06
完成 backup 于 24-3月 -08

启动 backup 于 24-3月 -08
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =2 记录 ID=36 时间戳=650202385
通道 ORA_DISK_1: 正在启动段 1 于 24-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 24-3月 -08
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORA10G\BACKUPSET\2008_03_24\
O1_MF_ANNNN_TAG20080324T114627_3YG90N98_.BKP 标记=TAG20080324T114627 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\ARCH\ARC00002_0649956177
.001 记录 ID=36 时间戳 =650202385
完成 backup 于 24-3月 -08

启动 Control File and SPFILE Autobackup 于 24-3月 -08
段 handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORA10G\AUTOBACKUP\2008_03
_24\O1_MF_S_650202391_3YG90RTC_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 24-3月 -08

RMAN> exit


恢复管理器完成。

C:\>sqlplus sys/oracle@ora10g as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 24 11:47:37 2008

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 jian.t;

         A
----------
      1111
      1111
      1111
      1111
      1111
      1111

已选择6行。

SQL> create tablespace ts2 datafile 'C:\oracle\product\10.2.0\oradata\ora10g\ts2.dbf' size 1m ;

表空间已创建。

SQL> create table jian.ts2 tablespace ts2 as select * from dba_users;

表已创建。

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                  598666

SQL>
SQL> truncate table jian.t;

表被截断。

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                  598741

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:\>rman catalog rman/rman@rmandb target sys/oracle@ora10g

恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 24 13:17:42 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

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

RMAN> startup mount;

Oracle 实例已启动
数据库已装载

系统全局区域总计     289406976 字节

Fixed Size                     1248576 字节
Variable Size                 75498176 字节
Database Buffers             205520896 字节
Redo Buffers                   7139328 字节
正在启动全部恢复目录的 resync
完成全部 resync

RMAN> report schema;

数据库方案报表

永久数据文件列表
===========================
文件大小 (MB) 表空间           回退段数据文件名称
---- -------- -------------------- ------- ------------------------
1    480      SYSTEM               YES     C:\ORACLE\PRODUCT\10.2.0\ORADATA\
0G\SYSTEM01.DBF
2    25       UNDOTBS1             YES     C:\ORACLE\PRODUCT\10.2.0\ORADATA\
0G\UNDOTBS01.DBF
3    240      SYSAUX               NO      C:\ORACLE\PRODUCT\10.2.0\ORADATA\
0G\SYSAUX01.DBF
4    5        USERS                NO      C:\ORACLE\PRODUCT\10.2.0\ORADATA\
0G\USERS01.DBF
5    1        TS1                  NO      C:\ORACLE\PRODUCT\10.2.0\ORADATA\
0G\TS1.DBF
6    1        TS2                  NO      C:\ORACLE\PRODUCT\10.2.0\ORADATA\
0G\TS2.DBF

临时文件列表
=======================
文件大小 (MB) 表空间           最大大小 (MB) 临时文件名称
---- -------- -------------------- ----------- --------------------
1    20       TEMP                 32767       C:\ORACLE\PRODUCT\10.2.0\ORAD
ORA10G\TEMP01.DBF

RMAN> run {
2> set until scn 598666;
3> restore database;
4> recover database;
5> }

正在执行命令: SET until clause

启动 restore 于 24-3月 -08
使用通道 ORA_DISK_1

创建数据文件 fno = 6 名称 = C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TS2.DBF
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSTEM01.DBF
正将数据文件00002恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\UNDOTBS01.DBF
正将数据文件00003恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSAUX01.DBF
正将数据文件00004恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\USERS01.DBF
正将数据文件00005恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TS1.DBF
通道 ORA_DISK_1: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\BACKUP\RMAN\ORA10G\ORA1
0G_39.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = C:\ORACLE\PRODUCT\10.2.0\BACKUP\RMAN\ORA10G\ORA10G_39.BAK 标记 = TAG200
80324T114516
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:06
完成 restore 于 24-3月 -08

启动 recover 于 24-3月 -08
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:09

完成 recover 于 24-3月 -08

RMAN>
RMAN> sql' alter database open resetlogs';

sql 语句:  alter database open resetlogs
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 03/24/2008 13:30:25 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败:  alter database open resetlogs
ORA-01153: 激活了不兼容的介质恢复

############# shutdown 数据库,再进行一次恢复

RMAN> shutdown immediate;

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

############# shutdown 数据库之后,将所有数据文件删除(保留控制文件和日志文件)

RMAN> startup mount;

已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载

系统全局区域总计     289406976 字节

Fixed Size                     1248576 字节
Variable Size                 75498176 字节
Database Buffers             205520896 字节
Redo Buffers                   7139328 字节

RMAN>

RMAN> run {
2> set until scn 598666;
3> restore database;
4> recover database;
5> }

正在执行命令: SET until clause

启动 restore 于 24-3月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK

创建数据文件 fno = 6 名称 = C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TS2.DBF
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSTEM01.DBF
正将数据文件00002恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\UNDOTBS01.DBF
正将数据文件00003恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSAUX01.DBF
正将数据文件00004恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\USERS01.DBF
正将数据文件00005恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TS1.DBF
通道 ORA_DISK_1: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\BACKUP\RMAN\ORA10G\ORA1
0G_39.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = C:\ORACLE\PRODUCT\10.2.0\BACKUP\RMAN\ORA10G\ORA10G_39.BAK 标记 = TAG200
80324T114516
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:06
完成 restore 于 24-3月 -08

启动 recover 于 24-3月 -08
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:06

完成 recover 于 24-3月 -08
完成 recover 于 24-3月 -08

RMAN> sql' alter database open resetlogs';

sql 语句:  alter database open resetlogs
在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync

RMAN>
RMAN> exit


恢复管理器完成。

C:\>sqlplus sys/oracle@ora10g as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 24 14:05:38 2008

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>
SQL> select count(*)from jian.t;

  COUNT(*)
----------
         6

SQL> select count(*)  from jian.ts2;

  COUNT(*)
----------
        22

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
30#
发表于 2008-3-24 14:46 | 只看该作者
...你没有好好看我的帖子吧,直接对全库做不完全恢复时不可以的~注意看我的黑体字~~
按照你的实验应该这样做:
1.全备
2.模拟环境
创建表空间ts2(也就是datafile 6 )
记录SCN(你的实验中是598666)
truncate table A。
3试图恢复table A
正确的做法是
ALTER DATABASE CREATE DATAFILE 6 as 'C:\oracle\product\10.2.0\oradata\ora10g\ts2.dbf'  reuse 来清空datafile 6~
然后再
run {
2> set until scn 598666;
3> restore datafile 1,2,3,4,5;
4> recover database;
5> }

[ 本帖最后由 zergduan 于 2008-3-24 14:47 编辑 ]

使用道具 举报

回复

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

本版积分规则 发表回复

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