1、服务器断电重启后出现
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
进程 ID: 0
会话 ID: 0 序列号: 0
2、以管理员身份登录
system/sys as sysdba
3、重启数据库报错 ORA-01172 ORA-01151
SQL> shutdown normal
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1.3696E+10 bytes
Fixed Size 2188768 bytes
Variable Size 7348423200 bytes
Database Buffers 6308233216 bytes
Redo Buffers 37044224 bytes
数据库装载完毕。
ORA-01172: 线程 1 的恢复停止在块 1499265 (在文件 6 中)
ORA-01151: 如果需要, 请使用介质恢复以恢复块和还原备份
4、参考https://www.cnblogs.com/xnzhao/p/6114469.html 尝试恢复
SQL> shutdown immediate
SQL> startup mount
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01172: 线程 1 的恢复停止在块 1499265 (在文件 6 中)
ORA-01151: 如果需要, 请使用介质恢复以恢复块和还原备份
5、尝试恢复坏块
SQL> alter database recover datafile 6
2 ;
alter database recover datafile 6
*
第 1 行出现错误:
ORA-00283: 恢复会话因错误而取消
ORA-00600: 内部错误代码, 参数: [3020], [6], [1499265], [26665089], [], [], [],
[], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 6, block# 1499265, file
offset is 3692044288 bytes)
ORA-10564: tablespace THUNDER
ORA-01110: 数据文件 6: 'D:\APP\ADMINISTRATOR\ORADATA\THUNDER\THUNDER01'
ORA-10560: block type 'FIRST LEVEL BITMAP BLOCK'
各种办法都恢复不了
6、跳过坏块
参考http://www.xifenfei.com/2015/12/ora-10562-%E6%95%85%E9%9A%9C%E6%81%A2%E5%A4%8D-allow-1-corruption.html;http://www.zhimengzhe.com/shujuku/Oracle/162356.html
SQL> recover database test;
ORA-10586: Test recovery had to corrupt 1 data block in order to proceed
ORA-10573: Test recovery tested redo from change 1309271795 to 1309282247
ORA-10570: Test recovery complete
SQL> recover database allow 1 corruption;
完成介质恢复。
7、重启
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1.3696E+10 bytes
Fixed Size 2188768 bytes
Variable Size 7348423200 bytes
Database Buffers 6308233216 bytes
Redo Buffers 37044224 bytes
数据库装载完毕。
数据库已经打开。