联系:手机/微信(+86 17813235971) QQ(107644445)
标题:asm备份元数据之md_backup和md_restore
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
在11g的asm中增加了md_backup和md_restore命令,用来备份和还原asm的元数据信息
当前磁盘组相关信息
SQL> select PATH,b.NAME from v$asm_disk a,v$asm_diskgroup b where a.GROUP_NUMBER=b.GROUP_NUMBER; PATH NAME ---------------------------------------- ---------- /dev/oracleasm/disks/VOL2 DATA /dev/oracleasm/disks/VOL1 DATA /dev/oracleasm/disks/VOL4 XIFENFEI /dev/oracleasm/disks/VOL3 XIFENFEI
md_backup操作
--备份所有mount磁盘组 ASMCMD> md_backup /tmp/xifenfei.md Disk group metadata to be backed up: DATA Disk group metadata to be backed up: XIFENFEI Current alias directory path: XFF/ARCHIVELOG Current alias directory path: XFF/ARCHIVELOG/2012_04_30 Current alias directory path: XFF/ONLINELOG Current alias directory path: rac-cluster/OCRFILE Current alias directory path: XFF/ARCHIVELOG/2012_05_01 Current alias directory path: XFF/CONTROLFILE Current alias directory path: XFF/ARCHIVELOG/2012_04_13 Current alias directory path: rac-cluster/ASMPARAMETERFILE Current alias directory path: rac-cluster Current alias directory path: XFF Current alias directory path: XFF/ARCHIVELOG/2012_03_03 Current alias directory path: XFF/PARAMETERFILE Current alias directory path: XFF/DATAFILE Current alias directory path: ASM/DATAFILE Current alias directory path: XFF/CONTROLFILE Current alias directory path: XFF Current alias directory path: XFF/ONLINELOG Current alias directory path: XFF/TEMPFILE Current alias directory path: ASM --备份指定磁盘组 ASMCMD> md_backup /tmp/xifenfei_data.md -G DATA Disk group metadata to be backed up: DATA Current alias directory path: XFF/ARCHIVELOG/2012_03_03 Current alias directory path: XFF/CONTROLFILE Current alias directory path: XFF/ARCHIVELOG/2012_05_01 Current alias directory path: XFF/ARCHIVELOG Current alias directory path: rac-cluster/OCRFILE Current alias directory path: XFF/ARCHIVELOG/2012_05_24 Current alias directory path: XFF/ONLINELOG Current alias directory path: XFF/ARCHIVELOG/2012_04_30 Current alias directory path: rac-cluster/ASMPARAMETERFILE Current alias directory path: rac-cluster Current alias directory path: XFF Current alias directory path: XFF/ARCHIVELOG/2012_04_13
md_restore操作
--生产sql文件(未执行) ASMCMD> md_restore -S /tmp/get_dg_sql -G data /tmp/xifenfei_data.md Current Diskgroup metadata being restored: DATA 破坏XIFENFEI磁盘组中的其中一个asm disk(/dev/oracleasm/disks/VOL3) [root@rac1 tmp]# dd if=/dev/zero of=/dev/sdb1 bs=4096 count=1 1+0 records in 1+0 records out 4096 bytes (4.1 kB) copied, 4.8629e-05 seconds, 84.2 MB/s --尝试还原磁盘组(操作单位是磁盘组) ASMCMD> md_restore /tmp/xifenfei.md --silent -G xifenfei Current Diskgroup metadata being restored: XIFENFEI ASMCMD-9352: CREATE DISKGROUP failed ORA-15018: diskgroup cannot be created ORA-15033: disk /dev/oracleasm/disks/VOL4 belongs to diskgroup "XIFENFEI" (DBD ERROR: OCIStmtExecute) --如果一个磁盘组中某个asm disk 出了问题,这种方法不能生效,甚至需要先dd 处理掉所有该磁盘组中的asm disk
总结说明
md_backup和md_restore是磁盘组级别的备份和还原,如果一个磁盘组的某个asm disk出现问题,使用这对命令解决起来还是很麻烦,甚至根本不可行(因为代价太大:要删除该磁盘组其他asm disk header,然后要重新还原所有数据文件),这样的情景下dd或者kfed的备份还是非常有必要,ASM DISK HEADER 备份与恢复.如果是一个磁盘组都损坏,需要还原磁盘组,这个时候这个命令非常的完美(至少比起dd和kfed方便很多).md_backup/md_restore和dd与kfed是互补的命令,而不是md_backup/md_restore出现使得dd和kfed在asm元数据的备份恢复上就没有用武之地.
md_backup和md_restore命令说明
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> 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/dgbackup20090714md_backup生成data磁盘组备份元数据信息
[root@rac1 tmp]# more xifenfei_data.md @diskgroup_set = ( { 'ATTRINFO' => { '_._DIRVERSION' => '11.2.0.0.0', 'COMPATIBLE.ASM' => '11.2.0.0.0', 'COMPATIBLE.RDBMS' => '10.1.0.0.0' }, 'DISKSINFO' => { 'DATA_0001' => { 'DATA_0001' => { 'TOTAL_MB' => '1262', 'FAILGROUP' => 'DATA_0001', 'NAME' => 'DATA_0001', 'DGNAME' => 'DATA', 'PATH' => '/dev/oracleasm/disks/VOL2' } }, 'DATA_0000' => { 'DATA_0000' => { 'TOTAL_MB' => '784', 'FAILGROUP' => 'DATA_0000', 'NAME' => 'DATA_0000', 'DGNAME' => 'DATA', 'PATH' => '/dev/oracleasm/disks/VOL1' } } }, 'DGINFO' => { 'DGTORESTORE' => 0, 'DGCOMPAT' => '11.2.0.0.0', 'DGNAME' => 'DATA', 'DGDBCOMPAT' => '10.1.0.0.0', 'DGTYPE' => 'EXTERN', 'DGAUSZ' => '1048576' }, 'ALIASINFO' => { '6' => { 'DGNAME' => 'DATA', 'LEVEL' => 1, 'ALIASNAME' => 'XFF/CONTROLFILE', 'REFERENCE_INDEX' => '16777481' }, '11' => { 'DGNAME' => 'DATA', 'LEVEL' => 2, 'ALIASNAME' => 'XFF/ARCHIVELOG/2012_03_03', 'REFERENCE_INDEX' => '16777640' }, '3' => { 'DGNAME' => 'DATA', 'LEVEL' => 1, 'ALIASNAME' => 'XFF/ARCHIVELOG', 'REFERENCE_INDEX' => '16777587' }, '7' => { 'DGNAME' => 'DATA', 'LEVEL' => 2, 'ALIASNAME' => 'XFF/ARCHIVELOG/2012_05_24', 'REFERENCE_INDEX' => '16777852' }, '9' => { 'DGNAME' => 'DATA', 'LEVEL' => 2, 'ALIASNAME' => 'XFF/ARCHIVELOG/2012_04_30', 'REFERENCE_INDEX' => '16777746' }, '2' => { 'DGNAME' => 'DATA', 'LEVEL' => 1, 'ALIASNAME' => 'rac-cluster/ASMPARAMETERFILE', 'REFERENCE_INDEX' => '16777322' }, '8' => { 'DGNAME' => 'DATA', 'LEVEL' => 2, 'ALIASNAME' => 'XFF/ARCHIVELOG/2012_05_01', 'REFERENCE_INDEX' => '16777799' }, '1' => { 'DGNAME' => 'DATA', 'LEVEL' => 0, 'ALIASNAME' => 'XFF', 'REFERENCE_INDEX' => '16777428' }, '4' => { 'DGNAME' => 'DATA', 'LEVEL' => 1, 'ALIASNAME' => 'XFF/ONLINELOG', 'REFERENCE_INDEX' => '16777534' }, '0' => { 'DGNAME' => 'DATA', 'LEVEL' => 0, 'ALIASNAME' => 'rac-cluster', 'REFERENCE_INDEX' => '16777269' }, '10' => { 'DGNAME' => 'DATA', 'LEVEL' => 2, 'ALIASNAME' => 'XFF/ARCHIVELOG/2012_04_13', 'REFERENCE_INDEX' => '16777693' }, '5' => { 'DGNAME' => 'DATA', 'LEVEL' => 1, 'ALIASNAME' => 'rac-cluster/OCRFILE', 'REFERENCE_INDEX' => '16777375' } }, 'TEMPLATEINFO' => { '6' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'XTRANSPORT', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '11' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'ONLINELOG', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '3' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'DATAGUARDCONFIG', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '7' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'AUTOBACKUP', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '9' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'TEMPFILE', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '12' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'ARCHIVELOG', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '2' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'OCRFILE', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '14' => { 'DGNAME' => 'DATA', 'STRIPE' => 'FINE', 'TEMPNAME' => 'CONTROLFILE', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '15' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'DUMPSET', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '8' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'BACKUPSET', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '4' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'FLASHBACK', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '1' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'ASMPARAMETERFILE', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '0' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'PARAMETERFILE', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '10' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'DATAFILE', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '13' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'FLASHFILE', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' }, '5' => { 'DGNAME' => 'DATA', 'STRIPE' => 'COARSE', 'TEMPNAME' => 'CHANGETRACKING', 'REDUNDANCY' => 'UNPROT', 'SYSTEM' => 'Y' } } } );data磁盘组生成sql语句信息