eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Data Architecture - 韩国数据库同仁的探索 | Blog首页 | Eygle.com IE 9 与 Firefox 4.0 用户对比 »

ASM元数据备份与恢复:md_backup和md_restore
modb.pro

在Oracle Database 11gR2 中,asmcmd有了大量的改进和增强,即使11.2.0.2和11.2.0.1比较,也有很多不同。

在ASM元数据的备份与恢复方面,Oracle增加了两个命令:md_backup 和 md_restore。
md 是 metadata的缩写,这一工具极大的简化了ASM的元数据维护。

在asmcmd中,通过help md_backup可以看到详细的命令提示:
ASMCMD> help md_backup
        md_backup

        The md_backup command creates a backup file containing metadata
        for one or more disk groups.
        Volume and Oracle Automatic Storage Management Cluster File System
        (Oracle ACFS) file system information is not backed up.

        md_backup backup_file [-G diskgroup [,diskgroup,...]]

        The options for the md_backup command are described below.

        backup_file     - Specifies the backup file in which you want to
                          store the metadata.
        -G diskgroup    - Specifies the disk group name of the disk group
                          that must be backed up

        By default all the mounted disk groups are included in the backup file,
        which is saved in the current working directory.

        The first example shows the use of the backup command when you run it
        without options. This example backs up all of the mounted disk groups
        and creates the backup image in the current working directory. The
        second example creates a backup of disk group DATA and FRA. The backup
        that this example creates is saved in the /tmp/dgbackup20090714 file.

        ASMCMD [+] > md_backup /tmp/dgbackup20090716
        ASMCMD [+] > md_backup /tmp/dgbackup20090716 -G DATA,FRA
        Disk group metadata to be backed up: DATA
        Disk group metadata to be backed up: FRA
        Current alias directory path: ASM/ASMPARAMETERFILE
        Current alias directory path: ORCL/DATAFILE
        Current alias directory path: ORCL/TEMPFILE
        Current alias directory path: ORCL/CONTROLFILE
        Current alias directory path: ORCL/PARAMETERFILE
        Current alias directory path: ASM
        Current alias directory path: ORCL/ONLINELOG
        Current alias directory path: ORCL
        Current alias directory path: ORCL/CONTROLFILE
        Current alias directory path: ORCL/ARCHIVELOG/2009_07_13
        Current alias directory path: ORCL/BACKUPSET/2009_07_14
        Current alias directory path: ORCL/ARCHIVELOG/2009_07_14
        Current alias directory path: ORCL
        Current alias directory path: ORCL/DATAFILE
        Current alias directory path: ORCL/ARCHIVELOG
        Current alias directory path: ORCL/BACKUPSET
        Current alias directory path: ORCL/ONLINELOG
现在backup_file是一个需要强制制定的参数,以下命令备份了ASM中所有的磁盘组元数据:

ASMCMD> md_backup /tmp/oradgbackup20110322
Disk group metadata to be backed up: ACFSG
Disk group metadata to be backed up: CRSDG
Disk group metadata to be backed up: ORADG
Current alias directory path: EYGLE/ONLINELOG
Current alias directory path: EYGLE
Current alias directory path: EYGLE/CONTROLFILE
Current alias directory path: ASM
Current alias directory path: EYGLE/PARAMETERFILE
Current alias directory path: EYGLE/CONTROLFILE
Current alias directory path: EYGLE/TEMPFILE
Current alias directory path: EYGLE/DATAFILE
Current alias directory path: EYGLE
Current alias directory path: EYGLE/ONLINELOG
Current alias directory path: ASM/ASMPARAMETERFILE

也可以制定备份特定的磁盘组信息:
ASMCMD> md_backup /tmp/oradgbackup20110323 -G ORADG
Disk group metadata to be backed up: ORADG

