Chinaunix首页 | 论坛 | 博客
  • 博客访问: 337986
  • 博文数量: 62
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-14 14:12
个人简介

太懒

文章分类

全部博文(62)

文章存档

2015年(8)

2014年(20)

2013年(34)

我的朋友

分类: Oracle

2014-08-01 17:14:13

意外故障重建控制文件

索引快速增长导致盘空间占满,最后发现两个控制文件不一致,有一个貌似直接坏了

修改了一下,直接宕机启动发现


15:08:53 SYS@mydb1>startup
ORACLE instance started.

Total System Global Area 1286066176 bytes
Fixed Size                  2228024 bytes
Variable Size            1224736968 bytes
Database Buffers           50331648 bytes
Redo Buffers                8769536 bytes
ORA-00214: control file '/u01/app/oracle/product/11.2.3/db_1/dbs/control02.ctl' version 860092545 inconsistent with file '/u02/oradata/mydb1/control01.ctl' version 860092543

/u01/app/oracle/product/11.2.3/db_1/dbs/control02.ctl 略微新一点

15:08:58 SYS@mydb1>


Additional information: 4
Additional information: 64
Additional information: 610304
Errors in file /u01/app/oracle/diag/rdbms/mydb1/mydb1/trace/mydb1_ora_14819.trc:
ORA-00204: error in reading (block 64, # blocks 64) of control file
ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
ORA-27072: File I/O error
Additional information: 4
Additional information: 64
Additional information: 610304






Tue Jul 29 15:06:15 2014
********************* ATTENTION: ********************
 The controlfile header block returned by the OS
 has a sequence number that is too old.
 The controlfile might be corrupted.
 PLEASE DO NOT ATTEMPT TO START UP THE INSTANCE
 without following the steps below.
 RE-STARTING THE INSTANCE CAN CAUSE SERIOUS DAMAGE
 TO THE DATABASE, if the controlfile is truly corrupted.
 In order to re-start the instance safely,
 please do the following:
 (1) Save all copies of the controlfile for later
     analysis and contact your OS vendor and Oracle support.
 (2) Mount the instance and issue:
     ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
 (3) Unmount the instance.
 (4) Use the script in the trace file to
     RE-CREATE THE CONTROLFILE and open the database.
*****************************************************
USER (ospid: 15083): terminating the instance
Tue Jul 29 15:06:16 2014
System state dump requested by (instance=1, osid=15083), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/mydb1/mydb1/trace/mydb1_diag_9045.trc
Dumping diagnostic data in directory=[cdmp_20140729150616], requested by (instance=1, osid=15083), summary=[abnormal instance termination].
Termination issued to instance processes. Waiting for the processes to exit
Tue Jul 29 15:06:27 2014
Instance termination failed to kill one or more processes
Instance terminated by USER, pid = 15083
Tue Jul 29 15:08:55 2014
Starting ORACLE instance (normal)

15:15:13 SYS@mydb1>show parameter user_dump_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest                       string      /u01/app/oracle/diag/rdbms/myd
                                                 b1/mydb1/trace
15:16:07 SYS@mydb1>


mydb1_ora_14566.trc:ORA-00204: error in reading (block 64, # blocks 64) of control file
mydb1_ora_14566.trc:ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
mydb1_ora_14566.trc:ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
mydb1_ora_14566.trc:ORA-00204: error in reading (block 64, # blocks 64) of control file
mydb1_ora_14566.trc:ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
mydb1_ora_14819.trc:ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
mydb1_ora_14819.trc:ORA-00204: error in reading (block 64, # blocks 64) of control file
mydb1_ora_14819.trc:ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
mydb1_ora_14824.trc:ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
mydb1_ora_14824.trc:ORA-00204: error in reading (block 64, # blocks 64) of control file
mydb1_ora_14824.trc:ORA-00202: control file: '/u02/oradata/mydb1/control01.ctl'
mydb1_ora_15083.trc: The controlfile header block returned by the OS
mydb1_ora_15083.trc: The controlfile might be corrupted.
mydb1_ora_15083.trc: TO THE DATABASE, if the controlfile is truly corrupted.
mydb1_ora_15083.trc: (1) Save all copies of the controlfile for later
[oracle@my2950 trace]$



没办法 ,重建控制文件吧




CREATE CONTROLFILE REUSE DATABASE "MYDB1" NORESETLOGS  ARCHIVELOG 
    MAXLOGFILES 16 
    MAXLOGMEMBERS 3 
    MAXDATAFILES 100 
    MAXINSTANCES 8 
    MAXLOGHISTORY 454 
LOGFILE 
  GROUP 1 '/u03/oraredo/mydb1/onlinelog/redoaa01.log' SIZE 100M,
  GROUP 2 '/u03/oraredo/mydb1/onlinelog/redoaa02.log' SIZE 100M, 
  GROUP 3 '/u03/oraredo/mydb1/onlinelog/redoaa03.log' SIZE 100M,
  GROUP 4 '/u03/oraredo/mydb1/onlinelog/redoaa04.log' SIZE 100M,
  GROUP 5 '/u03/oraredo/mydb1/onlinelog/redoaa05.log' SIZE 100M

-- STANDBY LOGFILE 
DATAFILE 
  '/u02/oradata/mydb1/sysaux01.dbf',
  '/u02/oradata/mydb1/system01.dbf',
  '/u02/oradata/mydb1/temp01.dbf',
  '/u02/oradata/mydb1/undotbs101.dbf',
  '/u02/oradata/mydb1/users01.dbf',
  '/u02/oradata/mydb1/zabbix101.dbf',
  '/u02/oradata/mydb1/ccdata001.dbf' 
CHARACTER SET AL32UTF8 


最终的
[oracle@my2950 script]$ more rccf.sql
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "MYDB1" RESETLOGS  ARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 5
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 226
LOGFILE

  GROUP 1 '/u03/oraredo/mydb1/onlinelog/redoaa01.log' SIZE 100M,
  GROUP 2 '/u03/oraredo/mydb1/onlinelog/redoaa02.log' SIZE 100M,
  GROUP 3 '/u03/oraredo/mydb1/onlinelog/redoaa03.log' SIZE 100M,
  GROUP 4 '/u03/oraredo/mydb1/onlinelog/redoaa04.log' SIZE 100M,
  GROUP 5 '/u03/oraredo/mydb1/onlinelog/redoaa05.log' SIZE 100M
-- STANDBY LOGFILE
DATAFILE
  '/u02/oradata/mydb1/sysaux01.dbf',
  '/u02/oradata/mydb1/system01.dbf',
  '/u02/oradata/mydb1/undotbs101.dbf',
  '/u02/oradata/mydb1/users01.dbf',
  '/u02/oradata/mydb1/zabbix101.dbf',
  '/u02/oradata/mydb1/ccdata001.dbf'
CHARACTER SET AL32UTF8
;

[oracle@my2950 script]$


15:27:03 SYS@mydb1>startup nomount
ORACLE instance started.

Total System Global Area 1286066176 bytes
Fixed Size                  2228024 bytes
Variable Size            1224736968 bytes
Database Buffers           50331648 bytes
Redo Buffers                8769536 bytes
15:27:37 SYS@mydb1>

[oracle@my2950 mydb1]$ mkdir bak
[oracle@my2950 mydb1]$ mv control01.ctl.orig bak/
[oracle@my2950 mydb1]$ pwd
/u02/oradata/mydb1
[oracle@my2950 mydb1]$ ll
total 19775564
drwxr-xr-x 2 oracle dba         31 Jul 29 15:28 bak/
-rw-r----- 1 oracle dba 1825579008 Jul 29 14:53 ccdata001.dbf
-rw-r----- 1 oracle dba 1520443392 Jul 29 15:06 sysaux01.dbf
-rw-r----- 1 oracle dba  838868992 Jul 29 15:05 system01.dbf
-rw-r----- 1 oracle dba 4294975488 Jul 29 14:24 temp01.dbf
-rw-r----- 1 oracle dba 7130324992 Jul 29 15:06 undotbs101.dbf
-rw-r----- 1 oracle dba    5251072 Jul 29 14:53 users01.dbf
-rw-r----- 1 oracle dba 7864328192 Jul 29 14:53 zabbix101.dbf
[oracle@my2950 mydb1]$


15:45:13 SYS@mydb1>Set SQLBLANKLINES ON     --sqlplus支持空号
15:46:08 SYS@mydb1>
15:46:08 SYS@mydb1>
15:46:08 SYS@mydb1>
15:46:09 SYS@mydb1>@rccf.sql
ORACLE instance started.

Total System Global Area 1286066176 bytes
Fixed Size                  2228024 bytes
Variable Size            1224736968 bytes
Database Buffers           50331648 bytes
Redo Buffers                8769536 bytes
ERROR:
ORA-06550: line 1, column 29:
PLS-00553: character set name is not recognized
ORA-06550: line 0, column 0:
PL/SQL: Compilation unit analysis terminated


CREATE CONTROLFILE REUSE DATABASE "MYDB1" NORESETLOGS  ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01160: file is not a data file
ORA-01110: data file : '/u02/oradata/mydb1/temp01.dbf'


15:46:13 SYS@mydb1>


15:47:48 SYS@mydb1>@rccf.sql
ORACLE instance started.

Total System Global Area 1286066176 bytes
Fixed Size                  2228024 bytes
Variable Size            1224736968 bytes
Database Buffers           50331648 bytes
Redo Buffers                8769536 bytes
ERROR:
ORA-06550: line 1, column 29:
PLS-00553: character set name is not recognized
ORA-06550: line 0, column 0:
PL/SQL: Compilation unit analysis terminated


CREATE CONTROLFILE REUSE DATABASE "MYDB1" NORESETLOGS  ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01224: group number in header 7 does not match GROUP 1
ORA-01517: log member: '/u03/oraredo/mydb1/onlinelog/redoaa01.log'


15:47:52 SYS@mydb1>


[oracle@my2950 script]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 29 15:48:23 2014

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

15:48:23 SYS@mydb1>shutdown abort
ORACLE instance shut down.
15:48:28 SYS@mydb1>Set SQLBLANKLINES ON
15:48:30 SYS@mydb1>@rccf.sql
ORACLE instance started.

Total System Global Area 1286066176 bytes
Fixed Size                  2228024 bytes
Variable Size            1224736968 bytes
Database Buffers           50331648 bytes
Redo Buffers                8769536 bytes

Control file created.

15:48:36 SYS@mydb1>



ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/oradata/mydb1/temp01.dbf'
     SIZE 4294975488 REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 5000M;    

15:52:58 SYS@mydb1>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: '/u02/oradata/mydb1/system01.dbf'


15:53:35 SYS@mydb1>

15:55:04 SYS@mydb1>select file#,ts#,status,name from v$datafile;

     FILE#        TS# STATUS  NAME
---------- ---------- ------- ----------------------------------------
         1          0 SYSTEM  /u02/oradata/mydb1/system01.dbf
         2          1 RECOVER /u02/oradata/mydb1/sysaux01.dbf
         3          2 RECOVER /u02/oradata/mydb1/undotbs101.dbf
         4          4 RECOVER /u02/oradata/mydb1/users01.dbf
         5          9 RECOVER /u02/oradata/mydb1/ccdata001.dbf
         7          7 RECOVER /u02/oradata/mydb1/zabbix101.dbf

6 rows selected.

15:58:31 SYS@mydb1>


15:59:19 SYS@mydb1>recover database using backup controlfile until cancel
ORA-00279: change 248088346 generated at 07/29/2014 14:53:35 needed for thread 1
ORA-00289: suggestion : /u04/orafra/fast_recovery_area/mydb1/MYDB1/archivelog/2014_07_29/o1_mf_1_2047_%u_.arc
ORA-00280: change 248088346 for thread 1 is in sequence #2047


15:59:53 Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00308: cannot open archived log '/u04/orafra/fast_recovery_area/mydb1/MYDB1/archivelog/2014_07_29/o1_mf_1_2047_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u02/oradata/mydb1/system01.dbf'


16:00:14 SYS@mydb1>

15:59:19 SYS@mydb1>recover database using backup controlfile until cancel
ORA-00279: change 248088346 generated at 07/29/2014 14:53:35 needed for thread 1
ORA-00289: suggestion : /u04/orafra/fast_recovery_area/mydb1/MYDB1/archivelog/2014_07_29/o1_mf_1_2047_%u_.arc
ORA-00280: change 248088346 for thread 1 is in sequence #2047


15:59:53 Specify log: {=suggested | filename | AUTO | CANCEL}

ORA-00308: cannot open archived log '/u04/orafra/fast_recovery_area/mydb1/MYDB1/archivelog/2014_07_29/o1_mf_1_2047_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u02/oradata/mydb1/system01.dbf'


16:00:14 SYS@mydb1>
16:00:33 SYS@mydb1>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: '/u02/oradata/mydb1/system01.dbf'


16:00:36 SYS@mydb1>recover database using backup controlfile until cancel
ORA-00279: change 248088346 generated at 07/29/2014 14:53:35 needed for thread 1
ORA-00289: suggestion : /u04/orafra/fast_recovery_area/mydb1/MYDB1/archivelog/2014_07_29/o1_mf_1_2047_%u_.arc
ORA-00280: change 248088346 for thread 1 is in sequence #2047


16:01:05 Specify log: {=suggested | filename | AUTO | CANCEL}
'/u03/oraredo/mydb1/onlinelog/redoaa01.log'
ORA-00310: archived log contains sequence 2043; sequence 2047 required
ORA-00334: archived log: '/u03/oraredo/mydb1/onlinelog/redoaa01.log'


ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u02/oradata/mydb1/system01.dbf'


16:01:27 SYS@mydb1>recover database using backup controlfile until cancel
ORA-00279: change 248088346 generated at 07/29/2014 14:53:35 needed for thread 1
ORA-00289: suggestion : /u04/orafra/fast_recovery_area/mydb1/MYDB1/archivelog/2014_07_29/o1_mf_1_2047_%u_.arc
ORA-00280: change 248088346 for thread 1 is in sequence #2047


16:01:42 Specify log: {=suggested | filename | AUTO | CANCEL}
'/u03/oraredo/mydb1/onlinelog/redoaa02.log'
ORA-00310: archived log contains sequence 2044; sequence 2047 required
ORA-00334: archived log: '/u03/oraredo/mydb1/onlinelog/redoaa02.log'


ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u02/oradata/mydb1/system01.dbf'


16:01:45 SYS@mydb1>recover database using backup controlfile until cancel
ORA-00279: change 248088346 generated at 07/29/2014 14:53:35 needed for thread 1
ORA-00289: suggestion : /u04/orafra/fast_recovery_area/mydb1/MYDB1/archivelog/2014_07_29/o1_mf_1_2047_%u_.arc
ORA-00280: change 248088346 for thread 1 is in sequence #2047


16:01:48 Specify log: {=suggested | filename | AUTO | CANCEL}
'/u03/oraredo/mydb1/onlinelog/redoaa03.log'
Log applied.
Media recovery complete.
16:01:53 SYS@mydb1>

16:02:22 SYS@mydb1>select file#,ts#,status,name from v$datafile;

     FILE#        TS# STATUS  NAME
---------- ---------- ------- ----------------------------------------
         1          0 SYSTEM  /u02/oradata/mydb1/system01.dbf
         2          1 ONLINE  /u02/oradata/mydb1/sysaux01.dbf
         3          2 ONLINE  /u02/oradata/mydb1/undotbs101.dbf
         4          4 ONLINE  /u02/oradata/mydb1/users01.dbf
         5          9 ONLINE  /u02/oradata/mydb1/ccdata001.dbf
         7          7 ONLINE  /u02/oradata/mydb1/zabbix101.dbf

6 rows selected.

16:02:25 SYS@mydb1>

16:02:34 SYS@mydb1>ALTER DATABASE OPEN resetlogs;

Database altered.

16:02:51 SYS@mydb1>

16:02:34 SYS@mydb1>ALTER DATABASE OPEN resetlogs;

Database altered.




ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/oradata/mydb1/temp01.dbf'
16:03:40   2       SIZE 4294975488 REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 5000M;

Tablespace altered.

16:03:42 SYS@mydb1>


ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/oradata/mydb1/temp01.dbf'
     SIZE 4294975488 REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 5000M
Completed: ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/oradata/mydb1/temp01.dbf'
     SIZE 4294975488 REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 5000M





阅读(2369) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~