概述
修改asm disk path路径 /dev/dm* => /dev/mapper/*,同一个盘,不涉及迁移
因为建asm时使用的是/dev/dm*,且2个节点的fra盘分别对应了dm-4和dm-3,
为了更加规范化,将asm disk中的/dev/dm*改成路径/dev/mapper/*
[root@db1 ~]# ls -lrt /dev/mapper/*
crw-rw---- 1 root root 10, 58 Dec 6 10:44 /dev/mapper/control
lrwxrwxrwx 1 root root 7 Dec 7 10:27 /dev/mapper/fra -> ../dm-4
lrwxrwxrwx 1 root root 7 Dec 7 10:28 /dev/mapper/data1 -> ../dm-3
lrwxrwxrwx 1 root root 7 Dec 7 10:35 /dev/mapper/ocr3 -> ../dm-1
lrwxrwxrwx 1 root root 7 Dec 7 10:35 /dev/mapper/ocr2 -> ../dm-2
lrwxrwxrwx 1 root root 7 Dec 7 10:35 /dev/mapper/ocr1 -> ../dm-0
lrwxrwxrwx 1 root root 7 Dec 7 10:35 /dev/mapper/data1p1 -> ../dm-5
lrwxrwxrwx 1 root root 7 Dec 7 10:35 /dev/mapper/data1p3 -> ../dm-7
lrwxrwxrwx 1 root root 7 Dec 7 10:35 /dev/mapper/data1p2 -> ../dm-6
[root@db2 ~]# ls -lrt /dev/mapper/*
crw-rw---- 1 root root 10, 58 Dec 6 10:44 /dev/mapper/control
lrwxrwxrwx 1 root root 7 Dec 7 10:21 /dev/mapper/data1 -> ../dm-4
lrwxrwxrwx 1 root root 7 Dec 7 10:31 /dev/mapper/ocr1 -> ../dm-0
lrwxrwxrwx 1 root root 7 Dec 7 10:31 /dev/mapper/ocr2 -> ../dm-1
lrwxrwxrwx 1 root root 7 Dec 7 10:31 /dev/mapper/fra -> ../dm-3
lrwxrwxrwx 1 root root 7 Dec 7 10:31 /dev/mapper/ocr3 -> ../dm-2
lrwxrwxrwx 1 root root 7 Dec 7 10:31 /dev/mapper/data1p3 -> ../dm-7
lrwxrwxrwx 1 root root 7 Dec 7 10:31 /dev/mapper/data1p2 -> ../dm-6
lrwxrwxrwx 1 root root 7 Dec 7 10:31 /dev/mapper/data1p1 -> ../dm-5
/dev/mapper/fra2个节点对应的dm名称不一致,数据库中disk使用的是/dev/dm/*,所以为了规范化
只能通过multipath聚合后的路径/dev/mapper/*(因为聚合后磁盘路径的名称一致)
信息:
1节点
GROUP_NUMBER ASM_GROUP_ TYPE DISK_NUMBER DISK_NAME PATH OS_MB FREE_MB FAILGROUP FAILGROUP_ MODE_STATU MOUNT_STAT STATE VOTIN
------------ ---------- -------- ----------- -------------------- -------------------- ---------- ---------- --------------- ---------- ---------- ---------- ---------- -----
1 DATA EXTERN 0 DATA_0000 /dev/dm-5 1907348 1901231 DATA_0000 REGULAR ONLINE CACHED NORMAL N
1 DATA EXTERN 1 DATA_0001 /dev/dm-6 1907348 1901231 DATA_0001 REGULAR ONLINE CACHED NORMAL N
1 DATA EXTERN 2 DATA_0002 /dev/dm-7 1817302 1811467 DATA_0002 REGULAR ONLINE CACHED NORMAL N
3 OCR NORMAL 0 OCR_0000 /dev/dm-2 10240 9930 OCR_0000 REGULAR ONLINE CACHED NORMAL Y
3 OCR NORMAL 1 OCR_0001 /dev/dm-0 10240 9933 OCR_0001 REGULAR ONLINE CACHED NORMAL Y
3 OCR NORMAL 2 OCR_0002 /dev/dm-1 10240 9931 OCR_0002 REGULAR ONLINE CACHED NORMAL Y
2节点
1 DATA EXTERN 0 DATA_0000 /dev/dm-5 1907348 1901231 DATA_0000 REGULAR ONLINE CACHED NORMAL N
1 DATA EXTERN 1 DATA_0001 /dev/dm-6 1907348 1901231 DATA_0001 REGULAR ONLINE CACHED NORMAL N
1 DATA EXTERN 2 DATA_0002 /dev/dm-7 1817302 1811467 DATA_0002 REGULAR ONLINE CACHED NORMAL N
2 FRA EXTERN 0 FRA_0000 /dev/dm-3 512000 511903 FRA_0000 REGULAR ONLINE CACHED NORMAL N
3 OCR NORMAL 0 OCR_0000 /dev/dm-1 10240 9930 OCR_0000 REGULAR ONLINE CACHED NORMAL Y
3 OCR NORMAL 1 OCR_0001 /dev/dm-0 10240 9933 OCR_0001 REGULAR ONLINE CACHED NORMAL Y
3 OCR NORMAL 2 OCR_0002 /dev/dm-2 10240 9931 OCR_0002 REGULAR ONLINE CACHED NORMAL Y
kfed read /dev/dm-0
kfed read /dev/mapper/ocr1
因为是一个盘,所以盘头信息一定是一致的
迁移步骤
思路:关闭数据库,drop掉磁盘,更改disk_strings,以mapper路径create磁盘组(drop create diskgroup是不需要的,后面再解释)
因为数据使用的是磁盘组,不牵涉具体的磁盘,所以操作层都在asm
不能通过提前创建mapper磁盘组然后迁移的方式,因为disk string修改需要重启asm,不修改就不能改变路径,只要修改就启动不了asm
1.
先停库
srvctl stop database -d qhzdhlw
[grid@db1 ~]$ sqlplus / as sysasm
2.因为fra不正常,先删除2节点的fra(其他环境一般没有这种情况)
SQL> drop diskgroup fra;
Diskgroup dropped.
3.确认votedisk
[grid@db2 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 04bb94e243dc4fb8bf0d9e88aa7623c1 (/dev/dm-1) [OCR]
2. ONLINE aa8294a36e0f4f78bfb85cdb425b4947 (/dev/dm-0) [OCR]
3. ONLINE 586547351b4c4fafbfdaaa8d564d64fe (/dev/dm-2) [OCR]
Located 3 voting disk(s).
[grid@db2 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 3084
Available space (kbytes) : 259036
ID : 262515493
Device/File Name : +ocr
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user
因为votedisk指向了具体的disk,所以应该需要replace votedisk
data,fra,ocr都不用迁移类的操作,只要asm识别了磁盘,从磁盘中获取磁盘组信息就可以了,磁盘中的信息是不变的
4.更改diskstring
SQL> create pfile='/home/grid/pfile.ora' from spfile;
File created.
SQL> show parameter string
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
asm_diskstring string /dev/dm*
SQL> alter system set asm_diskstring='/dev/mapper/*' scope=spfile sid='*';
System altered.
asm_diskstring参数重启实例生效
5.关闭集群
/grid/app/11.2/grid/bin/crsctl stop crs
直接尝试重启集群
/grid/app/11.2/grid/bin/crsctl start crs
[root@db1 ~]# /grid/app/11.2/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE db1
ONLINE ONLINE db2
...
ora.OCR.dg
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.asm
ONLINE ONLINE db1 Started
ONLINE ONLINE db2 Started
..
....
ora.qhzdhlw.db
1 OFFLINE OFFLINE Instance Shutdown
2 OFFLINE OFFLINE Instance Shutdown
ora.scan1.vip
1 ONLINE ONLINE db1
集群起来了,asm还在
GROUP_NUMBER ASM_GROUP_ TYPE DISK_NUMBER DISK_NAME PATH OS_MB FREE_MB FAILGROUP FAILGROUP_ MODE_STATU MOUNT_STAT STATE VOTIN
------------ ---------- -------- ----------- -------------------- -------------------- ---------- ---------- --------------- ---------- ---------- ---------- ---------- -----
1 DATA EXTERN 0 DATA_0000 /dev/mapper/data1p1 1907348 1901231 DATA_0000 REGULAR ONLINE CACHED NORMAL N
1 DATA EXTERN 1 DATA_0001 /dev/mapper/data1p2 1907348 1901231 DATA_0001 REGULAR ONLINE CACHED NORMAL N
1 DATA EXTERN 2 DATA_0002 /dev/mapper/data1p3 1817302 1811467 DATA_0002 REGULAR ONLINE CACHED NORMAL N
2 OCR NORMAL 0 OCR_0000 /dev/mapper/ocr2 10240 9930 OCR_0000 REGULAR ONLINE CACHED NORMAL Y
2 OCR NORMAL 1 OCR_0001 /dev/mapper/ocr1 10240 9933 OCR_0001 REGULAR ONLINE CACHED NORMAL Y
2 OCR NORMAL 2 OCR_0002 /dev/mapper/ocr3 10240 9931 OCR_0002 REGULAR ONLINE CACHED NORMAL Y
asm直接就把磁盘和磁盘组拉了起来
检查表决盘和ocr
[grid@db1 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 04bb94e243dc4fb8bf0d9e88aa7623c1 (/dev/mapper/ocr2) [OCR]
2. ONLINE aa8294a36e0f4f78bfb85cdb425b4947 (/dev/mapper/ocr1) [OCR]
3. ONLINE 586547351b4c4fafbfdaaa8d564d64fe (/dev/mapper/ocr3) [OCR]
votedisk的路径也自己变动了
ocrcheck正常
以防万一,重启服务器,拉集群,拉库
一切正常
总结:
1.oracle太智能了
2.刚开始以为要create diskgroup改变下磁盘路径,replace votedisk改变表决盘路径,结果都不需要
3.按结果分析原理:asm disk中的保存了disk和disk group 的信息,但是其路径没有写在disk中,路径就是识别的磁盘路径。包括表决盘。
所以我们只修改了asm diskstring然后重启集群就ok了
正确的步骤如下:
1.修改asm diskstring
2.重启crs
参考文档:
http://www.askmaclean.com/archives/howto-change-11gr2-asm-disk-path.html