Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86455
  • 博文数量: 65
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-30 11:16
个人简介

cuug

文章分类
文章存档

2014年(65)

我的朋友

分类: Oracle

2014-06-12 10:44:47

故障现象:客户某台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:\oracle\product\10.2.0\oradata\zjport\BACKFILE\ORACLEADMINORCLPFILEINITORCL.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 Settings\Administrator>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:\oracle\product\10.2.0\oradata\zjport\BACKFILE\ORACLEADMINORCLPFILEINITORCL.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:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ZJPORT\ARCHIVELOG\2012_09_20\O1_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:\oracle\product\10.2.0\oradata\zjport\BACKFILE\ORACLEADMINORCLPFILEINITORCL.ORA';


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




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


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




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


 


 


--归档路径


SQL> alter system set log_archive_dest_1='LOCATION=D:\oracle\product\10.2.0\oradata\zjport\archivelog';


--归档命名格式


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;
阅读(436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~