由于ASM的元数据存储在磁盘头上,所以其备份恢复需要区别于数据库独立进行。
在Oracle Database 10g中,如果ASM磁盘组彻底损坏,当需要从RMAN备份恢复的时候,我们必须先把以前的ASM磁盘组、需要的目录都手工创建好后才能执行恢复过程,这相当繁琐复杂。
在Oracle Database 11g里,Oracle新提供了md_backup命令来备份上述磁盘组、目录、模板等信息,恢复的时候只需要执行一下md_restore命令,那些以前需要手工创建的磁盘组、目录、模板等信息就全部创建好了。这样,用md_backup、md_restore来配合RMAN,整个备份恢复的过程将更为便捷、更为完善。
asmcmd提供了非常完善的帮助信息,在asmcmd中用help md_backup可以获得详细的输出提示。缺省的指定一个备份文件名,md_backup即可将所有元数据信息备份下来:
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复制
以下针对磁盘组ORADG执行md_backup:
ASMCMD> md_backup /tmp/oradgbackup20110323 -G ORADG Disk group metadata to be backed up: ORADG复制
这个备份文件其实就是一个记录了磁盘组ORADG的一些具体配置信息(磁盘组、磁盘、目录、磁盘属性等)的XML格式的文本文件:
@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' },复制
在磁盘组ORADG还存在的情况下是不能执行md_restore的:
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后才可以执行md_restore:
SQL> drop diskgroup ORADG; Diskgroup dropped. 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!复制
从结果里可以看到ORADG已经被成功重建:
SQL> select group_number,name,type from v$asm_diskgroup; GROUP_NUMBER NAME TYPE ------------ -------------------- ------ 1 ORADG EXTERN复制
在恢复时,也可以通过-S参数只生成恢复脚本,不执行恢复动作:
ASMCMD> md_restore -S create_oradg.sql /tmp/oradgbackup20110323 Current Diskgroup metadata being restored: 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.rdbms' = '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)复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
712次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
640次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
557次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
502次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
498次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
492次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
473次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
424次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
375次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
364次阅读
2025-05-05 19:28:36