故障现象:客户某台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 bytesFixed Size 1250428 bytesVariable Size 146803588 bytesDatabase Buffers 457179136 bytesRedo 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 bytesFixed Size 1250428 bytesVariable Size 146803588 bytesDatabase Buffers 457179136 bytesRedo 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、创建PFILESQL> 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&,_SYSSMU17&,_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 MOUNTORACLE 例程已经启动。
Total System Global Area 612368384 bytesFixed Size 1250428 bytesVariable Size 146803588 bytesDatabase Buffers 457179136 bytesRedo Buffers 7135232 bytes数据库装载完毕。
7、介质恢复SQL> RECOVER DATABASE;完成介质恢复。SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCELORA-00279: 更改 5520735 (在 09/20/2012 09:20:58 生成) 对于线程 1 是必需的ORA-00289: 建议:D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAJPORTARCHIVELOG2012_09_20O1_MF_1_145_%U_.ARCORA-00280: 更改 5520735 (用于线程 1) 在序列 #145 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}cancel介质恢复已取消。
8、RESETLOGS方式OPENSQL> ALTER DATABASE OPEN RESETLOGS;
数据库已更改。
SQL>---------------------------------------------------至此数据库恢复,后续执行数据备份并写入SPFILE---------------------------------------------------1、数据库备份2、创建SPFILEcreate 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;ORA-01552: 非系统表空间 "USERS" 不能使用系统回退段的处理Oracle中两表之间值互相插入和表自身插入值相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)