备份以文本格式记录了磁盘组的参数信息:
[grid@enmou1 ~]$ more /tmp/oradgbackup20110323
@diskgroup_set = (
                   {
                     'ATTRINFO' => {
                                     '_._DIRVERSION' => '11.2.0.0.0',
                                     'COMPATIBLE.ASM' => '11.2.0.0.0',
                                     'COMPATIBLE.RDBMS' => '10.1.0.0.0'
                                   },
                     'DISKSINFO' => {
                                      'VOL3' => {
                                                  'VOL3' => {
                                                              'TOTAL_MB' => '9687',
                                                              'FAILGROUP' => 'VOL3',
                                                              'NAME' => 'VOL3',
                                                              'DGNAME' => 'ORADG',
                                                              'PATH' => 'ORCL:VOL3'
                                                            }
                                                }
                                    },
                     'DGINFO' => {
                                   'DGTORESTORE' => 0,
                                   'DGCOMPAT' => '11.2.0.0.0',
                                   'DGNAME' => 'ORADG',
                                   'DGDBCOMPAT' => '10.1.0.0.0',
                                   'DGTYPE' => 'EXTERN',
                                   'DGAUSZ' => '1048576'
                                 },
                     'ALIASINFO' => {},
                     'TEMPLATEINFO' => {
                                         '6' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'ONLINELOG',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '11' => {
                                                   'DGNAME' => 'ORADG',
                                                   'STRIPE' => 'COARSE',
                                                   'TEMPNAME' => 'AUTOBACKUP',
                                                   'REDUNDANCY' => 'UNPROT',
                                                   'SYSTEM' => 'Y'
                                                 },
                                         '3' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'FINE',
                                                  'TEMPNAME' => 'CONTROLFILE',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '7' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'DATAGUARDCONFIG',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '9' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'CHANGETRACKING',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '12' => {
                                                   'DGNAME' => 'ORADG',
                                                   'STRIPE' => 'COARSE',
                                                   'TEMPNAME' => 'BACKUPSET',
                                                   'REDUNDANCY' => 'UNPROT',
                                                   'SYSTEM' => 'Y'
                                                 },
                                         '2' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'DUMPSET',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '14' => {
                                                   'DGNAME' => 'ORADG',
                                                   'STRIPE' => 'COARSE',
                                                   'TEMPNAME' => 'DATAFILE',
                                                   'REDUNDANCY' => 'UNPROT',
                                                   'SYSTEM' => 'Y'
                                                 },
                                         '15' => {
                                                   'DGNAME' => 'ORADG',
                                                   'STRIPE' => 'COARSE',
                                                   'TEMPNAME' => 'ASMPARAMETERFILE',
                                                   'REDUNDANCY' => 'UNPROT',
                                                   'SYSTEM' => 'Y'
                                                 },
                                         '8' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'FLASHBACK',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '4' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'FLASHFILE',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '1' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'OCRFILE',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '0' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'PARAMETERFILE',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                },
                                         '10' => {
                                                   'DGNAME' => 'ORADG',
                                                   'STRIPE' => 'COARSE',
                                                   'TEMPNAME' => 'XTRANSPORT',
                                                   'REDUNDANCY' => 'UNPROT',
                                                   'SYSTEM' => 'Y'
                                                 },
                                         '13' => {
                                                   'DGNAME' => 'ORADG',
                                                   'STRIPE' => 'COARSE',
                                                   'TEMPNAME' => 'TEMPFILE',
                                                   'REDUNDANCY' => 'UNPROT',
                                                   'SYSTEM' => 'Y'
                                                 },
                                         '5' => {
                                                  'DGNAME' => 'ORADG',
                                                  'STRIPE' => 'COARSE',
                                                  'TEMPNAME' => 'ARCHIVELOG',
                                                  'REDUNDANCY' => 'UNPROT',
                                                  'SYSTEM' => 'Y'
                                                }
                                       }
                   }
                 );

通过这些信息,就可以在磁盘组损坏时,快速恢复ASM的元数据。
恢复在磁盘组可用状态下不允许执行:
ASMCMD> md_restore --full -G oradg /tmp/oradgbackup20110323
Current Diskgroup metadata being restored: ORADG
ASMCMD-09352: CREATE DISKGROUP failed
ORA-15018: diskgroup cannot be created
ORA-15030: diskgroup name "ORADG" is in use by another diskgroup (DBD ERROR: OCIStmtExecute)
以下是在DROP了ORADG之后,执行恢复的全过程,恢复完成以后,磁盘组被创建,模板信息被还原:
ASMCMD> md_restore --full -G oradg /tmp/oradgbackup20110323
Current Diskgroup metadata being restored: ORADG
Diskgroup ORADG created!
System template ONLINELOG modified!
System template AUTOBACKUP modified!
System template CONTROLFILE modified!
System template DATAGUARDCONFIG modified!
System template CHANGETRACKING modified!
System template DUMPSET modified!
System template BACKUPSET modified!
System template ASMPARAMETERFILE modified!
System template DATAFILE modified!
System template FLASHBACK modified!
System template OCRFILE modified!
System template FLASHFILE modified!
System template PARAMETERFILE modified!
System template TEMPFILE modified!
System template XTRANSPORT modified!
System template ARCHIVELOG modified!

