一次数据库的灾难恢复过程
首先进行控制文件的恢复:在C:\命令提示符下输入 sqlplus /nolog,进入到SQLPLUS的操作环境;
SQL>connect sys/ngsoft as sysdba ===用SYS用户以DBA身份登录
SQL>shutdown abort
SQL>startup nomount
=====重建控制文件
SQL>create controlfile reuse database sxgzorcl noresetlogs archivelog
Logfile group 1 'g:\oracle\oradata\sxgzorcl\redo01.log',
group 2 'g:\oracle\oradata\sxgzorcl\redo02.log',
group 3 'g:\oracle\oradata\sxgzorcl\redo03.log'
datafile 'g:\oracle\oradata\sxgzorcl\system01.dbf',
'g:\oracle\oradata\sxgzorcl\users01.dbf',
'g:\oracle\oradata\sxgzorcl\temp01.dbf',
'g:\oracle\oradata\sxgzorcl\tools01.dbf',
'g:\oracle\oradata\sxgzorcl\indx01.dbf',
'g:\oracle\oradata\sxgzorcl\dr01.dbf',
'g:\oracle\oradata\sxgzorcl\NGPDATA.ORA',
'g:\oracle\oradata\sxgzorcl\rbs01.dbf';
=====成功地重建控制文件后,我们尝试着打开数据库,但系统报错,提示需要进行介质恢复。
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\system01.dbf';
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\users01.dbf';
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\temp01.dbf';
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\tools01.dbf';
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\indx01.dbf';
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\dr01.dbf';
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\NGPDATA.ORA';
SQL>recover datafile 'g:\oracle\oradata\sxgzorcl\rbs01.dbf';
====进行介质恢复之后,又进行了数据库的恢复
SQL>recover database;
====提示恢复成功
SQL>alter database open;
打开数据库时提示ORA-01092: ORACLE instance terminated. Disconnection forced.晕,怎么会这样呢?赶紧查看alertsxgzorcl.log,发现提示错误为:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: , , , , [], [], [], []
真是受不了,怎么会出现600错误的啊?经过在网上不断的资料查找,发现有类似的问题,但并没有解决办法。最后在一篇文档中发现有以下说明:
ORA-00600错误中4000到5000的,都是因为rollback segment的问题引起的,可以考虑在数据库启动参数时将所有的rollback segment去掉,剩下system,然后重启数据库即可。
根据以上的提示,进行了操作,果然可以解决问题,后来我总结了一下,解决办法应该如下:
1、对于Oracle 9i以前的版本或者回滚段管理模式为MANUAL的,可以在initSID.ora文件中的参数rollback_segments=(...)中将其他的Rollback segments名称去掉,然后启动数据库,删除所有的rollback segment,重建即可。
2、对于自动管理回滚段的,则可以先把undo_management管理模式改为MANUAL,然后重启数据库,把参数undo_tablespace所指的表空间重建即可解决。
OK,至此问题已全部解决,而且没有发生数据丢失的情况。 首先进行控制文件的恢复: 好像很厉害的样子,只能仰望 太高深了,楼主应该过了OCM 谢谢分享,学习中 没学过oracle 这个没有搞好,好好学习一下,不过有没有SQL方面的呢 一般操作人员不要轻易学 这么复杂不会用啊....:L :L :L 我晕,下载了一个又不能下下一个了 学习中
:handshake 谢谢分享,正在学习中 一般操作人员也不会操作啊:lol 一般操作人员不要轻易学,太复杂了 搞不来,太深奥 太高深了,楼主应该过了OCP 很深奥。:L 太深了..... 这个太过高深,还不敢玩。 一般操作人员也不会操作啊
页:
[1]
2