Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1503246
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 20:22:22

一起学习

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 bitsCN~com
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> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#
------------------ --------------- -------------------
985935 0 985997


SQL> select * 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> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#
------------------ --------------- -------------------
985935 0 985997

SQL> select * 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> select * 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 bitsCN~com
2005-12-17 16:29:49 2005-12-17 16:29:49

已选择6行。

SQL> select 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 bitsCN.nET*中国网管博客
数据库装载完毕。
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> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#
------------------ --------------- -------------------
985824 0 985885

SQL> select * 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

TAG: Oracle

下载本文示例代码


Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)Oracle冷备份的不完全恢复(2)
阅读(337) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~