存储迁移

2026-01-06ASM / Oracle / RAC / RMAN
  1. 检查操作系统和数据库2) 原LUN数据备份
  1. 确认主机识别到VSP存储的LUN和多路径确保正常4) 检查数据库两个节点LUN和LUNID
  1. 设备赋权(在rac的每个节点均操作)chown -R grid:asmadmin /dev/rhdisk*chmod 660 /dev/rhdisk*6) 检查存储软链接
  1. 停应用
  1. 替换数据库集群votingdisk、OCR、data硬盘(需停集群和数据库)调整asm disk_string参数alter system set asm_diskstring='/dev/rhdisk*' scope=spfile sid='*';

ALTER DISKGROUP fra ADDFAILGROUP fg_gx DISK '/dev/rhdiskpower164', '/dev/rhdiskpower165', '/dev/rhdiskpower166', '/dev/rhdiskpower167', '/dev/rhdiskpower168', '/dev/rhdiskpower169', '/dev/rhdiskpower170',FAILGROUP fg_sn DISK '/dev/rhdiskpower217', '/dev/rhdiskpower218', '/dev/rhdiskpower219', '/dev/rhdiskpower220', '/dev/rhdiskpower221', '/dev/rhdiskpower222', '/dev/rhdiskpower223',rebalance power 11;

创建diskgroupcreate DISKGROUP datas NORMAL REDUNDANCYFAILGROUP fg_gx DISK '/dev/rhdiskpower175','/dev/rhdiskpower176','/dev/rhdiskpower177','/dev/rhdiskpower178','/dev/rhdiskpower179','/dev/rhdiskpower180','/dev/rhdiskpower181','/dev/rhdiskpower182','/dev/rhdiskpower183','/dev/rhdiskpower184','/dev/rhdiskpower185','/dev/rhdiskpower186','/dev/rhdiskpower187','/dev/rhdiskpower188','/dev/rhdiskpower189','/dev/rhdiskpower190'FAILGROUP fg_sn DISK'/dev/rhdiskpower148','/dev/rhdiskpower149','/dev/rhdiskpower150','/dev/rhdiskpower151','/dev/rhdiskpower153','/dev/rhdiskpower156','/dev/rhdiskpower157','/dev/rhdiskpower158','/dev/rhdiskpower159','/dev/rhdiskpower160','/dev/rhdiskpower161','/dev/rhdiskpower162','/dev/rhdiskpower163','/dev/rhdiskpower164','/dev/rhdiskpower165','/dev/rhdiskpower166'ATTRIBUTE 'compatible.rdbms'='11.2.0.4.0','compatible.asm' = '11.2.0.4.0','compatible.advm'='11.2.0.4.0''DISK_REPAIR_TIME'='168H';

创建替换ocrocrcheckmore /var/opt/oracle/ocr.loc

–备份ocrconfig -export ocr.bak

–替换ocr的XP24000硬盘ocrconfig -add +ocrocrconfig -replace +crs -replacement +ocrocrconfig -delete +crs

–检查确认ocrcheck

更换voting disk硬盘crsctl query css votedisk

create pfile='/tmp/asm.pfile' from spfile;crsctl replace votedisk +ocr

create spfile='+ocr' from pfile='/tmp/asm.pfile';

srvctl remove diskgroup -g crs -f

alter diskgroup crs mount;DROP DISKGROUP crs INCLUDING CONTENTS;

–重启集群检查集群crsctl stop crscrsctl start crs

–检查确认crsctl query css votedisk

  1. 数据迁移生成新的参数文件create pfile='/home/oracle/pfile' from spfile;修改pfilecontrol_files='+datas'db_create_file_dest='+datas'

startup pfile='/home/oracle/pfile' nomount;迁移数据库的控制文件和数据文件到HDS的ASM上rman target / restore controlfile from '+DATA/testdb/controlfile/current.260.941055241';alter database mount;

alter database mount;

run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;allocate channel c4 type disk;allocate channel c5 type disk;allocate channel c6 type disk;allocate channel c7 type disk;allocate channel c8 type disk;allocate channel c9 type disk;allocate channel c10 type disk;allocate channel c11 type disk;allocate channel c12 type disk;backup as copy database format '+datas';release channel c1;release channel c2;release channel c3;release channel c4;release channel c5;release channel c6;release channel c7;release channel c8;release channel c9;release channel c10;release channel c11;release channel c12;}

switch database to copy;

run {set newname for tempfile 1 to '+datas';switch tempfile all;}

数据迁移完成

alter database open;数据库调整

set linesize 200col member for a60SELECT a.group#, b.member, a.status FROM v$log a, v$logfile b WHERE a.group#=b.group#order by 1,2;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 1;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 2;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 3;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 4;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 5;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 6;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 7;ALTER DATABASE ADD LOGFILE MEMBER '+datas' TO GROUP 8;ALTER SYSTEM CHECKPOINT GLOBAL;

ALTER SYSTEM SWITCH LOGFILE;ALTER SYSTEM CHECKPOINT GLOBAL;ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_1.261.941055243';ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_2.262.941055245';ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_3.271.941055473';ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_4.272.941055475';ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_5.269.941055469';ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_6.270.941055471';ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_7.267.941055465';ALTER DATABASE DROP LOGFILE MEMBER '+data/TESTDB/ONLINELOG/group_8.268.941055467';

ALTER SYSTEM SWITCH LOGFILE;ALTER SYSTEM CHECKPOINT GLOBAL;

SELECT a.group#, b.member, a.status FROM v$log a, v$logfile b WHERE a.group#=b.group#;

alter diskgroup data dismount;

— 在ASM磁盘组中创建服务器参数文件create spfile='+DATAS/TESTDB/spfileTESTDB.ora' from pfile='/home/oracle/pfile';

— 两个节点中更新initresdb1.ora initresdb2.oracp initresdb1.ora initresdb2.ora.origcp initresdb2.ora initresdb2.ora.orig

spfile='+DATAS/TESTDB/spfileTESTDB.ora'

srvctl modify database -d testdb -p +DATAS/TESTDB/spfileTESTDB.orasrvctl config database -d testdbsrvctl modify database -d testdb -a "DATAS,FRA,DG_VOTE"srvctl disable diskgroup -g datasrvctl remove diskgroup -g data –f

检查验证select name from v$datafile union allselect name from v$tempfile union allselect member from v$logfile union allselect name from v$controlfileorder by 1;show parameter pfile数据库重启srvctl start database -d resdb10) 应用启动11) 删除EMC asm diskgroup12) 所有主机删除EMC设备13) HDS链路调整14) 调整硬盘权限chown -R grid:asmadmin /dev/rhdisk*chmod 660 /dev/rhdisk*

srvctl modify database -d testdb -a "DATAS,FRA,DG_VOTE"调整asm_preferred_read_failure_groups