Your current position:Home > Technical Guide| 【案例分享】数据库存储迁移方案 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
澳门太阳城官网驻场运维团队收到服务申请,在尽量短的时间内完成停机迁移,将数据库数据迁移至新存储,调优性能以满足业务需求。工程师进行了详细分析,实施了如下迁移方案: 一、准备工作 1、涉及主机 a.收集信息 数据库版本 :Oracle 11.2.0.1.0 环境 :RAC双节点 操作系统版本:Linuxversion2.6.18-128.7AXS3 b.主机wwn 数据库服务器1: **.**.**.** view@tvcdb1[tvcdbs1]/home/view$ cat /proc/scsi/qla2xxx/* | grep adapter-port scsi-qla0-adapter-port=*************; scsi-qla1-adapter-port=****************; 数据库服务器2: **.**.**.** view@tvcdb2[tvcdbs2]/home/view$ cat /proc/scsi/qla2xxx/* | grep adapter-port scsi-qla0-adapter-port=*************; scsi-qla1-adapter-port=*************; scsi-qla2-adapter-port=************; 工程师根据主机wwn划zone。 二、磁盘规划 1、原有存储阵列磁盘使用情况
2、新存储阵列磁盘规划表
文件系统
三、Map磁盘 存储工程师划盘,并记录新划Lun盘的wwid。 需求: 共享:70G*2块 1G*6块 非共享: 60G*1块(节点1) 四、备份系统信息 1、基本信息 #view用户执行: mkdir -p /home/view/20200725 /sbin/netstat -rn > /home/view/20200725/route.20200725 /sbin/ifconfig > /home/view/20200725/if.20200725 df -h > /home/view/20200725/df.20200725 cp /etc/udev/rules.d/20-names.rules /etc/udev/rules.d/20-names.rules.20200725 2、系统原有盘的wwid sfdisk -s|grep -v dm-|awk -F ':' '{print $1}'|awk -F '/dev/' '{print$2}'>/home/view/20200725/sfdisk_before.txt
while read wwid; do scsi_id -g -u -s /block/$wwid >>/home/view/20200725/wwid_before.txt; done
cat wwid_before.txt sort -u wwid_before.txt >wwid_before.txt.bak cat wwid_before.txt.bak
1、停库(Oracle用户两节点) sqlplus / as sysdba SQL> shutdown immediate; 2、停集群并disable crs(Root用户两节点). ~grid/.bash_profile crsctl disable crs crsctl stop crs 3、重启服务器,找出新认到的盘wwidsfdisk -s|grep -v dm-|awk -F ':' '{print $1}'|awk -F '/dev/' '{print$2}'>/home/view/20200725/sfdisk_after.txt
while read wwid; do scsi_id -g -u -s /block/$wwid >>/home/view/20200725/wwid_after.txt; done
cat wwid_after.txt sort -u wwid_before.txt >wwid_after.txt.bak cat wwid_after.txt.bak
根据wwid号区分出新认到的9块盘。 4、绑盘修改 /etc/udev/rules.d/20-names.rules 配置文件,新增如下内容: KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sda%n", SYMLINK="sdiskaj%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sdb%n", SYMLINK="sdiskk%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sdc%n", SYMLINK="sdiskl%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sdd%n", SYMLINK="sdiskm%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sde%n", SYMLINK="sdiskn%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sdf%n", SYMLINK="sdisko%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sdg%n", SYMLINK="sdiskp%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sdh%n", SYMLINK="sdiskq%n" KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="*", NAME="sdi%n", SYMLINK="sdiskr%n" 5、重新扫描Lun盘start_udev 确认新绑盘生效。 6、确认新盘权限ll /dev/sdisk* 确认属主、属组为grid:asmadmin, 权限为660; chown grid:asmadmin /dev/sdiskj chown grid:asmadmin /dev/sdiskk chown grid:asmadmin /dev/sdiskl chown grid:asmadmin /dev/sdiskm chown grid:asmadmin /dev/sdiskn chown grid:asmadmin /dev/sdisko chown grid:asmadmin /dev/sdiskp chown grid:asmadmin /dev/sdiskq
chmod 660 /dev/sdiskj chmod 660 /dev/sdiskk chmod 660 /dev/sdiskl chmod 660 /dev/sdiskm chmod 660 /dev/sdiskn chmod 660 /dev/sdisko chmod 660 /dev/sdiskp chmod 660 /dev/sdiskq
1、启动数据库 a.拉起集群(Root用户两个节点) . ~grid/.bash_profile crsctl start crs crsctl enable crs
b.拉起实例(Oracle用户两个节点) sqlplus / as sysdba SQL>select instance_name,status,startup_time from gv$instance; SQL>select name,open_mode from gv$database; 2、登录su - grid sqlplus / as sysasm 3、查询磁盘RSQL> select group_number, name, state, type, total_mb/1024 total_gb, free_mb/1024 free_gb from v$asm_diskgroup;
4、查询磁盘组中的磁盘set linesize 200 col path format a20 col name format a20 col HEADER_STATUS format a15
select disk_number, path, name, header_status,total_mb/1024, free_mb/1024 from v$asm_disk where group_number = 1;
select disk_number, path, name, header_status,total_mb/1024, free_mb/1024 from v$asm_disk where group_number = 2;
5、替换DGDATA磁盘组(Oracle用户一节点) a.#DGDATA旧磁盘的状态 set linesize 200 pages 1000; col name format a16; col path format a30; col HEADER_STATUS format a16;
select name,path,HEADER_STATUS,TOTAL_MB/1024 from v$asm_disk where path in ('/dev/sdiskg','/dev/sdiskh');
#核对盘的HEADER_STATUS是"MEMBER" #核对盘的大小:70G
b.#DGDATA新磁盘的状态 SQL> set linesize 200 pages 1000; SQL> col name format a16; SQL> col path format a30; SQL> col HEADER_STATUS format a16; select name,path,HEADER_STATUS,TOTAL_MB from v$asm_disk where path in ('/dev/sdiskp','/dev/sdiskq');
#核对盘的HEADER_STATUS是"FORMER"或"CANDIDATE" # 核对有2块盘:/dev/sdiskp和/dev/sdiskq # 核对2块盘的大小: 70G
c.添加并删除DGDATA磁盘组: alter diskgroup DGDATA add disk '/dev/sdiskp','/dev/sdiskq' drop disk DGDATA_0000,DGDATA_0001 rebalance power 10;
d.监控Rebalance状态: select * from v$asm_operation;
e.#DGDATA新磁盘的状态 set linesize 200 pages 1000; col name format a16; col path format a30; col HEADER_STATUS format a16; select name,path,HEADER_STATUS,TOTAL_MB from v$asm_disk where path in ('/dev/sdiskp','/dev/sdiskq'); #核对盘的HEADER_STATUS是"MEMBER" #核对盘的大小:70G
f.#DGDATA旧磁盘的状态 set linesize 200 pages 1000; col name format a16; col path format a30; col HEADER_STATUS format a16; select name,path,HEADER_STATUS,TOTAL_MB from v$asm_disk where path in ('/dev/sdiskg','/dev/sdiskh');
#核对盘的HEADER_STATUS是"FORMER" #核对盘的大小:70G 6、替换OCR_VOTE磁盘组(oracle用户一节点)a.#OCR_VOTE旧磁盘的状态 set linesize 200 pages 1000; col name format a16; col path format a30; col HEADER_STATUS format a16; select name,path,HEADER_STATUS,TOTAL_MB/1024 from v$asm_disk where path in ('/dev/sdiska','/dev/sdiskb','/dev/sdiskc','/dev/sdiskd','/dev/sdiske','/dev/sdiskf');
#核对盘的HEADER_STATUS是"MEMBER" #核对盘的大小:1G b.#OCR_VOTE新磁盘的状态
#核对盘的HEADER_STATUS是"FORMER"或"CANDIDATE" # 核对有6块盘:/dev/sdiskj到/dev/sdisko # 核对6块盘的大小: 1G c.添加并删除OCR_VOTE磁盘组:
d.监控Rebalance状态:
e.#OCR_VOTE新磁盘的状态
#核对盘的HEADER_STATUS是"MEMBER" #核对盘的大小: 1G f.#OCR_VOTE旧磁盘的状态
#核对盘的HEADER_STATUS是"FORMER" #核对盘的大小:1G 七、文件系统迁移 需要迁移的信息 a.文件系统: /dev/mapper/vg01-lv_dbbak 50G 377M 47G 1% /dbbak b.组成文件系统的PV信息: [root@tvcdb1 by-id]# pvs PV VG Fmt Attr PSize PFree /dev/cciss/c0d0p2 VG00 lvm2 a- 136.50G 13.50G /dev/sdiski vg01 lvm2 a- 60.00G 10.00G c.添加新存储的PV到vg_appdata中: pvcreate /devsdiskr vgextend vg01 /devsdiskr d.将数据从旧PV移动到新PV,两个PV依次操作: Pvmove /dev/sdiski /dev/sdiskr e.上述操作后旧pv中无数据,pv会从lv中剔除,将旧pv从vg中手工删除: vgreduce vg01 /dev/sdiski f.主机层面删除旧pv信息: pvremove /dev/sdiski 八、修改配置文件 /etc/rc.local(重启自动更改磁盘权限,确保数据库正常运行。) /etc/udev/rules.d/20-names.rules 九、迁移完成 验证数据库、集群状态正常,系统时间、路由、网络、文件系统挂载情况正常。 存储迁移完成,通知应用拉起服务,进行验证,应用确认正常后,本次迁移成功。 十、注意事项 1、应急方案:如磁盘组迁移失败,需将原磁盘组重新加回,同时删除新盘; 2、开始操作前进行完整的数据库全备及归档备份; 3、修改udev配置文件时注意字符的变动,防止磁盘无法识别; 4、注意数据库磁盘权限的修改及确认; 5、对比两节点,保证两边认到的磁盘一致; 6、应用业务停止后,方能进行停机操作。业务操作时推荐在ASM平衡中选择级别10,以保证耗时少,快速恢复业务运转。 如欲了解更多,请登录澳门太阳城官网官方网站:www.antute.com.cn |
Standardized Management Process
澳门威尼斯人博彩

