【MOS】零宕机时间迁移 ASM 磁盘组到另一个 SAN/磁盘阵列/DAS 的准确步骤 (文档 ID 1946664.1)
文档内容
目标 |
提问,获得帮助,并分享您对于这篇文档的经验。 |
解决方案 |
参考 |
适用于:
Oracle Database - Enterprise Edition - 版本 10.2.0.1 到 11.2.0.4 [发行版 10.2 到 11.2]
本文档所含信息适用于所有平台
目标
本文详述了在零宕机时间的前提下将 ASM 磁盘组从一个存储设备(SAN/磁盘阵列/DAS等)迁移到另一个存储设备(SAN/磁盘阵列/DAS等)的准确步骤。此过程也适用于存放 OCR、表决磁盘和 ASM spfile 的磁盘组。
提问,获得帮助,并分享您对于这篇文档的经验。
您是否希望与其他 Oracle 客户、Oracle 员工和业内专家进一步探讨此主题?
请点击这里进入 Oracle 社区(中文)。
请点击这里进入 My Oracle Support 社区的数据库安装/升级(英文)主页发现更多的话题和讨论。
解决方案
如果你您计划将你您的磁盘组从当前的磁盘迁移到新的存储上,此操作过程能没有没有任何停机时间地实现它。请按照如下步骤:
1) 备份所有数据库并检验备份有效性(为保护数据所必须)。
2) 增加新的路径(新存储的新磁盘)到 asm_diskstring 以供 ASM 识别:
例如:
SQL> alter system set asm_diskstring = '/dev/emcpowerc*' , '/dev/emcpowerh*';
这里: '/dev/emcpowerc*' 是当前的磁盘。
这里: '/dev/emcpowerh*' 是新的磁盘。
3) 确认新磁盘被 ASM 识别:
SQL> select path from v$asm_disk;
4) 使用下面文档中的方法验证所有新磁盘:
How To Add a New Disk(s) to An Existing Diskgroup on RAC Cluster or Standalone ASM Configuration (Best Practices). (Doc ID557348.1)
5) 增加新磁盘到目标磁盘组:
SQL> alter diskgroup add disk
‘’,
‘’,
‘’,
‘’,
.
.
.
‘’ rebalance power <#>;
6) 接下来等待重平衡操作完成:
SQL> select * from v$asm_operation;
SQL> select * from gv$asm_operation;
7) 最后,移除旧磁盘:
SQL> alter diskgroup drop disk
,
,
,
,
.
.
.
rebalance power <#>;
8) 接下来等待重平衡操作完成:
SQL> select * from v$asm_operation;
SQL> select * from gv$asm_operation;
9) 至此,你您的 ASM 磁盘组和数据库已经迁移到了新的存储上面。
注: 或者,我们也可以按照如下命令,将加盘,删盘放在一个操作里执行,这种方式只会发生一次重平衡操作:
SQL> alter diskgroup
add disk '', .., ''
drop disk , , ..,
rebalance power <#>;
这样会比使用分开的命令(加盘和删盘语句)高效许多。
注1:因为在 10g 版本(如果驱逐磁盘时发生了某些错误,比如 hang)ASM 不会去自动重启重平衡操作(这个已经在 11g 和 12c 版本得到增强),所以需要做一个手工的重平衡操作。手工启动重平衡的命令如下:
SQL> alter diskgroup rebalance power 11;
注2:一旦 drop 磁盘发起的重平衡操作完成,来自旧的 SAN/磁盘阵列/DAS 中的磁盘最终要从磁盘组中驱逐出去,此时在 v$asm_disk 视图中这些磁盘的记录为 HEADER_STATUS = FORMER。
参考
NOTE:1918350.1
- Exact Steps to Migrate ASM Diskgroups to Another SAN/Disk-Array/DAS/Etc without Downtime (When ASMLIB Devices Are Involved)
NOTE:557348.1
- How To Add a New Disk(s) to An Existing Diskgroup on RAC Cluster or Standalone ASM Configuration (Best Practices).