ORACLE服务器异常断电及控制文件故障的处理步骤是什么

30次阅读
没有评论

共计 5752 个字符,预计需要花费 15 分钟才能阅读完成。

这篇文章给大家介绍 ORACLE 服务器异常断电及控制文件故障的处理步骤是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

这里只是简单的记录操作步骤,以做备忘。

一、版本

SQL select * from v$version;

BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.2.0.1 .0 – Production
PL/SQL Release 11.2.0.1 .0 – Production CORE    11.2.0.1 

二、故障
SQL startup mount;
ORACLE 例程已经启动。

Total System Global Area 1046224896 bytes
Fixed Size                  1379212 bytes
Variable Size             708838516 bytes
Database Buffers          331350016 bytes
Redo Buffers                4657152 bytes
数据库装载完毕。
SQL alter dabase open;
alter dabase open
      *
第 1 行出现错误:
ORA-00940: 无效的 ALTER 命令

SQL alter database open;
alter database open
*
第 1 行出现错误:
ORA-01122: 数据库文件 1 验证失败
ORA-01110: 数据文件 1: G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
ORA-01207: 文件比控制文件更新 – 旧的控制文件

三、处理步骤

SQL alter database backup controlfile to trace as G:\ctl1.txt

数据库已更改。

SQL shutdown immediate;
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
SQL startup nomount;
ORACLE 例程已经启动。

Total System Global Area 1046224896 bytes
Fixed Size                  1379212 bytes
Variable Size             708838516 bytes
Database Buffers          331350016 bytes
Redo Buffers                4657152 bytes
SQL CREATE CONTROLFILE REUSE DATABASE ORCL NORESETLOGS  NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG  SIZE 50M BLOCKSIZ
E 512,
  9    GROUP 2 G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG  SIZE 50M BLOCKSIZ
E 512,
 10    GROUP 3 G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG  SIZE 50M BLOCKSIZ
E 512
 11  DATAFILE
 12     G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF ,
 13     G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF ,
 14     G:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF ,
 15     G:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF ,
 16     G:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
 17  CHARACTER SET ZHS16GBK;
CREATE CONTROLFILE REUSE DATABASE ORCL NORESETLOGS  NOARCHIVELOG
*
第 1 行出现错误:
ORA-01503: CREATE CONTROLFILE ??
ORA-01229: data file 2 is inconsistent with logs
ORA-01110: data file 2: G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
我们使用 resetlogs 进行重建避开和 redo logs 的校验

SQL CREATE CONTROLFILE REUSE DATABASE ORCL RESETLOGS  NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG  SIZE 50M BLOCKSIZ
E 512,
  9    GROUP 2 G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG  SIZE 50M BLOCKSIZ
E 512,
 10    GROUP 3 G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG  SIZE 50M BLOCKSIZ
E 512
 11  DATAFILE
 12     G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF ,
 13     G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF ,
 14     G:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF ,
 15     G:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF ,
 16     G:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
 17  CHARACTER SET ZHS16GBK;
控制文件已创建。

SQL alter database mount;
alter database mount
*
第 1 行出现错误:
ORA-01100: ??????

SQL alter session set nls_language= american – 中文字符集显示乱码,需要更改 session 字符集
Session altered.
SQL alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01100: database already mounted

SQL alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF

进行 recover 数据库,需要使用 resetlogs 和手动指定归档日志这里其实就是 redolog 中的一个

SQL recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

SQL recover database using backup controlfile;
ORA-00279: change 28088746 generated at 12/16/2017 20:32:45 needed for thread 1
ORA-00289: suggestion :
G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_12_19\O1_MF_1_572_%U_.ARC
ORA-00280: change 28088746 for thread 1 is in sequence #572

Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00308: cannot open archived log
G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_12_19\O1_MF_1_572_%U_.ARC
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????

SQL archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     0
Current log sequence           0
SQL recover database using backup controlfile;
ORA-00279: change 28088746 generated at 12/16/2017 20:32:45 needed for thread 1
ORA-00289: suggestion :
G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_12_19\O1_MF_1_572_%U_.ARC
ORA-00280: change 28088746 for thread 1 is in sequence #572

Specify log: {=suggested | filename | AUTO | CANCEL}
G:\app\Administrator\oradata\orcl\REDO01.LOG
ORA-00310: archived log contains sequence 571; sequence 572 required
ORA-00334: archived log: G:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG

SQL recover database using backup controlfile;
ORA-00279: change 28088746 generated at 12/16/2017 20:32:45 needed for thread 1
ORA-00289: suggestion :
G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_12_19\O1_MF_1_572_%U_.ARC
ORA-00280: change 28088746 for thread 1 is in sequence #572

Specify log: {=suggested | filename | AUTO | CANCEL}
G:\app\Administrator\oradata\orcl\REDO02.LOG 这里指定是 redolog 中的一个
Log applied.
Media recovery complete.
SQL alter database open;
alter database open
*
ERROR at line 1:

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL alter database open resetlogs;
Database altered.

SQL select file_name from dba_data_files;

FILE_NAME
——————————————————————————–
G:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
G:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
G:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
G:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF

SQL shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL startup;
ORACLE instance started.

Total System Global Area 1046224896 bytes
Fixed Size                  1379212 bytes
Variable Size             708838516 bytes
Database Buffers          331350016 bytes
Redo Buffers                4657152 bytes
数据库装载完毕。
数据库已经打开。
至此恢复完成。

关于 ORACLE 服务器异常断电及控制文件故障的处理步骤是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计5752字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)