ITPub博客

首页 > 数据库 > Oracle > 零宕机时间迁移 ASM 磁盘组到另一个 SAN/磁盘阵列/DAS 的准确步骤

零宕机时间迁移 ASM 磁盘组到另一个 SAN/磁盘阵列/DAS 的准确步骤

原创 Oracle 作者:pxbibm 时间:2015-01-22 13:31:09 0 删除 编辑

本文详述了在零宕机时间的前提下将 ASM 磁盘组从一个存储设备(SAN/磁盘阵列/DAS等)迁移到另一个存储设备(SAN/磁盘阵列/DAS等)的准确步骤。此过程也适用于存放 OCR、表决磁盘和 ASM spfile 的磁盘组。

操作步骤
如果你您计划将你您的磁盘组从当前的磁盘迁移到新的存储上,此操作过程能没有没有任何停机时间地实现它。请按照如下步骤:

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) 使用下面文档中的方法验证所有新磁盘:

请参考上一篇文章《 》  
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。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12798004/viewspace-1410771/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: SQL调优真实案例
请登录后发表评论 登录
全部评论
【DBAplus社群】联合发起人。ACOUG核心成员,Oracle用户组年轻专家。熟悉Oracle的体系结构,擅长Oracle数据库架构规划、SQL优化、OWI方面性能的优化。曾服务于航天、航空、机车、大型制造行业数据库的维护以及系统开发工作,开发过基于Oracle数据库的大型ERP系统。
  • 博文量
    341
  • 访问量
    2469814