Oracle 控制文件故障有哪些类型,如何应急?

2024年 2月 28日 110.1k 0

说明:

文章整理自2016-05-29我在ITPUB博客发布的《Oracle 控制文件损坏解决方案》

    https://blog.itpub.net/29785807/viewspace-2108945/

    注意:文章发布时间较久,可能存在错误,仅供参考,请勿用于生产环境。

    Oracle 控制文件故障有哪些类型,如何应急?-1

    故障一:丢失(损坏)一个控制文件

    前台报错:ORA-00205:error in identifying control file,check alert log for more info

    解决方案:(干净或非干净方式关闭数据库)

    使用完好的控制文件复制(替换)重命名丢失(损坏)的控制文件;

    故障二:两个控制文件版本不一致

    (1)一个控制文件正常,另一个控制文件来源于其他备份或其他数据库的控制文件;

    前台报错:ORA-00214:control file '/../../control01.ctl' version xxx inconsistent with file '/../../control02.ctl' version yyy;

    解决方案:(干净或非干净方式关闭数据库)

    用高版本的控制文件替换低版本的控制文件;

    (2) 两个控制文件均是来自不同时间的备份(都低于当前版本);

    前台报错:ORA-00214:control file '/../../control01.ctl' version xxx inconsistent with file '/../../control02.ctl' version yyy;

    ORA-01207:file is more recent than control file - old control file

    解决方案:(干净方式关闭数据库)

    用高版本的控制文件替换低版本的控制文件,可以正常mount数据库,但是无法open数据库,需要手动创建控制文件(alter database backup to trace as '\..\..\cc.tcl'),重新生成控制文件(noresetlogs方式),之后可以正常open数据库;

    解决方案:(非干净方式关闭数据库)

    非干净关闭(数据库异常断电),数据库启动时需要介质恢复(recover database),恢复成功后可以正常打开数据库;

    故障三:两个控制文件全部损坏,非当前日志文件丢失(或损坏)

    报错:ORA-00205:error in identifying control file,check alert log for more info

    解决方案:(干净方式关闭数据库)

    因为有日志文件丢失,以NORESETLOGS方式手动创建控制文件时报错,只能以RESETLOGS方式创建控制文件;创建控制文件成功后,数据库自动mount,执行alter database open resetlogs;可以正常启动数据库;

    解决方案:(非干净方式关闭数据库)

    如果数据库之前是以不干净的方式(abort/断电)关闭的,open resetlogs数据库之前需要进行介质恢复,

    recover database using backup controlfie;

    由于resetlogs方式创建控制文件,导致日志序列号重新开始,自动恢复时不会自动使用当前日志文件,需要手动指定具体的日志文件;

    例如:D:\app_10.2.0.4\chen_datafile\redo01.log或D:\app_10.2.0.4\chen_datafile\redo03.log

    进行介质恢复,介质恢复成功后可以通过alter database open resetlogs方式open数据库;

    故障四:两个控制文件全部损坏,当前日志文件丢失(或损坏)

    报错:ORA-00205:error in identifying control file,check alert log for more info

    解决方案:

    (干净方式关闭数据库)

    因为有日志文件丢失,以NORESETLOGS方式手动创建控制文件时报错,只能以RESETLOGS方式创建控制文件;创建控制文件成功后,数据库自动mount,执行alter database open resetlogs;可以正常启动数据库;

    解决方案:

    (非干净方式关闭数据库)

    如果数据库之前是以不干净的方式(abort/断电)关闭的,open resetlogs数据库之前需要进行介质恢复,

    recover database using backup controlfie;

    由于resetlogs方式创建控制文件,导致日志序列号重新开始,自动恢复时不会自动使用当前日志文件,需要手动指定具体的日志文件;

    例如:D:\app_10.2.0.4\chen_datafile\redo01.log或D:\app_10.2.0.4\chen_datafile\redo03.log

    进行介质恢复,但是数据库介质恢复所需的信息保存在丢失的当前日志文件中,导致介质恢复失败,只能通过隐含参数"*._allow_resetlogs_corruption=true"(alter system set "_allow_resetlogs_corruption"=true scope=spfile;)跳过一致性检查,才能open resetlogs数据库;

    其中_allow_resetlogs_corruption参数可能会触发多个ORA-600错误;

    (1)报错ORA-00600: internal error code, arguments: [2662],可通过_minimum_giga_scn跳过此BUG;

    (2)报错ORA-00600: internal error code, arguments: [kdsgrp1],具体原因需要查看trace文件,本次案例可以通过将undo管理方式由自动改成手动,跳过此BUG;

      *.undo_tablespace=SYSTEM
      *.undo_management=MANUAL

      Oracle 控制文件故障有哪些类型,如何应急?-2

      具体解决故障过程如下:

      故障一:丢失(损坏)一个控制文件

      前台报错:ORA-00205:error in identifying control file,check alert log for more info

      解决方案:使用完好的控制文件复制(替换)重命名丢失(损坏)的控制文件;

      Oracle 控制文件故障有哪些类型,如何应急?-3

      Oracle 控制文件故障有哪些类型,如何应急?-4

      Oracle 控制文件故障有哪些类型,如何应急?-5

      ---alert_orcl.log警告日志

      ---通过删除控制文件control02.ctl模拟控制文件丢失

        Sun May 29 14:56:12 2016
        ALTER DATABASE MOUNT
        ORA-00210: cannot open the specified control file
        ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL02.CTL'
        ORA-27041: unable to open file
        OSD-04002: 无法打开文件
        O/S-Error: (OS 2) 系统找不到指定的文件。
        ORA-205 signalled during: ALTER DATABASE MOUNT...
        Sun May 29 14:56:12 2016
        MMNL started with pid=16, OS id=2476

        ---alert_orcl.log警告日志

        ---通过文本编辑二进制控制文件control02.ctl模拟控制文件损坏

          Sun May 29 16:35:03 2016
          ALTER DATABASE MOUNT
          ORA-00210: cannot open the specified control file
          ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL01.CTL'
          ORA-27046: file size is not a multiple of logical block size
          OSD-04012: 文件大小不匹配 (OS 12763140)
          ORA-205 signalled during: ALTER DATABASE MOUNT...

          解决方案:用另一个控制文件进行恢复

          Oracle 控制文件故障有哪些类型,如何应急?-6

          Oracle 控制文件故障有哪些类型,如何应急?-7

          故障二:两个控制文件版本不一致

          (1)一个控制文件正常,另一个控制文件来源于其他备份或其他数据库的控制文件;

          前台报错:ORA-00214:control file '/../../control01.ctl' version xxx inconsistent with file '/../../control02.ctl' version yyy;

          解决方案:用高版本的控制文件替换低版本的控制文件;

          Oracle 控制文件故障有哪些类型,如何应急?-8

          本次案例可以将control02.ctl控制文件复制重命名control01.ctl替换原control01.ctl文件;

          Oracle 控制文件故障有哪些类型,如何应急?-9

          (2) 两个控制文件均是来自不同时间的备份;

          前台报错:ORA-00214:control file '/../../control01.ctl' version xxx inconsistent with file '/../../control02.ctl' version yyy;

          ORA-01207:file is more recent than control file - old control file

          解决方案:用高版本的控制文件替换低版本的控制文件,后可以正常mount数据库,但是无法open数据库,需要手动创建控制文件(alter database backup to trace as '\..\..\cc.tcl'),重新生成控制文件(noresetlogs方式),之后可以正常open数据库;

          Oracle 控制文件故障有哪些类型,如何应急?-10

          controlfile1版本号较高,用controlfile1重命名controlfile2替换原controfile2文件;

          Oracle 控制文件故障有哪些类型,如何应急?-11

          Oracle 控制文件故障有哪些类型,如何应急?-12

            Sun May 29 15:12:45 2016
            Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_m000_9636.trc:
            ORA-00338: log 1 of thread 1 is more recent than control file
            ORA-00312: online log 1 thread 1: 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01A.LOG'
            ORA-00338: log 1 of thread 1 is more recent than control file
            ORA-00312: online log 1 thread 1: 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01.LOG'

            解决方案:重建控制文件

              STARTUP NOMOUNT
              CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
              MAXLOGFILES 16
              MAXLOGMEMBERS 3
              MAXDATAFILES 100
              MAXINSTANCES 8
              MAXLOGHISTORY 2337
              LOGFILE
              GROUP 1 (
              'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01.LOG',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01A.LOG'
              ) SIZE 50M BLOCKSIZE 512,
              GROUP 2 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
              GROUP 3 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO03.LOG' SIZE 50M BLOCKSIZE 512
              DATAFILE
              'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSTEM01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSAUX01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\USERS01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\EXAMPLE01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN02.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX02.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\MHWZ01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02A.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\ISM01.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01A.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01A.DBF',
              'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01A.DBF'
              CHARACTER SET ZHS16GBK
              ;

              Oracle 控制文件故障有哪些类型,如何应急?-13

              Oracle 控制文件故障有哪些类型,如何应急?-14

              使用resetlogs,将导致redo logs里的内容丢失,并且所有的备份失效,当redo logs 损坏或从备份恢复控制文件的情况下,才使用resetlogs模式。通常情况下重建控制文件最好采用noresetlogs方式;

              非干净关闭(数据库异常断电),数据库启动时需要介质恢复(recover database),恢复成功后可以正常打开数据库;

              Oracle 控制文件故障有哪些类型,如何应急?-15

              Oracle 控制文件故障有哪些类型,如何应急?-16

                Sun May 29 15:42:59 2016
                ALTER DATABASE MOUNT
                ORA-00210: cannot open the specified control file
                ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL02.CTL'
                ORA-27046: file size is not a multiple of logical block size
                OSD-04012: 文件大小不匹配 (OS 12763144)
                ORA-00210: cannot open the specified control file
                ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL01.CTL'
                ORA-27046: file size is not a multiple of logical block size
                OSD-04012: 文件大小不匹配 (OS 12763144)
                ORA-205 signalled during: ALTER DATABASE MOUNT...

                Oracle 控制文件故障有哪些类型,如何应急?-17

                重建控制文件

                  STARTUP NOMOUNT
                  CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
                  MAXLOGFILES 16
                  MAXLOGMEMBERS 3
                  MAXDATAFILES 100
                  MAXINSTANCES 8
                  MAXLOGHISTORY 2337
                  LOGFILE
                  GROUP 1 (
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01.LOG',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01A.LOG'
                  ) SIZE 50M BLOCKSIZE 512,
                  GROUP 2 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
                  GROUP 3 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO03.LOG' SIZE 50M BLOCKSIZE 512
                  DATAFILE
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSTEM01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSAUX01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\USERS01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\EXAMPLE01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN02.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX02.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\MHWZ01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02A.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\ISM01.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01A.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01A.DBF',
                  'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01A.DBF'
                  CHARACTER SET ZHS16GBK
                  ;

                  Oracle 控制文件故障有哪些类型,如何应急?-18

                  Oracle 控制文件故障有哪些类型,如何应急?-19

                  Oracle 控制文件故障有哪些类型,如何应急?-20

                  Oracle 控制文件故障有哪些类型,如何应急?-21

                  Oracle 控制文件故障有哪些类型,如何应急?-22

                  Oracle 控制文件故障有哪些类型,如何应急?-23

                  Oracle 控制文件故障有哪些类型,如何应急?-24

                  Oracle 控制文件故障有哪些类型,如何应急?-25

                  故障三:两个控制文件全部损坏,非当前日志文件丢失(或损坏)

                  报错:ORA-00205:error in identifying control file,check alert log for more info

                  解决方案:因为有日志文件丢失,以NORESETLOGS方式手动创建控制文件时报错,只能以RESETLOGS方式创建控制文件;创建控制文件成功后,数据库自动mount,如果数据库之前是以干净的方式(immediate/normal)关闭的,执行alter database open resetlogs;可以正常启动数据库;

                  如果数据库之前是以不干净的方式(abort/断电)关闭的,open resetlogs数据库之前需要进行介质恢复,

                  recover database using backup controlfie;

                  由于resetlogs方式创建控制文件,导致日志序列号重新开始,自动恢复时不会自动使用当前日志文件,需要手动指定具体的日志文件;

                  例如:D:\app_10.2.0.4\chen_datafile\redo01.log或D:\app_10.2.0.4\chen_datafile\redo03.log

                  进行介质恢复,介质恢复成功后可以通过alter database open resetlogs方式open数据库;

                  Oracle 控制文件故障有哪些类型,如何应急?-26

                  Oracle 控制文件故障有哪些类型,如何应急?-27

                  编辑损坏两个控制文件,删除非当前日志文件redo03.log

                  Oracle 控制文件故障有哪些类型,如何应急?-28

                  Oracle 控制文件故障有哪些类型,如何应急?-29

                    Sun May 29 16:40:55 2016
                    ALTER DATABASE MOUNT
                    ORA-00210: cannot open the specified control file
                    ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL02.CTL'
                    ORA-27046: file size is not a multiple of logical block size
                    OSD-04012: 文件大小不匹配 (OS 12763144)
                    ORA-00210: cannot open the specified control file
                    ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL01.CTL'
                    ORA-27046: file size is not a multiple of logical block size
                    OSD-04012: 文件大小不匹配 (OS 12763144)
                    ORA-205 signalled during: ALTER DATABASE MOUNT...
                    Sun May 29 16:40:55 2016
                    MMNL started with pid=16, OS id=10652

                    Oracle 控制文件故障有哪些类型,如何应急?-30

                    手动创建控制文件(NORESETLOGS)

                      STARTUP NOMOUNT
                      CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
                      MAXLOGFILES 16
                      MAXLOGMEMBERS 3
                      MAXDATAFILES 100
                      MAXINSTANCES 8
                      MAXLOGHISTORY 2337
                      LOGFILE
                      GROUP 1 (
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01.LOG',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01A.LOG'
                      ) SIZE 50M BLOCKSIZE 512,
                      GROUP 2 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
                      GROUP 3 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO03.LOG' SIZE 50M BLOCKSIZE 512
                      DATAFILE
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSTEM01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSAUX01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\USERS01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\EXAMPLE01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN02.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX02.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\MHWZ01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02A.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\ISM01.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01A.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01A.DBF',
                      'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01A.DBF'
                      CHARACTER SET ZHS16GBK
                      ;

                      Oracle 控制文件故障有哪些类型,如何应急?-31

                        Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_7516.trc:
                        ORA-01565: error in identifying file 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO03.LOG'
                        ORA-27041: unable to open file
                        OSD-04002: 无法打开文件
                        O/S-Error: (OS 2) 系统找不到指定的文件。
                        ORA-1503 signalled during: CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG

                        手动创建控制文件(RESETLOGS)

                          STARTUP NOMOUNT
                          CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG
                          MAXLOGFILES 16
                          MAXLOGMEMBERS 3
                          MAXDATAFILES 100
                          MAXINSTANCES 8
                          MAXLOGHISTORY 2337
                          LOGFILE
                          GROUP 1 (
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01.LOG',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01A.LOG'
                          ) SIZE 50M BLOCKSIZE 512,
                          GROUP 2 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
                          GROUP 3 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO03.LOG' SIZE 50M BLOCKSIZE 512
                          DATAFILE
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSTEM01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSAUX01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\USERS01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\EXAMPLE01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN02.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX02.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\MHWZ01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02A.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\ISM01.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01A.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01A.DBF',
                          'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01A.DBF'
                          CHARACTER SET ZHS16GBK
                          ;

                          Oracle 控制文件故障有哪些类型,如何应急?-32

                          Oracle 控制文件故障有哪些类型,如何应急?-33

                          Oracle 控制文件故障有哪些类型,如何应急?-34

                          Oracle 控制文件故障有哪些类型,如何应急?-35

                          Oracle 控制文件故障有哪些类型,如何应急?-36

                          Oracle 控制文件故障有哪些类型,如何应急?-37

                          Oracle 控制文件故障有哪些类型,如何应急?-38

                          Oracle 控制文件故障有哪些类型,如何应急?-39

                          故障四:两个控制文件全部损坏,当前日志文件丢失(或损坏)

                          报错:ORA-00205:error in identifying control file,check alert log for more info

                          解决方案:因为有日志文件丢失,以NORESETLOGS方式手动创建控制文件时报错,只能以RESETLOGS方式创建控制文件;创建控制文件成功后,数据库自动mount,如果数据库之前是以干净的方式(immediate/normal)关闭的,执行alter database open resetlogs;可以正常启动数据库;

                          如果数据库之前是以不干净的方式(abort/断电)关闭的,open resetlogs数据库之前需要进行介质恢复,

                          recover database using backup controlfie;

                          由于resetlogs方式创建控制文件,导致日志序列号重新开始,自动恢复时不会自动使用当前日志文件,需要手动指定具体的日志文件;

                          例如:D:\app_10.2.0.4\chen_datafile\redo01.log或D:\app_10.2.0.4\chen_datafile\redo03.log

                          进行介质恢复,但是数据库介质恢复所需的信息保存在丢失的当前日志文件中,导致介质恢复失败,只能通过隐含参数"*._allow_resetlogs_corruption=true"(alter system set "_allow_resetlogs_corruption"=true scope=spfile;)跳过一致性检查,才能open resetlogs数据库;

                          其中_allow_resetlogs_corruption参数可能会触发多个ORA-600错误;

                          (1)报错ORA-00600: internal error code, arguments: [2662],可通过_minimum_giga_scn跳过此BUG;

                          (2)报错ORA-00600: internal error code, arguments: [kdsgrp1],具体原因需要查看trace文件,本次案例可以通过将undo管理方式由自动改成手动,跳过此BUG;

                            *.undo_tablespace=SYSTEM
                            *.undo_management=MANUAL

                            Oracle 控制文件故障有哪些类型,如何应急?-40

                            Oracle 控制文件故障有哪些类型,如何应急?-41

                            故障:两个控制文件全部损坏,当前日志文件丢失(或损坏)

                            解决方案:

                            Oracle 控制文件故障有哪些类型,如何应急?-42

                            Oracle 控制文件故障有哪些类型,如何应急?-43

                            Oracle 控制文件故障有哪些类型,如何应急?-44

                              Sun May 29 20:00:47 2016
                              ALTER DATABASE MOUNT
                              ORA-00210: cannot open the specified control file
                              ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL02.CTL'
                              ORA-27046: file size is not a multiple of logical block size
                              OSD-04012: 文件大小不匹配 (OS 12763139)
                              ORA-00210: cannot open the specified control file
                              ORA-00202: control file: 'D:\APP_10.2.0.4\CHEN_DATAFILE\CONTROL01.CTL'
                              ORA-27046: file size is not a multiple of logical block size
                              OSD-04012: 文件大小不匹配 (OS 12763140)
                              ORA-205 signalled during: ALTER DATABASE MOUNT...

                              ---手动创建控制文件(NORESETLOGS)

                                STARTUP NOMOUNT
                                CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
                                MAXLOGFILES 16
                                MAXLOGMEMBERS 3
                                MAXDATAFILES 100
                                MAXINSTANCES 8
                                MAXLOGHISTORY 2337
                                LOGFILE
                                GROUP 1 (
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01.LOG',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01A.LOG'
                                ) SIZE 50M BLOCKSIZE 512,
                                GROUP 2 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
                                GROUP 3 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO03.LOG' SIZE 50M BLOCKSIZE 512
                                DATAFILE
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSTEM01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSAUX01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\USERS01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\EXAMPLE01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN02.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX02.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\MHWZ01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02A.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\ISM01.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01A.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01A.DBF',
                                'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01A.DBF'
                                CHARACTER SET ZHS16GBK
                                ;

                                Oracle 控制文件故障有哪些类型,如何应急?-45

                                ---手动创建控制文件(RESETLOGS)

                                  STARTUP NOMOUNT
                                  CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG
                                  MAXLOGFILES 16
                                  MAXLOGMEMBERS 3
                                  MAXDATAFILES 100
                                  MAXINSTANCES 8
                                  MAXLOGHISTORY 2337
                                  LOGFILE
                                  GROUP 1 (
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01.LOG',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO01A.LOG'
                                  ) SIZE 50M BLOCKSIZE 512,
                                  GROUP 2 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
                                  GROUP 3 'D:\APP_10.2.0.4\CHEN_DATAFILE\REDO03.LOG' SIZE 50M BLOCKSIZE 512
                                  DATAFILE
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSTEM01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\SYSAUX01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\USERS01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\EXAMPLE01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\CHEN02.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX02.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\MHWZ01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA02A.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\ISM01.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_DATA01A.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\NNC_INDEX01A.DBF',
                                  'D:\APP_10.2.0.4\CHEN_DATAFILE\UNDOTBS01A.DBF'
                                  CHARACTER SET ZHS16GBK
                                  ;

                                  Oracle 控制文件故障有哪些类型,如何应急?-46

                                  Oracle 控制文件故障有哪些类型,如何应急?-47

                                  Oracle 控制文件故障有哪些类型,如何应急?-48

                                  Oracle 控制文件故障有哪些类型,如何应急?-49

                                  Oracle 控制文件故障有哪些类型,如何应急?-50

                                  Oracle 控制文件故障有哪些类型,如何应急?-51

                                  Oracle 控制文件故障有哪些类型,如何应急?-52

                                  Oracle 控制文件故障有哪些类型,如何应急?-53

                                  Oracle 控制文件故障有哪些类型,如何应急?-54

                                  Oracle 控制文件故障有哪些类型,如何应急?-55

                                  Oracle 控制文件故障有哪些类型,如何应急?-56

                                  Oracle 控制文件故障有哪些类型,如何应急?-57

                                  ---Windows环境下,如果cmd中存在"?",乱码问题,可以设置客户端字符集

                                  Oracle 控制文件故障有哪些类型,如何应急?-58

                                  或者set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

                                  ###chenjuchao 20240225###

                                  Oracle 控制文件故障有哪些类型,如何应急?-59

                                  相关文章

                                  Oracle如何使用授予和撤销权限的语法和示例
                                  Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
                                  下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
                                  社区版oceanbase安装
                                  Oracle 导出CSV工具-sqluldr2
                                  ETL数据集成丨快速将MySQL数据迁移至Doris数据库

                                  发布评论