Skip to content

ASM Backup and Restore Metadata

    ASMCMD md_backup and md_restore are used for ASM Backup and Restore. The md_backup command creates a backup file containing metadata for one or more disk groups. By default all the mounted disk groups are included in the backup file which is saved in the current working directory.

    Create FRA

    [[email protected] ~]# oracleasm createdisk fra1 /dev/sdh1
    
    [[email protected] ~]$ sqlplus  / as sysasm
    SQL> create diskgroup FRA external redundancy disk 'ORCL:FRA1';
    SQL> select max(free_mb) from v$asm_disk;
    
    MAX(FREE_MB)
    
    ------------
          49101
    
    SQL> alter system set db_recovery_file_dest='+FRA';
    
    SQL> alter system set db_recovery_file_dest_size='49101M';

    Create Backup of ASM Metadata

    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 the disk group option. 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/dgbackup20090716 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
    
    ASMCMD> md_backup /u01/asm_data.bkp -G 'DATA'
    Disk group metadata to be backed up: DATA
    Current alias directory path: ORCL_ASM/TEMPFILE
    Current alias directory path: ORCL_ASM/CONTROLFILE
    Current alias directory path: ASM/ASMPARAMETERFILE
    Current alias directory path: ORCL_ASM/PARAMETERFILE
    Current alias directory path: ASM
    Current alias directory path: ORCL_ASM/DATAFILE
    Current alias directory path: ORCL_ASM
    Current alias directory path: ORCL_ASM/ONLINELOG

    Create RMAN Backup

    RMAN> configure controlfile autobackup on;
    
    
    new RMAN configuration parameters:
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    
    new RMAN configuration parameters are successfully stored
    RMAN> backup as compressed backupset database plus archivelog;
    
    
    Starting backup at 26-MAR-13
    current log archived
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting compressed archived log backup set
    channel ORA_DISK_1: specifying archived log(s) in backup set
    input archived log thread=1 sequence=15 RECID=1 STAMP=811083089
    input archived log thread=1 sequence=16 RECID=2 STAMP=811083100
    input archived log thread=1 sequence=17 RECID=3 STAMP=811083119
    channel ORA_DISK_1: starting piece 1 at 26-MAR-13
    channel ORA_DISK_1: finished piece 1 at 26-MAR-13
    piece handle=+FRA/orcl_asm/backupset/2013_03_26/annnf0_tag20130326t125159_0.262.811083121 tag=TAG20130326T125159 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
    Finished backup at 26-MAR-13
    Starting backup at 26-MAR-13
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting compressed full datafile backup set
    channel ORA_DISK_1: specifying datafile(s) in backup set
    input datafile file number=00001 name=+DATA/orcl_asm/datafile/system.256.811010051
    input datafile file number=00002 name=+DATA/orcl_asm/datafile/sysaux.257.811010053
    input datafile file number=00005 name=+DATA/orcl_asm/datafile/example.269.811010553
    input datafile file number=00003 name=+DATA/orcl_asm/datafile/undotbs1.258.811010055
    input datafile file number=00004 name=+DATA/orcl_asm/datafile/users.259.811010055
    channel ORA_DISK_1: starting piece 1 at 26-MAR-13
    channel ORA_DISK_1: finished piece 1 at 26-MAR-13
    piece handle=+FRA/orcl_asm/backupset/2013_03_26/nnndf0_tag20130326t125204_0.263.811083127 tag=TAG20130326T125204 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:01:55
    Finished backup at 26-MAR-13
    
    Starting backup at 26-MAR-13
    current log archived
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting compressed archived log backup set
    channel ORA_DISK_1: specifying archived log(s) in backup set
    input archived log thread=1 sequence=18 RECID=4 STAMP=811083240
    channel ORA_DISK_1: starting piece 1 at 26-MAR-13
    channel ORA_DISK_1: finished piece 1 at 26-MAR-13
    piece handle=+FRA/orcl_asm/backupset/2013_03_26/annnf0_tag20130326t125400_0.265.811083241 tag=TAG20130326T125400 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
    Finished backup at 26-MAR-13
    Starting Control File and SPFILE Autobackup at 26-MAR-13
    piece handle=+FRA/orcl_asm/autobackup/2013_03_26/s_811083241.266.811083245 comment=NONE
    Finished Control File and SPFILE Autobackup at 26-MAR-13

    Simulate Failover of ASM Diskgroup

    --For Testing
    SQL>  alter diskgroup DATA DISMOUNT FORCE;
    
    Diskgroup altered.
    
    SQL> drop diskgroup DATA FORCE INCLUDING CONTENTS;
    Diskgroup dropped.
    
    SQL>

    Restore ASM Metadata

    ASMCMD> help md_restore
    
           md_restore
           This command restores a disk group metadata backup.
           md_restore backup_file [--silent][--full|--nodg|--newdg -o 'old_diskgroup:new_diskgroup [,...]'][-S sql_script_file] [-G 'diskgroup [,diskgroup...]']
    
           The options for the md_restore command are described below.
           backup_file             - Reads the metadata information from
                                     backup_file.
           --silent                - Ignore errors. Normally, if md_restore
                                     encounters an error, it will stop.
    
                                     Specifying this flag ignores any errors.
           --full                  - Specifies to create a disk group and restore
                                     metadata.
           --nodg                  - Specifies to restore metadata only.
           --newdg -o old_diskgroup:new_diskgroup  - Specifies to create a disk
                                     group with a different name when restoring
                                     metadata. The -o option is required
                                     with --newdg.
           -S sql_script_file      - Write SQL commands to the specified SQL
                                     script file instead of executing the commands.
           -G diskgroup            - Select the disk groups to be restored.
                                     If no disk groups are defined, then all
                                     disk groups will be restored.
    
    
           The first example restores the disk group DATA from the backup script
    
           and creates a copy. The second example takes an existing disk group
           DATA and restores its metadata. The third example restores disk group
           DATA completely but the new disk group that is created is called DATA2.
           The fourth example restores from the backup file after applying the
           overrides defined in the override.sql script file
    
           ASMCMD [+] > md_restore --full -G data --silent /tmp/dgbackup20090714
    
           ASMCMD [+] > md_restore --nodg -G data --silent /tmp/dgbackup20090714
           ASMCMD [+] > md_restore --newdg -o 'data:data2' --silent /tmp/dgbackup20090714
           ASMCMD [+] > md_restore -S override.sql --silent /tmp/dgbackup20090714
    ASMCMD> md_restore /u01/asm_data.bkp --full
    
    Current Diskgroup metadata being restored: DATA
    Diskgroup DATA created!
    System template XTRANSPORT modified!
    System template ONLINELOG modified!
    System template DATAGUARDCONFIG modified!
    System template AUTOBACKUP modified!
    System template TEMPFILE modified!
    System template OCRFILE modified!
    System template ARCHIVELOG modified!
    System template DUMPSET modified!
    System template CONTROLFILE modified!
    System template BACKUPSET modified!
    System template ASMPARAMETERFILE modified!
    System template FLASHBACK modified!
    System template PARAMETERFILE modified!
    System template FLASHFILE modified!
    System template DATAFILE modified!
    System template CHANGETRACKING modified!
    Directory +DATA/ASM re-created!
    Directory +DATA/ORCL_ASM re-created!
    Directory +DATA/ASM/ASMPARAMETERFILE re-created!
    Directory +DATA/ORCL_ASM/PARAMETERFILE re-created!
    Directory +DATA/ORCL_ASM/CONTROLFILE re-created!
    
    Directory +DATA/ORCL_ASM/ONLINELOG re-created!
    Directory +DATA/ORCL_ASM/TEMPFILE re-created!
    Directory +DATA/ORCL_ASM/DATAFILE re-created!

    Restore Database

    [[email protected] ~]$ srvctl stop database -d orcl_asm
    
    
    RMAN> startup nomount;
    
    startup failed: ORA-01078: failure in processing system parameters
    
    ORA-01565: error in identifying file '+DATA/orcl_asm/spfileorcl.ora'
    ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl_asm/spfileorcl.ora
    ORA-15056: additional error message
    ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl_asm/spfileorcl.ora
    ORA-15173: entry 'spfileorcl.ora' does not exist in directory 'orcl_asm'
    ORA-06512: at line 4
    starting Oracle instance without parameter file for retrieval of spfile
    Oracle instance started
    
    Total System Global Area     158662656 bytes
    
    Fixed Size                     2226456 bytes
    Variable Size                117442280 bytes
    Database Buffers              33554432 bytes
    Redo Buffers                   5439488 bytes
    
    
    RMAN> restore spfile from '+FRA/orcl_asm/autobackup/2013_03_26/s_811083241.266.811083245';
    
    
    Starting restore at 26-MAR-13
    using channel ORA_DISK_1
    
    channel ORA_DISK_1: restoring spfile from AUTOBACKUP +FRA/orcl_asm/autobackup/2013_03_26/s_811083241.266.811083245
    channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
    Finished restore at 26-MAR-13
    
    RMAN> shutdown abort;
    Oracle instance shut down
    RMAN> exit
    
    [[email protected] ~]$ rman target /
    
    
    Recovery Manager: Release 11.2.0.3.0 - Production on Tue Mar 26 13:33:07 2013
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    connected to target database (not started)
    
    RMAN> startup mount;
    
    Oracle instance started
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    
    RMAN-00571: ===========================================================
    RMAN-03002: failure of startup command at 03/26/2013 13:33:16
    ORA-00205: error in identifying control file, check alert log for more info
    
    
    RMAN> restore controlfile from '+FRA/orcl_asm/autobackup/2013_03_26/s_811083241.266.811083245';
    
    
    Starting restore at 26-MAR-13
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=178 device type=DISK
    channel ORA_DISK_1: restoring control file
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
    output file name=+DATA/orcl_asm/controlfile/current.257.811085687
    output file name=+DATA/orcl_asm/controlfile/current.258.811085689
    Finished restore at 26-MAR-13
    
    RMAN> alter database mount;
    
    RMAN> run { restore database; recover database; };
    RMAN> sql ‘ alter database open resetlogs’;

    For More Information Check Oracle Help Center:

    md_backup and md_restore