记一次简单的数据库恢复,控制文件不一致导致的启动失败。

很可惜,我没能保存一开始的报错信息(alert文件竟然没记录)。报错在mount阶段,报错的意思是控制文件2与控制文件1不一致,2比1版本更高。数据库的损坏是由于非法断电导致的。
修改参数文件pfile,只保留控制文件2,启动数据库。
SQL> conn / as sysdba
已连接。
SQL> create pfile from spfile;

文件已创建。

SQL> create spfile from pfile;
create spfile from pfile
*
ERROR 位于第 1 行:
ORA-32002: ??????????? SPFILE
可以猜到报错为不能创建正在使用的SPFILE。当然可也修改nls_language设置语言。

SQL> shutdown immediate
ORA-01507: ??????


ORACLE 例程已经关闭。
SQL> create spfile from pfile;

文件已创建。

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-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF'


SQL> select status from v$datafile;

STATUS
-------
SYSTEM
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE

已选择10行。

SQL> recover datafile 1;
完成介质恢复。
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01113: 文件 2 需要介质恢复
ORA-01110: 数据文件 2: 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF'


SQL> recover database;
完成介质恢复。


注意这里是完全恢复,恢复成功了,说明应用日志完全了,不存在丢失。

SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-00314: 日志 2 (线程 1),预计序号  与  不匹配
ORA-00312: 联机日志 2 线程 1: 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG'

ORA-00314说明Cause: The online log is corrupted or is an old version.既然是完全恢复的,我们可以resetlogs,不会造成丢失。

SQL> select * from v$Log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
         1          1        320  104857600          1 NO  INVALIDATED
     47548236 06-7月 -10

         2          1        318  104857600          1 NO  INACTIVE
     47366790 05-7月 -10

         3          1        319  104857600          1 NO  INACTIVE
     47386928 05-7月 -10


SQL> recover database until cancel;
完成介质恢复。
SQL> alter database open resetlogs;

数据库已更改。

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>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-667413/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22034023/viewspace-667413/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值