设为首页 加入收藏

TOP

Oracle数据库联机日志文件丢失或损坏的处理方法(四)
2014-11-24 07:39:10 来源: 作者: 【 】 浏览:11
Tags:Oracle 数据库 联机 日志 文件 丢失 损坏 处理 方法
mmit;

Commit complete.

SQL>;
2、 强行关闭
SQL>; shutdown abort
ORACLE instance shut down.
SQL>;
3、 手工模拟删除redo
4、 启动db
SQL>; startup
ORACLE instance started.

Total System Global Area 353862792 bytes
Fixed Size 730248 bytes
Variable Size 285212672 bytes
Database Buffers 67108864 bytes
Redo Buffers 811008 bytes
Database mounted.
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/T3/ORACLE/oradata/ORA9/redo03.log'
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3
5、 尝试使用前3中方法中最简单的
SQL>; recover database until cancel;
ORA-00279: change 550174 generated at 09/02/2005 16:00:19 needed for thread 1
ORA-00289: suggestion : /T3/ORACLE/arch/1_1.dbf
ORA-00280: change 550174 for thread 1 is in sequence #1
Specify log: {;=suggested | filename | AUTO | CANCEL}
看来不行
6、 修改init.ora,加入一行
_allow_resetlogs_corruption=true
7、 启动with pfile
SQL>; startup
ORACLE instance started.
Total System Global Area 320308312 bytes
Fixed Size 730200 bytes
Variable Size 285212672 bytes
Database Buffers 33554432 bytes
Redo Buffers 811008 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL>; host ls /T3/ORACLE/oradata/ORA9/redo*
/T3/ORACLE/oradata/ORA9/redo*: No such file or directory
SQL>; alter database open resetlogs;
Database altered.

SQL>; host ls /T3/ORACLE/oradata/ORA9/redo*
/T3/ORACLE/oradata/ORA9/redo01.log /T3/ORACLE/oradata/ORA9/redo02.log /T3/ORACLE/oradata/ORA9/redo03.log
8、 检验数据
SQL>; select * from test.test;

TEL
----------
1
2
3
4

SQL>;
看到了吧,我们前面由于执行了SHUTDOWN ABORT,这时候对数据的修改还没有保存到数据文件中,虽然执行了COMMIT,这个时候还在 联机日志中,等待CKPT触发DBWR写入DATAFILE,但是这个时候执行了SHUTDOWN ABORT,redo被删除后,里面的信息也就丢了, 造成数据丢失
9、 备份,去掉那个参数


试验五:丢失当前日志组的成员
1、SQL>; select * from v$logfile;

GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
3 ONLINE
/T3/ORACLE/oradata/ORA9/redo03.log

2 ONLINE
/T3/ORACLE/oradata/ORA9/redo02.log

1 ONLINE
/T3/ORACLE/oradata/ORA9/redo01.log


GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
1 ONLINE
/T3/ORACLE/oradata/ORA9/redo01a.log

2 ONLINE
/T3/ORACLE/oradata/ORA9/redo02a.log

3 ONLINE
/T3/ORACLE/oradata/ORA9/redo03a.log

SQL>; select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 2 104857600 2 YES INACTIVE
554599 02-9月 -05

2 1 3 104857600 2 YES INACTIVE
554601 02-9月 -05

3 1 4 104857600 2 NO CURRENT
554603 02-9月 -05
SQL>;
3、 模拟插入数据
SQL>; conn test/test
Connected.
SQL>; select * from test;

TEL
----------
1
2
3
4

SQL>; insert into test values(5);

1 row created.

SQL>; commit
2 ;

Commit complete.
4、 shutdown db,模拟删除

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle自动内存管理SGA、PGA详解 下一篇oracle表空间查询维护命令大全之..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)
·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)