1. 以sysdba登陸,導(dǎo)出控制文件

          alter database backup controlfile to trace;

          ?

          2. 在%oracle_base%\oradata\%oracle_sid%\udump下找到剛剛創(chuàng)建的trc文件,打開它。可以看到里面包含了兩段sql腳本。

          -- Below are two sets of SQL statements, each of which creates a new
          -- control file and uses it to open the database. The first set opens
          -- the database with the NORESETLOGS option and should be used only if
          -- the current versions of all online logs are available. The second
          -- set opens the database with the RESETLOGS option and should be used
          -- if online logs are unavailable.
          -- The appropriate set of statements can be copied from the trace into
          -- a script file, edited as necessary, and executed when there is a
          -- need to re-create the control file.
          --
          --     Set #1. NORESETLOGS case
          --
          -- The following commands will create a new control file and use it
          -- to open the database.
          -- Data used by Recovery Manager will be lost.
          -- Additional logs may be required for media recovery of offline
          -- Use this only if the current versions of all online logs are
          -- available.
          -- After mounting the created controlfile, the following SQL
          -- statement will place the database in the appropriate
          -- protection mode:
          --  ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
          STARTUP NOMOUNT
          CREATE CONTROLFILE REUSE DATABASE "EPCIT" NORESETLOGS  ARCHIVELOG
              MAXLOGFILES 16
              MAXLOGMEMBERS 3
              MAXDATAFILES 100
              MAXINSTANCES 8
              MAXLOGHISTORY 454
          LOGFILE
            GROUP 1 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITREDO01.LOG'  SIZE 10M,
            GROUP 2 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITREDO02.LOG'  SIZE 10M,
            GROUP 3 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITREDO03.LOG'  SIZE 10M
          -- STANDBY LOGFILE
          DATAFILE
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITSYSTEM01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITUNDOTBS01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITSYSAUX01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITBLOBS01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITINDEX01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITUSERS01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITWCAUDIT01.DBF'
          CHARACTER SET UTF8
          ;
          -- Configure RMAN configuration record 1
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CHANNEL','DEVICE TYPE DISK MAXPIECESIZE 100 M');
          -- Configure RMAN configuration record 3
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');
          -- Configure RMAN configuration record 4
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('BACKUP OPTIMIZATION','ON');
          -- Configure RMAN configuration record 5
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('DEVICE TYPE','DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1');
          -- Commands to re-create incarnation table
          -- Below log names MUST be changed to existing filenames on
          -- disk. Any one log file from each branch can be used to
          -- re-create incarnation records.
          -- ALTER DATABASE REGISTER LOGFILE 'D:\ORACLE\FLASH_RECOVERY_AREA\EPCIT\ARCHIVELOG\2009_02_22\O1_MF_1_1_%U_.ARC';
          -- Recovery is required if any of the datafiles are restored backups,
          -- or if the last shutdown was not normal or immediate.
          RECOVER DATABASE
          -- All logs need archiving and a log switch is needed.
          ALTER SYSTEM ARCHIVE LOG ALL;
          -- Database can now be opened normally.
          ALTER DATABASE OPEN;
          -- Commands to add tempfiles to temporary tablespaces.
          -- Online tempfiles have complete space information.
          -- Other tempfiles may require adjustment.
          ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITTEMP01.DBF'
               SIZE 209715200  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
          -- End of tempfile additions.
          --
          --     Set #2. RESETLOGS case
          --
          -- The following commands will create a new control file and use it
          -- to open the database.
          -- Data used by Recovery Manager will be lost.
          -- The contents of online logs will be lost and all backups will
          -- be invalidated. Use this only if online logs are damaged.
          -- After mounting the created controlfile, the following SQL
          -- statement will place the database in the appropriate
          -- protection mode:
          --  ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
          STARTUP NOMOUNT
          CREATE CONTROLFILE REUSE DATABASE "EPCIT" RESETLOGS  ARCHIVELOG
              MAXLOGFILES 16
              MAXLOGMEMBERS 3
              MAXDATAFILES 100
              MAXINSTANCES 8
              MAXLOGHISTORY 454
          LOGFILE
            GROUP 1 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITREDO01.LOG'  SIZE 10M,
            GROUP 2 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITREDO02.LOG'  SIZE 10M,
            GROUP 3 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITREDO03.LOG'  SIZE 10M
          -- STANDBY LOGFILE
          DATAFILE
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITSYSTEM01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITUNDOTBS01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITSYSAUX01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITBLOBS01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITINDEX01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITUSERS01.DBF',
            'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITWCAUDIT01.DBF'
          CHARACTER SET UTF8
          ;
          -- Configure RMAN configuration record 1
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CHANNEL','DEVICE TYPE DISK MAXPIECESIZE 100 M');
          -- Configure RMAN configuration record 3
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');
          -- Configure RMAN configuration record 4
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('BACKUP OPTIMIZATION','ON');
          -- Configure RMAN configuration record 5
          VARIABLE RECNO NUMBER;
          EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('DEVICE TYPE','DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1');
          -- Commands to re-create incarnation table
          -- Below log names MUST be changed to existing filenames on
          -- disk. Any one log file from each branch can be used to
          -- re-create incarnation records.
          -- ALTER DATABASE REGISTER LOGFILE 'D:\ORACLE\FLASH_RECOVERY_AREA\EPCIT\ARCHIVELOG\2009_02_22\O1_MF_1_1_%U_.ARC';
          -- Recovery is required if any of the datafiles are restored backups,
          -- or if the last shutdown was not normal or immediate.
          RECOVER DATABASE USING BACKUP CONTROLFILE
          -- Database can now be opened zeroing the online logs.
          ALTER DATABASE OPEN RESETLOGS;
          -- Commands to add tempfiles to temporary tablespaces.
          -- Online tempfiles have complete space information.
          -- Other tempfiles may require adjustment.
          ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\PTC\OCU_8.0\ORADATA\EPCIT\EPCITTEMP01.DBF'
               SIZE 209715200  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
          -- End of tempfile additions.

          ?

          第一段sql是在所有online redolog沒有丟失,以noresetlogs選項打開數(shù)據(jù)庫的情況下使用的。第二段則是在丟失了online redolog需要resetlogs的情況下使用。

          ?

          3. 把"Set #1. NORESETLOGS case"下的sql拷貝出來,存為reCreateCtl.sql

          ?

          4. 以sysdba登陸,shutdown immediate。然后刪除所有控制文件。再運(yùn)行reCreateCtl.sql。

          SQL> @reCreateCtl
          ORACLE instance started.
          
          Total System Global Area  251658240 bytes
          Fixed Size                  1248356 bytes
          Variable Size              83887004 bytes
          Database Buffers          159383552 bytes
          Redo Buffers                7139328 bytes
          
          Control file created.
          PL/SQL procedure successfully completed.
          PL/SQL procedure successfully completed.
          PL/SQL procedure successfully completed.
          PL/SQL procedure successfully completed.
          
          ORA-00283: recovery session canceled due to errors
          ORA-00264: no recovery required
          
          System altered.
          Database altered.
          Tablespace altered.

          ?

          5. 成功創(chuàng)建了控制文件,數(shù)據(jù)庫也正常打開。再沒有使用Recovery Catalog的情況下,RMAN的備份資料是存在控制文件中的,重建控制文件會導(dǎo)致丟失備份資料庫。



          已有 0 人發(fā)表留言,猛擊->>這里<<-參與討論


          JavaEye推薦



          主站蜘蛛池模板: 黑龙江省| 嫩江县| 龙里县| 专栏| 西乌珠穆沁旗| 平度市| 苏尼特左旗| 探索| 清新县| 仙居县| 武宣县| 迁安市| 万载县| 益阳市| 龙陵县| 呼图壁县| 阿城市| 黄大仙区| 玉山县| 惠安县| 汨罗市| 孟津县| 榆树市| 宿松县| 鹤岗市| 刚察县| 罗定市| 南通市| 玉屏| 新龙县| 城口县| 灵石县| 四川省| 晋中市| 乐昌市| 朔州市| 宿州市| 崇阳县| 林周县| 于田县| 高邑县|