通过-S参数可以仅生成恢复脚本,不执行恢复动作:
ASMCMD> md_restore -S create_oradg.sql /tmp/oradgbackup20110323
Current Diskgroup metadata being restored: ORADG
以下是ORADG磁盘组恢复时执行的命令:
[grid@enmou1 ~]$ more create_oradg.sql
create diskgroup ORADG EXTERNAL redundancy  disk 'ORCL:VOL3' name VOL3 size 9687M attribute 'compatible.asm' = '11.2.0.0.0', 'compatible.r
dbms' = '10.1.0.0.0';
alter diskgroup /*ASMCMD AMBR*/ORADG set attribute '_._DIRVERSION' = '11.2.0.0.0';
alter diskgroup /*ASMCMD AMBR*/ORADG alter template ONLINELOG attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template AUTOBACKUP attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template CONTROLFILE attributes (UNPROTECTED FINE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template DATAGUARDCONFIG attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template CHANGETRACKING attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template DUMPSET attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template BACKUPSET attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template ASMPARAMETERFILE attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template DATAFILE attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template FLASHBACK attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template OCRFILE attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template FLASHFILE attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template PARAMETERFILE attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template TEMPFILE attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template XTRANSPORT attributes (UNPROTECTED COARSE);
alter diskgroup /*ASMCMD AMBR*/ORADG alter template ARCHIVELOG attributes (UNPROTECTED COARSE);

ASMCMD的新增命令极多,以下是命令列表:
ASMCMD> help

            asmcmd [-V] [-v <errors|warnings|normal|info|debug>] [--privilege <sysasm|sysdba>] [-p] [command]
asmcmd_no_conn_str

        Starts asmcmd or executes the command

        asmcmd [-V] [-v <errors|warnings|normal|info|debug>] [--privilege <sysasm|sysdba>] [-p] [command]

        The environment variables ORACLE_HOME and ORACLE_SID determine the
        instance to which the program connects, and ASMCMD establishes a
        bequeath connection to it, in the same manner as a SQLPLUS / AS
        SYSASM.  The user must be a member of the OSASM group.

        Specifying the -V option prints the asmcmd version number and
        exits immediately.

        Specifying the -v option prints extra information that can help
        advanced users diagnose problems.

        Specify the --privilege option to choose the type of connection. There are
        only two possibilities: connecting as SYSASM or as SYSDBA.
        The default value if this option is unspecified is SYSASM.

        Specifying the -p option allows the current directory to be displayed
        in the command prompt, like so:

        ASMCMD [+DATA/ORCL/CONTROLFILE] >

        [command] specifies one of the following commands, along with its
        parameters.

        Type "help [command]" to get help on a specific ASMCMD command.';

        commands:
        --------

        md_backup, md_restore

        lsattr, setattr

        cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias
        mkdir, pwd, rm, rmalias

        chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount
        offline, online, rebal, remap, umount

        dsget, dsset, lsop, shutdown, spbackup, spcopy, spget
        spmove, spset, startup

        chtmpl, lstmpl, mktmpl, rmtmpl

        chgrp, chmod, chown, groups, grpmod, lsgrp, lspwusr, lsusr
        mkgrp, mkusr, orapwusr, passwd, rmgrp, rmusr

        volcreate, voldelete, voldisable, volenable, volinfo
        volresize, volset, volstat



历史上的今天...
    >> 2012-03-22文章:
    >> 2006-03-22文章:
           Julia and Eygle
           索引 索引 还是索引
    >> 2005-03-22文章:
           人像摄影~

By eygle on 2011-03-22 18:00 | Comments (5) | Backup&Recovery | Oracle12c/11g | 2761 |

5 Comments

我的一个客户已经升级到了11.2, 可试一下.

原DG的metadata可以恢复,但是存放在DG中应用数据却全丢失了。对于ASM磁盘头损坏导致的数据不可访问,用md_backup和md_restore恢复DG的metadata之后,必须使用RMAN恢复数据库了。这一点比较让人失望。

原DG的metadata可以恢复,但是存放在DG中应用数据却全丢失了。对于ASM磁盘头损坏导致的数据不可访问,用md_backup和md_restore恢复DG的metadata之后,必须使用RMAN恢复数据库了。这一点比较让人失望。

ASM metadata损坏,很多时候发生在第1个au,即磁盘头被写乱了,例如光纤交换机故障,SAN存储网络出现“抖动”的情况下,这类故障发生频率还是蛮高的。一下子就造成数据库不可访问,业务就中断了。


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com