4.5.1 备份控制文件

虽然控制文件在数据库环境中是比较小的文件,但是由于包含了数据库中所有对象的元数据,它对于数据库操作十分关键。控制文件包含数据文件的位置、联机重做日志文件的位置等。因此,将控制文件多路复用到多个位置十分明智,不仅如此,还应该经常备份控制文件。为ARCHIVELOG模式下的数据库备份控制文件,得到的最终结果与在NOARCHIVELOG模式下使用的方法相同。

在ARCHIVELOG模式下备份控制文件的主要方法是在指定位置创建当前控制文件的一个精确副本(二进制格式):

        SQL> alter database backup controlfile to '/u02/oradata/rman/ctl.bkup';

        Database altered.

        SQL>

另一种方法是创建一个可编辑的脚本,由该脚本重新创建控制文件。命令如下:

        SQL> alter database backup controlfile to trace;

        Database altered.

        SQL>

Oracle会在保存所有跟踪文件的位置创建该脚本,对于HR数据库而言,默认情况下就是$ORACLE_BASE/diag/rdbms/rpt12c/RPT12C/trace。下面是生成的脚本的节选:

        . . .
        -- 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 "RPT12C" NORESETLOGS  ARCHIVELOG
            MAXLOGFILES 16
            MAXLOGMEMBERS 3
            MAXDATAFILES 100
            MAXINSTANCES 8
            MAXLOGHISTORY 584
        LOGFILE
          GROUP 1 (
            '+DATA/RPT12C/ONLINELOG/group_1.262.839886709',
            '+RECOV/RPT12C/ONLINELOG/group_1.257.839886709'
        ) SIZE 50M BLOCKSIZE 512,
        GROUP 2 (
          '+DATA/RPT12C/ONLINELOG/group_2.263.839886709',
          '+RECOV/RPT12C/ONLINELOG/group_2.258.839886709'
        ) SIZE 50M BLOCKSIZE 512,
        GROUP 3 (
      . . .