4.5.2 备份ASM元数据

备份在一个或多个ASM磁盘组(应该使用ASM,除非有很好的理由不这么做)中存储的数据库文件是确保可恢复性的最重要的操作,并且确保了在发生介质故障时,ASM磁盘组的结构会保留。如果没有元数据备份文件,就必须手动重新创建磁盘组,然后才能在一个或多个数据文件上执行还原和恢复操作。即使是相对简单的磁盘组配置(例如DATA和RECOV),恢复操作的时间也会因之增加许多。

为了执行ASM元数据备份,需要在asmcmd实用程序中使用md_backup命令。使用md_backup命令的-G选项可导出特定磁盘组的元数据。本例中,连接到ASM实例,并将所有已装载磁盘组的元数据导出到/home/oracle/asm_config.out

        [oracle@tettnang ~]$ . oraenv
        ORACLE_SID = [RPT12C] ? +ASM
        The Oracle base remains unchanged with value /u00/app/oracle
        [oracle@tettnang ~]$ asmcmd
        ASMCMD> md_backup /home/oracle/asm_config.out
        Disk group metadata to be backed up: RECOV
        Disk group metadata to be backed up: DATA
        Current alias directory path: RPT12C/CONTROLFILE
        Current alias directory path: RPT12C/BACKUPSET/2014_02_18
        Current alias directory path: RPT12C
        . . .
        Current alias directory path: XSAH2014/TEMPFILE
        Current alias directory path: ASM/PASSWORD
        Current alias directory path: RPT12C/CONTROLFILE
        Current alias directory path: XSAH2014/PARAMETERFILE
        Current alias directory path: RCAT/ONLINELOG
        Current alias directory path: DWCDB
        Current alias directory path: RCAT/CONTROLFILE
        ASMCMD>

在文件asm_config.out中可以看到以下内容:

        @diskgroup_set = (
                        {
                          'ATTRINFO' => {
                                        '_._DIRVERSION' => '12.1.0.0.0',
                                        'COMPATIBLE.ASM' => '12.1.0.0.0',
                                        'PHYS_META_REPLICATED' => 'true',
                                        'COMPATIBLE.RDBMS' => '10.1.0.0.0'
                                      },
                          'DISKSINFO' => {
                                        'RECOV_0000' => {
                                                        'RECOV_0000' => {
      'TOTAL_MB' => '51199',
      'FAILGROUP' => 'RECOV_0000',
      'NAME' => 'RECOV_0000',
      'DGNAME' => 'RECOV',
      'PATH' => '/dev/oracleasm/disks/ASM05'
        . . .
                                                  },
                                          '5' => {
                                                  'DGNAME' => 'DATA',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' =>
      'AUTOLOGIN_KEY_STORE',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                }
                                         }
                        }
                      );

虽然这个ASM配置中存储的数据库集合相对较小,但是已经可以看到,执行元数据备份要比从头重新创建配置简单许多。