首页 » ORACLE 9i-23c » ASM DISKGROUP Migrate to Anotherr SAN (迁移ASM到新存储)

ASM DISKGROUP Migrate to Anotherr SAN (迁移ASM到新存储)

上周刚刚做了ASM Storage的一套13T 2 Nodes 11GR2 database RAC ON AIX 从老的SAN迁移到新的SAN , 迁移的磁盘组包含了DATAFILE 和所有Clusterware 的文件(OCR andvoting disk), ORACLE ASM 的Rebalance特性使这件事情变的非常的容易,随着ASM的逐渐成熟,如果你计划做对已使用了ASM disggroup 做存储的迁移,ASM 的Rebalance 可以做为一套解决方案而且可以做到0 Downtime, 下面简单的分享这个过程。

迁移步骤

1.备份整个数据库和GI文件,并验证备份文件有效性

GI.
# ocrcheck
# crsctl query css votedisk
DB.
spfile,controlfile,datafile,logfile,tempfile,archivelog..

select d.name group_name,f.type,count(*) cnt from v$asm_file f 
    join v$asm_diskgroup d on f.group_number=d.group_number 
    group by rollup (d.name,f.type);

A 迁移GI
1, 迁移OCR

Run as Root user
# ocrconfig -add +CRSDG_NEW
# ocrconfig -delete +CRSDG

2, 迁移VotingDisk

Run as Root user
# crsctl replace votedisk +CRSDG_NEW

B ASM spfile

sqlplus / as sysasm
SQL> create pfile='/tmp/init/init' from spfile;
SQL> create spfile='+CRSDG_NEW' from pfile='/tmp/init/init';

验证

As grid user or root
$ ORACLE_HOME/bin/gpnptool get
or As grid user
$ asmcmd spget

NOTE:
12C后flex ASM同样需要迁移ASM password file.

ASMCMD> pwget --asm 
ASMCMD> pwcopy --asm +OLDDG  +NEWDG/pwdasm_bak

C 迁移DB

1, 主机挂载存储LUN

2.增加新存储磁盘路径配置asm_diskstring(ASM INSTANCE)

SQL> show parameter asm_diskstring

3.确认新存储盘可以在v$asm_disk视图中存在,检查当前的ASM DISKGROUP和ASM DISK

Disk Group Information

set pages 40000 lines 120
col NAME for a15
select GROUP_NUMBER DG#, name, ALLOCATION_UNIT_SIZE AU_SZ, STATE,
  TYPE, TOTAL_MB, FREE_MB, OFFLINE_DISKS from v$asm_diskgroup;

ASM Disk Information

col name for a20
select group_number,name,OS_MB ,TOTAL_MB,FREE_MB ,HOT_USED_MB,COLD_USED_MB,PATH ,SECTOR_SIZE from v$asm_disk order by 1;

Combined ASM Disk and ASM Diskgroup information

col PATH for a20
col DG_NAME for a15
col DG_STATE for a10
col FAILGROUP for a15
col name for a20
set lines 200 pages 10000

select dg.name dg_name, dg.state dg_state, dg.type, d.disk_number dsk_no,
d.path, d.mount_status, d.FAILGROUP,d.name, d.state 
from v$asm_diskgroup dg, v$asm_disk d
where dg.group_number=d.group_number
order by dg_name, dsk_no;

SAN LUN Information

#lsdev  -Cc   disk

4.分批替换ASM DISKGROUP 存储LUN, 以ASM DISKGROUP 为单元

5.一次增加一批新ASM Disks 空间足够替换ASM Diskgroup原有组大小(比原磁盘组多一个asmdisk),并指定初始化asm_power_limit = 5 控制ASM Rebalance 强度,根据I/O 可承

受可适当调整并行强度。

   ALTER DISKGROUP dgroup1 ADD DISK   '/devices/diskd1', '/devices/diskd2', '/devices/diskd3'   REBALANCE POWER 5 ;

6.监控ASM 增加后均衡进度(Monitoring ASM disk operations)

select GROUP_NUMBER, OPERATION, STATE, ACTUAL, SOFAR, EST_MINUTES from Gv$asm_operation;

7.等ASM Rebalance完成后,对磁盘组上个别表查询验证 ASM DISKGROUP 可读写

8.一次删除已增加新磁盘asmdiskgroup的所有老asmdisk 并指定Rebalance power

   ALTER DISKGROUP DATADG1 drop DISK   'DATADG1_0000', 'DATADG1_0001', 'DATADG1_0002', 'DATADG1_0003'   REBALANCE POWER 8;

9.监控ASM 删除后均衡进度(Monitoring ASM disk operations)

select GROUP_NUMBER, OPERATION, STATE, ACTUAL, SOFAR, EST_MINUTES from Gv$asm_operation;

10.其它ASM DISKGROUP 替换重复使用5# 到9# 步骤

注意事项:
1.更建议在数据库事务不繁忙的时刻或维护窗口去做迁移
2.asm_power_limit可动态调整建议在5-9,白天可以调到最低1,晚上可以适当加大,加大该参数会增加I/O 和CPU 负载
3.一次增加一批是为了减少数据在磁盘上的重组次数(这里一个原有750G*4,新增加750G*5 的ASM DG在POWER 是5和有事务情况disk io 95+busy 下 用了6小时左右)
4.通过GV$ASM_operation 的EST_MINUTES 可以估算Rebalance剩余时间,但是11g 是最后一步增加了COMPACT 步骤,是物理磁盘上优化操作,可能会使用很久一段时间容易造成

Rebalance hang假象,可以配置隐藏参数_DISABLE_REBALANCE_COMPACT=TRUE禁用,不到迫不得已不建议生产上禁用(这里一个原有750G*4,新增加750G*5 的ASM DG就最后的

COMPACT 在POWER 是8的情况下用了1个小时,HP xp24000 migrate VPS)
5. 如果未指定依赖说系统参数asm_power_limit(可动态调整);修改指定了alter diskgroup drop disk 时指定了POWER可以使用下面的SQL:

 alter diskgroup [dgname] rebalance power [N];

6. 一个操作可以同时rebalance add new disk and drop disk

Reference:

MOS # 837308.1 Exact Steps To Migrate ASM Diskgroups To Another SAN/Disk-Array/DAS/etc Without Downtime.

打赏

对不起,这篇文章暂时关闭评论。