Oracle冷备份的不完全恢复-中-

文章作者 100test 发表时间 2007:03:14 13:49:46
来源 100Test.Com百考试题网


total system global area 135338868 bytes
fixed size 453492 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
数据库装载完毕。
sql> recover database until time 2005-12-17 16:30:07 .
ora-00279: 更改 984674 (在 12/17/2005 16:14:05 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00003.001
ora-00280: 更改 984674 对于线程 1 是按序列 # 3 进行的


指定日志: {=suggested | filename | auto | cancel}
auto
ora-00279: 更改 985596 (在 12/17/2005 16:28:34 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00004.001
ora-00280: 更改 985596 对于线程 1 是按序列 # 4 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00003.001


ora-00279: 更改 985702 (在 12/17/2005 16:29:20 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00005.001
ora-00280: 更改 985702 对于线程 1 是按序列 # 5 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00004.001


ora-00279: 更改 985822 (在 12/17/2005 16:29:54 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00006.001
ora-00280: 更改 985822 对于线程 1 是按序列 # 6 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00005.001


已应用的日志。
完成介质恢复。
sql> alter database open resetlogs.

数据库已更改。
------------------------------
到此恢复成功
因为使用的是介质恢复(不完全恢复)
故一定要使用resetlogs,重置日志序列号,和将日志scn归零,当再次添加数据或引起scn变化的时候 archive_change#将得到和其他连个相近(?)的数字
可以查询一下


sql> 0select checkpoint_change#,archive_change# ,controlfile_change# from v$database.

checkpoint_change# archive_change# controlfile_change#
------------------ --------------- -------------------
985935 0 985997


sql> 0select * from test.test.

a b
-------------------- --------------------
2005-12-17 16:29:14 2005-12-17 16:29:14
2005-12-17 16:28:26 2005-12-17 16:28:26
2005-12-17 16:28:27 2005-12-17 16:28:27
2005-12-17 16:29:12 2005-12-17 16:29:12
2005-12-17 16:29:49 2005-12-17 16:29:49
2005-12-17 16:29:49 2005-12-17 16:29:49

已选择6行。
查询第六行的时间和log_history的记录发现是scn=985822
故恢复的时候如果直接恢复到第六条数据,就可使用scn=985822
b 基于时间恢复(使用备份的控制文件)
拷贝第一次冷备份的所有的数据文件,控制文件
sql> shutdown immediate
ora-01109: 数据库未打开


已经卸载数据库。
oracle 例程已经关闭。
sql> startup mount
oracle 例程已经启动。

total system global area 135338868 bytes
fixed size 453492 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
数据库装载完毕。
sql> recover database until time 2005-12-17 16:30:07 using backup controlfile.
ora-00279: 更改 984674 (在 12/17/2005 16:14:05 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00003.001
ora-00280: 更改 984674 对于线程 1 是按序列 # 3 进行的


指定日志: {=suggested | filename | auto | cancel}
auto
ora-00279: 更改 985596 (在 12/17/2005 16:28:34 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00004.001
ora-00280: 更改 985596 对于线程 1 是按序列 # 4 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00003.001


ora-00279: 更改 985702 (在 12/17/2005 16:29:20 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00005.001
ora-00280: 更改 985702 对于线程 1 是按序列 # 5 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00004.001


ora-00279: 更改 985822 (在 12/17/2005 16:29:54 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00006.001
ora-00280: 更改 985822 对于线程 1 是按序列 # 6 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00005.001


已应用的日志。
完成介质恢复。
sql> alter database open resetlogs.

数据库已更改。

sql> 0select checkpoint_change#,archive_change# ,controlfile_change# from v$database.

checkpoint_change# archive_change# controlfile_change#
------------------ --------------- -------------------
985935 0 985997

sql> 0select * from test.test.

a b
-------------------- --------------------
2005-12-17 16:29:14 2005-12-17 16:29:14
2005-12-17 16:28:26 2005-12-17 16:28:26
2005-12-17 16:28:27 2005-12-17 16:28:27
2005-12-17 16:29:12 2005-12-17 16:29:12
2005-12-17 16:29:49 2005-12-17 16:29:49
2005-12-17 16:29:49 2005-12-17 16:29:49

已选择6行。

sql>


b、a 基于变更的恢复(不包含备份的控制文件)
sql> recover database until change 985822.
ora-00905: 缺少关键字


sql> recover database until change 985822.
ora-00279: 更改 984674 (在 12/17/2005 16:14:05 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00003.001
ora-00280: 更改 984674 对于线程 1 是按序列 # 3 进行的


指定日志: {=suggested | filename | auto | cancel}
auto
ora-00279: 更改 985596 (在 12/17/2005 16:28:34 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00004.001
ora-00280: 更改 985596 对于线程 1 是按序列 # 4 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00003.001


ora-00279: 更改 985702 (在 12/17/2005 16:29:20 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00005.001
ora-00280: 更改 985702 对于线程 1 是按序列 # 5 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00004.001


已应用的日志。
完成介质恢复。
sql> alter database open resetlogs.

数据库已更改。

sql> 0select * from test.test.

a b
-------------------- --------------------
2005-12-17 16:29:14 2005-12-17 16:29:14
2005-12-17 16:28:26 2005-12-17 16:28:26
2005-12-17 16:28:27 2005-12-17 16:28:27
2005-12-17 16:29:12 2005-12-17 16:29:12
2005-12-17 16:29:49 2005-12-17 16:29:49
2005-12-17 16:29:49 2005-12-17 16:29:49

已选择6行。

sql> 0select checkpoint_change#,archive_change# ,controlfile_change# from v$database.

checkpoint_change# archive_change# controlfile_change#
------------------ --------------- -------------------
985824 0 985886
b、b 基于变更的恢复(包含备份的控制文件)
sql> shutdown immediate
数据库已经关闭。
已经卸载数据库。
oracle 例程已经关闭。
sql> startup mount
oracle 例程已经启动。

total system global area 135338868 bytes
fixed size 453492 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
数据库装载完毕。
sql> recover database automic until change 985822 using backup controlfile.
ora-00905: 缺少关键字
#说明这里的automic 是不能使用的


sql> recover database until change 985822 using backup controlfile.
ora-00279: 更改 984674 (在 12/17/2005 16:14:05 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00003.001
ora-00280: 更改 984674 对于线程 1 是按序列 # 3 进行的


指定日志: {=suggested | filename | auto | cancel}
auto
ora-00279: 更改 985596 (在 12/17/2005 16:28:34 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00004.001
ora-00280: 更改 985596 对于线程 1 是按序列 # 4 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00003.001


ora-00279: 更改 985702 (在 12/17/2005 16:29:20 生成) 对于线程 1 是必需的
ora-00289: 建议: d:\oracle\oracle92\rdbms\arc00005.001
ora-00280: 更改 985702 对于线程 1 是按序列 # 5 进行的
ora-00278: 此恢复不再需要日志文件 d:\oracle\oracle92\rdbms\arc00004.001


已应用的日志。
完成介质恢复。
sql> alter database open resetlogs.

数据库已更改。

sql> 0select checkpoint_change#,archive_change# ,controlfile_change# from v$database.

checkpoint_change# archive_change# controlfile_change#
------------------ --------------- -------------------
985824 0 985885

sql> 0select * from test.test.

a b
-------------------- --------------------
2005-12-17 16:29:14 2005-12-17 16:29:14
2005-12-17 16:28:26 2005-12-17 16:28:26
2005-12-17 16:28:27 2005-12-17 16:28:27
2005-12-17 16:29:12 2005-12-17 16:29:12
2005-12-17 16:29:49 2005-12-17 16:29:49
2005-12-17 16:29:49 2005-12-17 16:29:49


相关文章


在Oracle8x中实现自动断开后再连接(1)
从Oracle到SQLServer的透明网关配置
教你怎么样卸载Oracle9i
Oracle字符集乱码问题析及解决办法
Oracle冷备份的不完全恢复-中-
在Oracle的网络结构中解决连接问题(2)
Oracle数据库备份与恢复的三种方法(2)
Oracle冷备份的不完全恢复-上-
在Oracle的网络结构中解决连接问题(1)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