Oracle冷备份的不完全恢复(二)


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

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

数据库装载完毕。

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

已选择6行。

SQL>

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

数据库装载完毕。

数据库已经打开。

SQL> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#

------------------ --------------- -------------------

987124 0 987124

SQL

这里关闭后重启发现 CHECKPOINT_CHANGE和controlfile_change# from v$database

数字变了,而ARCHIVE_CHANGE#依然是0,说明什么问题呢???

如果添加数据后

SQL> insert into test.test(a,b) values(to_char(sysdate,'YYYY-MM-DD hh24:mi:ss'),to_char(sysdate,'YYYY-MM-DD hh24:mi

:ss'));

已创建 1 行。

SQL> commit;

提交完成。

SQL> alter system archive log current;

系统已更改。

SQL> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#

------------------ --------------- -------------------

987124 987744 987747

添加数据后发现archive 和控制文件的scn一致,但check_point 的scn没变

下面的事件

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

数据库装载完毕。

数据库已经打开。

SQL> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#

------------------ --------------- -------------------

987906 987744 987906

SQL>

发现CHECKPOINT_CHANGE# 和CONTROLFILE_CHANGE#序号始终一致,而日志scn

值得思考????????

C a基于取消(不包含备份的控制文件)

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 until cancel;

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}

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'

指定日志: {=suggested | filename | AUTO | CANCEL}

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'

指定日志: {=suggested | filename | AUTO | CANCEL}

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'

指定日志: {=suggested | filename | AUTO | CANCEL}

cancel

介质恢复已取消。

SQL> alter database open resetlogs;

数据库已更改。

SQL> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#

------------------ --------------- -------------------

985824 0 985886

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>

C b基于取消(包含备份的控制文件)

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> recover database until cancel using backup controlfile;

ORA-01034: ORACLE not available

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 cancel 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}

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'

指定日志: {=suggested | filename | AUTO | CANCEL}

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'

指定日志: {=suggested | filename | AUTO | CANCEL}

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'

指定日志: {=suggested | filename | AUTO | CANCEL}

cancle

ORA-00308: 无法打开存档日志 'cancle'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

指定日志: {=suggested | filename | AUTO | CANCEL}

cancel

介质恢复已取消。

SQL> alter database open resetlogs;

数据库已更改。

SQL> select checkpoint_change#,archive_change# ,controlfile_change# from v$database;

CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROLFILE_CHANGE#

------------------ --------------- -------------------

985824 0 985886

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>