已归档的活动在线日志损坏,异常关闭(实验系列)
2011-11-25 15:38
417 查看
实验步骤:
i. SQL> ALTER SYSTEM ARCHIVE LOG START;(自动归档设置)
ii. SQL> truncate table t1;
SQL> insert into t1
2 select dbms_flashback.get_system_change_number
3 from (select rownum from dba_objects where rownum <= 1000) a,
4 (select rownum from dba_objects where rownum <= 1000) b;
SQL> commit;
iii. SQL> SELECT GROUP#,ARCHIVED,FIRST_CHANGE#,SEQUENCE#,STATUS FROM V$LOG;
GROUP# ARC FIRST_CHANGE# SEQUENCE# STATUS
---------------- --- ---------------- ---------------- ----------------
1 YES 2464298 5 ACTIVE
2 NO 2465173 6 CURRENT
3 YES 2444296 4 INACTIVE
iv. SQL> select min(scn) ,max(scn) from t1;
v. MIN(SCN) MAX(SCN)
---------------- ----------------
2465027 2465216(数据操作落在哪些在线日志)
vi. SQL> shutdown abort
ORACLE 例程已经关闭。
vii. 直接手动删除日志(D:\REDO01.LOG被删除)
viii. 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
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\REDO01.LOG'
ORA-27047: 无法读取文件的标题块
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 38) 到达文件结尾。
ix.
SQL> select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh;
FILENUMBER STATUS SCN SEQUENCE ---------------- ------ ---------------- ---------------- 1 4 2464299 5
2 4 2464299 5 3 4 2464299 5 4 4 2464299 5 5 4 2464299 5 6 4 2464299 5 7 4 2464299 5 8 4 2464299 5 9 4 2464299 5 10 4 2464299 5 11 4 2464299 5 12 4 2464299 5 13 4 2464299 5 已选择13行。(数据文件需要介质恢复的第一个日志)
x. SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\REDO01.LOG'
ORA-27047: 无法读取文件的标题块
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 38) 到达文件结尾。
(完全恢复失败,因为在线日志让我们破坏,只能做不完全恢复)
xi. SQL> recover database using backup controlfile;(从归档中去取日志)
ORA-00279: 更改 2464299 (在 07/10/2009 15:21:12 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ARCHIVE\1_5.DBF
ORA-00280: 更改 2464299 对于线程 1 是按序列 # 5 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
'D:\ARCHIVE\1_5.DBF'
ORA-00279: 更改 2465173 (在 07/10/2009 15:24:19 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ARCHIVE\1_6.DBF
ORA-00280: 更改 2465173 对于线程 1 是按序列 # 6 进行的
ORA-00278: 此恢复不再需要日志文件 'D:\ARCHIVE\1_5.DBF'
(不用until cancel已经确定可以恢复到最新的状态)
(不完全恢复实际上 oracle自动根据 归档路径的参数 和日志序列号 自动生成的路径去找的)
xii. ORA-00279: 更改 2465173 (在 07/10/2009 15:24:19 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ARCHIVE\1_6.DBF
ORA-00280: 更改 2465173 对于线程 1 是按序列 # 6 进行的
ORA-00278: 此恢复不再需要日志文件 'D:\ARCHIVE\1_5.DBF'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\REDO02.LOG
已应用的日志。
完成介质恢复。(不完全恢复最后一步需要输入日志路径)
xiii. SQL> alter database open resetlogs;
数据库已更改。
xiv. SQL> select min(scn) ,max(scn) from t1;
MIN(SCN) MAX(SCN)
---------------- ----------------
2465027 2465216
已选择 1 行。
xv. 恢复完成!
i. SQL> ALTER SYSTEM ARCHIVE LOG START;(自动归档设置)
ii. SQL> truncate table t1;
SQL> insert into t1
2 select dbms_flashback.get_system_change_number
3 from (select rownum from dba_objects where rownum <= 1000) a,
4 (select rownum from dba_objects where rownum <= 1000) b;
SQL> commit;
iii. SQL> SELECT GROUP#,ARCHIVED,FIRST_CHANGE#,SEQUENCE#,STATUS FROM V$LOG;
GROUP# ARC FIRST_CHANGE# SEQUENCE# STATUS
---------------- --- ---------------- ---------------- ----------------
1 YES 2464298 5 ACTIVE
2 NO 2465173 6 CURRENT
3 YES 2444296 4 INACTIVE
iv. SQL> select min(scn) ,max(scn) from t1;
v. MIN(SCN) MAX(SCN)
---------------- ----------------
2465027 2465216(数据操作落在哪些在线日志)
vi. SQL> shutdown abort
ORACLE 例程已经关闭。
vii. 直接手动删除日志(D:\REDO01.LOG被删除)
viii. 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
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\REDO01.LOG'
ORA-27047: 无法读取文件的标题块
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 38) 到达文件结尾。
ix.
SQL> select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh;
FILENUMBER STATUS SCN SEQUENCE ---------------- ------ ---------------- ---------------- 1 4 2464299 5
2 4 2464299 5 3 4 2464299 5 4 4 2464299 5 5 4 2464299 5 6 4 2464299 5 7 4 2464299 5 8 4 2464299 5 9 4 2464299 5 10 4 2464299 5 11 4 2464299 5 12 4 2464299 5 13 4 2464299 5 已选择13行。(数据文件需要介质恢复的第一个日志)
x. SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\REDO01.LOG'
ORA-27047: 无法读取文件的标题块
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 38) 到达文件结尾。
(完全恢复失败,因为在线日志让我们破坏,只能做不完全恢复)
xi. SQL> recover database using backup controlfile;(从归档中去取日志)
ORA-00279: 更改 2464299 (在 07/10/2009 15:21:12 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ARCHIVE\1_5.DBF
ORA-00280: 更改 2464299 对于线程 1 是按序列 # 5 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
'D:\ARCHIVE\1_5.DBF'
ORA-00279: 更改 2465173 (在 07/10/2009 15:24:19 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ARCHIVE\1_6.DBF
ORA-00280: 更改 2465173 对于线程 1 是按序列 # 6 进行的
ORA-00278: 此恢复不再需要日志文件 'D:\ARCHIVE\1_5.DBF'
(不用until cancel已经确定可以恢复到最新的状态)
(不完全恢复实际上 oracle自动根据 归档路径的参数 和日志序列号 自动生成的路径去找的)
xii. ORA-00279: 更改 2465173 (在 07/10/2009 15:24:19 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ARCHIVE\1_6.DBF
ORA-00280: 更改 2465173 对于线程 1 是按序列 # 6 进行的
ORA-00278: 此恢复不再需要日志文件 'D:\ARCHIVE\1_5.DBF'
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
D:\REDO02.LOG
已应用的日志。
完成介质恢复。(不完全恢复最后一步需要输入日志路径)
xiii. SQL> alter database open resetlogs;
数据库已更改。
xiv. SQL> select min(scn) ,max(scn) from t1;
MIN(SCN) MAX(SCN)
---------------- ----------------
2465027 2465216
已选择 1 行。
xv. 恢复完成!
相关文章推荐
- 控制文件resetlogs方式创建,有活动在线日志,当前在线日志损坏,并异常关闭(实验系列)
- 当前在线日志损坏,无所有数据文件备份。异常关闭(实验系列)
- 数据文件offline,未归档的非活动在线日志或当前在线日志损坏,在线修复(实验系列)
- 未归档的活动在线日志损坏,在线修复。
- 归档日志比在线日志小很多
- java在线聊天项目0.6版 解决客户端关闭后异常问题 dis.readUTF()循环读取已关闭的socket
- [置顶] 【实验-视频过程】数据库归档日志满了以后
- ORACLE 归档日志打开关闭方法
- oracle 开启关闭归档日志
- oralce10g 归档目录空间满导致归在线重做日志文件无法归档。最后数据库不能正常使用
- ARCHIVELOG模式下用户管理恢复联机重做日志文件—当前活动组所有成员全部损坏
- 恢复系列3--归档模式下丢失非当前联机日志
- mysql 异常关闭查看日志
- Oralce 归档日志开启与关闭示例
- Lotusphere Comes to You 在线系列活动
- oracle归档日志的开启和关闭
- .模拟状态为active的日志损坏的数据恢复实验(不完全恢复)
- rman异常案例二: 归档日志被人移动到其他目录,导致数据库恢复异常(续)
- 当前日志损坏(ACTIVE,CURRENT),数据库正常关闭
- Oracle关闭和开启归档日志