您现在的位置是:主页 > news > 做标志的网站/分销系统
做标志的网站/分销系统
admin2025/5/4 11:14:29【news】
简介做标志的网站,分销系统,工作室起名大全免费取名,温州网站建设案例一直有个疑问,如果Oracle是closed的,这时候当前联机日志组全部损坏,怎么恢复?我在网上查到的恢复方法在最后都需要:alter database open resetlogs但是resetlogs后,以前的备份就不好用了。难道没有其他的方法ÿ…
一直有个疑问,如果Oracle是closed的,这时候当前联机日志组全部损坏,怎么恢复?
我在网上查到的恢复方法在最后都需要:
alter database open resetlogs
但是resetlogs后,以前的备份就不好用了。
难道没有其他的方法,绕过 resetlogs吗?
我用的是 oralce 10.1.0.2.0 on Windows,
试验步骤如下:
当前联机日志组全部成员损坏(Oracle closed)
1.模拟这种情况,
关闭数据库,然后删除当前日志组对应的所有文件。
为了简化试验,每个日志组只使用一个日志文件:
SQL> select group#,status,member from v$logfile order by group#
GROUP# STATUS MEMBER
--------- ------- ----------------------------------
1 C:\ORACLE\ORADATA\DB10\REDO01.LOG
2 H:\NEWREDO02.LOG
3 C:\ORACLE\ORADATA\DB10\REDO03.LOG
SQL> select group#, status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 CURRENT
3 ACTIVE
联机日志第2组是当前组,日志文件 H:\NEWREDO02.LOG。
关闭数据库
SQL> shutdown immediate;
删除 H:\NEWREDO02.LOG。
2. 检查状况
启动数据库时会报错:
SQL> startup
ORACLE instance started.
Total System Global Area 176160768 bytes
Fixed Size 788028 bytes
Variable Size 149944772 bytes
Database Buffers 25165824 bytes
Redo Buffers 262144 bytes
Database mounted.
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: 'H:\NEWREDO02.LOG'
3. 恢复 (需要 resetlogs)
参考了精华帖子和网上其他资源:
http://www.itpub.net/viewthread. ... 3Ddigest&page=1
http://www.itpub.net/viewthread. ... 3Ddigest&page=1
因为数据库是关闭的,数据文件和控制文件处于完全一致状态,
所以不需要restore,直接recover就可以。
SQL> recover database until cancel;
Media recovery complete.
SQL> alter database open resetlogs;
Oracle会自动创建 redo02.log文件
4.这种恢复方法的不足之处是最后需要 resetlogs,这样以前的备份就不好用了。
(别问我为什么不好用了,我还没测试过,都这么说的),
难道没有其他的方法,绕过 resetlogs吗?