当前位置:  数据库>oracle

异常断电导致Oracle控制文件等受到破坏的处理

    来源: 互联网  发布时间:2017-05-09

    本文导语: 故障现象:客户某台WINDOWS服务器掉电,Oracle数据库STARTUP提示控制文件CONTROL01.CTL、CONTROL02.CTL被破坏。  一、处理控制文件异常故障 方法:直接拷贝CONTROL03.CTL到CONTROL01.CTL,保险起见可以拷贝一个备份放 二、尝试启动 1、startup...

故障现象:客户某台WINDOWS服务器掉电,Oracle数据库STARTUP提示控制文件CONTROL01.CTL、CONTROL02.CTL被破坏。 

一、处理控制文件异常故障

方法:直接拷贝CONTROL03.CTL到CONTROL01.CTL,保险起见可以拷贝一个备份放

二、尝试启动

1、startup,碰到ORA-01172、ORA-01151错误

SQL> startup;

ORACLE 例程已经启动。


Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             146803588 bytes

Database Buffers          457179136 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

ORA-01172: 线程 1 的恢复停止在块 89 (在文件 2 中)

ORA-01151: 如果需要, 请使用介质恢复以恢复块和还原备份


2、恢复介质后再次启动,碰到ORA-00607、ORA-00600,600问题一般是UNDO文件出问题

SQL> recover database;

完成介质恢复。

SQL> shutdown immediate;

ORA-01109: 数据库未打开

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup;

ORACLE 例程已经启动。

 

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             146803588 bytes

Database Buffers          457179136 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

ORA-00607: 当更改数据块时出现内部错误

ORA-00600: 内部错误代码, 参数: [4194], [58], [19], [], [], [], [], []


3、利用数据库OPEN的时机执行如下语句(因为很快数据库即自动关闭)

SQL> SELECT SEGMENT_NAME FROM DBA_ROLLBACK_SEGS;


SEGMENT_NAME

------------------------------

SYSTEM

_SYSSMU1$

_SYSSMU2$

_SYSSMU3$

_SYSSMU4$

_SYSSMU5$

_SYSSMU6$

_SYSSMU7$

_SYSSMU8$

_SYSSMU9$

_SYSSMU10$

 

SEGMENT_NAME

------------------------------

_SYSSMU11$

_SYSSMU12$

_SYSSMU13$

_SYSSMU14$

_SYSSMU15$

_SYSSMU16$

_SYSSMU17$

_SYSSMU18$


已选择19行。


SQL>


4、创建PFILE

SQL> CREATE PFILE='D:oracleproduct10.2.0oradatazjportBACKFILEORACLEADMINORCLPFILEINITORCL.ORA' FROM SPFILE;


文件已创建。


5、修改PFILE

添加下面的参数:

undo_management='MANUAL'

_corrupted_rollback_segments=

(_SYSSMU1&,_SYSSMU2&,_SYSSMU3&,_SYSSMU4&,_SYSSMU5&,_SYSSMU6&,_SYSSMU7&,_SYSSMU8&,_SYSSMU9&,_SYSSMU10&,_SYSSMU11&,_SYSSMU12&,_SYSSMU13&,_SYSSMU14&,_SYSSMU15&,_SYSSMU16&,_SYS

SMU17&,_SYSSMU18&)


6、下面尝试用PFILE方式打开数据库

C:Documents and SettingsAdministrator>sqlplus / as sysdba


SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 9月 20 09:25:05 2012


Copyright (c) 1982, 2005, Oracle.  All rights reserved.


已连接到空闲例程。


SQL> STARTUP PFILE=D:oracleproduct10.2.0oradatazjportBACKFILEORACLEADMINORCLPFILEINITORCL.ORA MOUNT

ORACLE 例程已经启动。


Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             146803588 bytes

Database Buffers          457179136 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。


7、介质恢复

SQL> RECOVER DATABASE;

完成介质恢复。

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL

ORA-00279: 更改 5520735 (在 09/20/2012 09:20:58 生成) 对于线程 1 是必需的

ORA-00289: 建议:

D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAZJPORTARCHIVELOG2012_09_20O1_MF_1_145_%U_.ARC

ORA-00280: 更改 5520735 (用于线程 1) 在序列 #145 中


指定日志: {=suggested | filename | AUTO | CANCEL}

cancel

介质恢复已取消。


8、RESETLOGS方式OPEN

SQL> ALTER DATABASE OPEN RESETLOGS;


数据库已更改。


SQL>

---------------------------------------------------

至此数据库恢复,后续执行数据备份并写入SPFILE

---------------------------------------------------

1、数据库备份

2、创建SPFILE

create spfile  from pfile='D:oracleproduct10.2.0oradatazjportBACKFILEORACLEADMINORCLPFILEINITORCL.ORA';

---------------------------------------------------------------------------


至此数据库完全恢复、数据也备份完成,后续修改不归档方式为为归档方式

---------------------------------------------------------------------------


1、修改初试化参数,使能自动归档

 

 

--归档路径

SQL> alter system set log_archive_dest_1='LOCATION=D:oracleproduct10.2.0oradatazjportarchivelog';

--归档命名格式

SQL> alter system set log_archive_max_processes = 5;

SQL> alter system set log_archive_format = "archive_%t_%s_%r.arc" scope=spfile;


2、重启数据库

SQL> shutdown immediate

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database open;


3、确认

SQL> archive log list;


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 驱动模块断电重加载问题
  • 求助:linux系统断电后无法正常启动
  • 电脑突然断电,如何修复LINUX?????
  • 下载时断电,硬盘中文件size变为0
  • 断电后,怎样重启我的mysql?
  • Linux正在运行,突然断电,现在无法启动了
  • solaris系统意外断电后重启的问题?
  • 电脑突然断电,LINUX系统如何修复?????????????????
  • 突然断电后,suse10.2无法启动
  • solaris断电以后就起不来了
  • 请问: 装有cent os 的机子断电, 重启无法进入系统,错误如下:
  • 请教:linux如何对USB 端口进行上电和断电操作
  • 电脑突然断电后,ubuntu打不开了,出现错误提示
  • linux下利用fwrite文件写入过程中突然断电的处理
  • MySQL无法启动1067错误的又一种解决方法(机房断电)
  • linux 断电后,启动失败,该如何处理!?
  • 突然断电后我的Linux 服务器启动不起来了,出现如下提示:然后就停止不动了!谁能帮帮我!!!
  • 【百分求解】Linux8.0断电后用户不能登录了~~~~
  • 断电重启,grub不能引导!
  • 江湖救急!solaris x86断电之后


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,