Oracle 11g日志文件恢复

php中文网
发布: 2016-06-07 17:34:36
原创
1460人浏览过

这次实验模拟一下,oracle 11g在非归档模式下,且没有备份的条件,进行的日志文件的恢复这里所有的redo日志都被我删除了,下面是

这次实验模拟一下,oracle 11g在非归档模式下,且没有备份的条件,进行的日志文件的恢复
这里所有的redo日志都被我删除了,下面是报错和数据库模式:
sql> startup
oracle instance started.
total system global area  845348864 bytes
fixed size                  1339796 bytes
variable size            645926508 bytes
database buffers          192937984 bytes
redo buffers                5144576 bytes
database mounted.
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/u01/app/oracle/oradata/myorcl/redo1.log'
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
ora-00312: online log 1 thread 1: '/u01/app/oracle/oradata/myorcl/redo01.log'
ora-27037: unable to obtain file status
linux error: 2: no such file or directory
additional information: 3
sql> select log_mode,open_mode from v$database;
log_mode    open_mode
------------ --------------------
noarchivelog mounted

首先,我们要用resetlogs的方法尝试打开数据库:
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery

提示resetlogs这个选项只有在一个不完全数据库恢复后才可以使用,既然这样,我们就给它做一个数据库恢复:
SQL> recover database using backup controlfile;
ORA-00279: change 1736992 generated at 01/18/2014 18:01:56 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/product/11.2.0/db_1/ora_log/1_1_837194464.dbf
ORA-00280: change 1736992 for thread 1 is in sequence #1
Specify log: {=suggested | filename | AUTO | CANCEL}
ORA-00308: cannot open archived log
'/u01/app/oracle/product/11.2.0/db_1/ora_log/1_1_837194464.dbf'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

下面,我们再来resetlogs启动数据库:
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/app/oracle/oradata/myorcl/system01.dbf'

提示要进行介质恢复,因为我们根本没有redo日志,根本没有办法恢复,只能通过添加隐藏参数,让数据库忽略数据一致性验证:
SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
System altered.
SQL> startup force mount;
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size            645926508 bytes
Database Buffers          192937984 bytes
Redo Buffers                5144576 bytes
Database mounted.

到这里,再来添加resetlogs选项,来打开数据库:
SQL> alter database open resetlogs;
Database altered.

数据库打开了,但是还没有结束,我们要将修改的隐藏参数修改到默认值,并重新启动数据库:
SQL> alter system reset "_allow_resetlogs_corruption" scope=spfile;
System altered.
SQL> startup force;
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1339796 bytes
Variable Size            645926508 bytes
Database Buffers          192937984 bytes
Redo Buffers                5144576 bytes
Database mounted.
Database opened.
SQL> select KSPPINM,KSPPSTVL from x$ksppi a,x$ksppcv b where a.indx=b.indx and ksppinm like '%resetlogs%';
KSPPINM
--------------------------------------------------------------------------------
KSPPSTVL
--------------------------------------------------------------------------------
_no_recovery_through_resetlogs
FALSE
_allow_resetlogs_corruption
FALSE

这里可以看到这个隐藏参数已经变成false了。这就完成了日志文件的恢复。

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号