Oracle RAC 19C通过故障组更改OCR和voting磁盘
1、需求
📢 :Oracle RAC 19C准备用3个新的16G ocr盘(asmdiskocr4、asmdiskocr5、asmdiskocr6)替换掉原来的3个旧的10G ocr盘(asmdiskocr1、asmdiskocr2、asmdiskocr3)
2、集群信息
[grid@db1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
ora.chad
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
ora.net1.network
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
ora.ons
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 ONLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE db2 STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE db1 Started,STABLE
2 ONLINE ONLINE db2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE db2 STABLE
ora.db1.vip
1 ONLINE ONLINE db1 STABLE
ora.db2.vip
1 ONLINE ONLINE db2 STABLE
ora.his.db
1 ONLINE ONLINE db1 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
2 ONLINE ONLINE db2 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
ora.qosmserver
1 ONLINE ONLINE db2 STABLE
ora.scan1.vip
1 ONLINE ONLINE db2 STABLE
--------------------------------------------------------------------------------
SQL> select action_time,action,version,comments from dba_registry_history;
ACTION_TIME ACTION VERSION COMMENTS
------------------------------ --------------- ------------------ --------------------------------------------------------------------------------
BOOTSTRAP 19 RDBMS_19.13.0.0.0DBRU_LINUX.X64_211004
14-JAN-22 08.19.22.968083 AM RU_APPLY 19.0.0.0.0 Patch applied on 19.3.0.0.0: Release_Update - 190410122720
15-JAN-22 12.01.13.960603 AM RU_APPLY 19.0.0.0.0 Patch applied from 19.3.0.0.0 to 19.13.0.0.0: Release_Update - 211004165050
15-JAN-22 12.13.58.706868 AM RU_APPLY 19.0.0.0.0 Patch applied on 19.13.0.0.0: Release_Update - 211004165050
3、OCR和voting信息
[grid@db1 ~]$ocrcheck&&crsctl query css votedisk
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84228
Available space (kbytes) : 407456
ID : 612522112
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
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 60ef543c89ea4f43bf91eb203cd15b72 (/dev/asmdiskocr1) [OCR]
2. ONLINE c23485dae38b4f09bfc3dc654a8dc738 (/dev/asmdiskocr2) [OCR]
3. ONLINE 2a024d9dedce4fbebf67bc71007653a6 (/dev/asmdiskocr3) [OCR]
Located 3 voting disk(s).
COMPATIBILITY for a16;
select GROUP_NUMBER,NAME,STATE,type,TOTAL_MB,free_mb,VOTING_FILES,COMPATIBILITY from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB VOT COMPATIBILITY
------------ ---------- --------------------------------- ------------------ ---------- ---------- --- ----------------
1 OCR MOUNTED NORMAL 30720 29688 Y 19.0.0.0.0
2 DATA MOUNTED EXTERN 51200 47500 N 19.0.0.0.0
SQL> col name for a10
SQL> col failgroup for a10
SQL> col path for a30
SQL> set linesize 180
SQL> select name, failgroup, path,state, mode_status, voting_file from v$asm_disk;
select * from v$asm_operation;
NAME FAILGROUP PATH MODE_STATUS VOT
---------- ---------- ------------------------------ --------------------- ---
/dev/asmdiskocr5 ONLINE N
/dev/asmdiskocr4 ONLINE N
/dev/asmdiskocr6 ONLINE N
DATA_0000 DATA_0000 /dev/asmdiskdata ONLINE N
OCR_0001 OCR_0001 /dev/asmdiskocr2 ONLINE Y
OCR_0002 OCR_0002 /dev/asmdiskocr3 ONLINE Y
OCR_0000 OCR_0000 /dev/asmdiskocr1 ONLINE Y
7 rows selected.
📢 注意:本地准备用3个新的16G ocr盘(asmdiskocr4、asmdiskocr5、asmdiskocr6)替换掉原来的3个旧的10G ocr盘(asmdiskocr1、asmdiskocr2、asmdiskocr3)
[root@db1 ~]# lsblk |grep asm
└─asmdiskocr1 253:2 0 10G 0 mpath
└─asmdiskocr3 253:3 0 10G 0 mpath
└─asmdiskocr2 253:4 0 10G 0 mpath
└─asmdiskdata 253:5 0 50G 0 mpath
└─asmdiskocr6 253:6 0 16G 0 mpath
└─asmdiskocr5 253:7 0 16G 0 mpath
└─asmdiskocr4 253:8 0 16G 0 mpath
4、添加故障组磁盘
SQL> alter diskgroup OCR add FAILGROUP OCR_0000 disk '/dev/asmdiskocr4';
alter diskgroup OCR add FAILGROUP OCR_0000 disk '/dev/asmdiskocr4'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15410: Disks in disk group OCR do not have equal size.
解决办法:
alter system set "_asm_disable_failgroup_size_checking"=true;
alter system set "_asm_disable_dangerous_failgroup_checking"=true;
SQL> alter system set "_asm_disable_failgroup_size_checking"=true;
System altered.
SQL> alter system set "_asm_disable_dangerous_failgroup_checking"=true;
System altered.
SQL> show parameter asm
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
_asm_disable_dangerous_failgroup_che boolean TRUE
cking
_asm_disable_failgroup_size_checking boolean TRUE
asm_diskgroups string DATA
asm_diskstring string /dev/asm*
asm_power_limit integer 1
asm_preferred_read_failure_groups string
SQL> alter diskgroup OCR add FAILGROUP OCR_0000 disk '/dev/asmdiskocr4';
Diskgroup altered.
SQL> alter diskgroup OCR add FAILGROUP OCR_0001 disk '/dev/asmdiskocr5';
Diskgroup altered.
SQL> alter diskgroup OCR add FAILGROUP OCR_0002 disk '/dev/asmdiskocr6';
Diskgroup altered.
SQL> select name, failgroup, path,state, mode_status, voting_file from v$asm_disk;
NAME FAILGROUP PATH STATE MODE_STATUS VOT
---------- ---------- ------------------------------ ------------------------ --------------------- ---
OCR_0003 OCR_0000 /dev/asmdiskocr4 NORMAL ONLINE N
OCR_0004 OCR_0001 /dev/asmdiskocr5 NORMAL ONLINE N
OCR_0005 OCR_0002 /dev/asmdiskocr6 NORMAL ONLINE N
DATA_0000 DATA_0000 /dev/asmdiskdata NORMAL ONLINE N
OCR_0001 OCR_0001 /dev/asmdiskocr2 NORMAL ONLINE Y
OCR_0002 OCR_0002 /dev/asmdiskocr3 NORMAL ONLINE Y
OCR_0000 OCR_0000 /dev/asmdiskocr1 NORMAL ONLINE Y
7 rows selected.
SQL> select * from v$asm_operation;
no rows selected
[grid@db1 ~]$ ocrcheck&&crsctl query css votedisk
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84228
Available space (kbytes) : 407456
ID : 612522112
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
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 60ef543c89ea4f43bf91eb203cd15b72 (/dev/asmdiskocr1) [OCR]
2. ONLINE 2a024d9dedce4fbebf67bc71007653a6 (/dev/asmdiskocr3) [OCR]
3. ONLINE 0f4d793448024fb3bfe1592f341604f4 (/dev/asmdiskocr2) [OCR]
Located 3 voting disk(s).
5、删除故障组磁盘
SQL> alter diskgroup OCR drop disk OCR_0000;
Diskgroup altered.
SQL> col name for a10
SQL> col failgroup for a10
SQL> col path for a30
SQL> set linesize 180
SQL> select name, failgroup, path,state, mode_status, voting_file from v$asm_disk;
NAME FAILGROUP PATH STATE MODE_STATUS VOT
---------- ---------- ------------------------------ ------------------------ --------------------- ---
OCR_0003 OCR_0000 /dev/asmdiskocr4 NORMAL ONLINE N
OCR_0004 OCR_0001 /dev/asmdiskocr5 NORMAL ONLINE N
OCR_0005 OCR_0002 /dev/asmdiskocr6 NORMAL ONLINE N
DATA_0000 DATA_0000 /dev/asmdiskdata NORMAL ONLINE N
OCR_0001 OCR_0001 /dev/asmdiskocr2 NORMAL ONLINE Y
OCR_0002 OCR_0002 /dev/asmdiskocr3 NORMAL ONLINE Y
OCR_0000 OCR_0000 /dev/asmdiskocr1 DROPPING ONLINE Y
7 rows selected.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION PASS STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ --------------- --------------------------- ------------ ---------- ---------- ---------- ---------- ---------- -----------
ERROR_CODE CON_ID
------------------------------------------------------------------------------------------------------------------------------------ ----------
2 REBAL COMPACT RUN 1 0 0 0 0 0
0
2 REBAL REBALANCE DONE 1 0 0 0 0 0
0
2 REBAL REBUILD DONE 1 0 0 0 0 0
0
GROUP_NUMBER OPERATION PASS STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ --------------- --------------------------- ------------ ---------- ---------- ---------- ---------- ---------- -----------
ERROR_CODE CON_ID
------------------------------------------------------------------------------------------------------------------------------------ ----------
2 REBAL RESYNC DONE 1 0 0 0 0 0
0
SQL> select * from v$asm_operation;
no rows selected
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.13.0.0.0
[grid@db1 ~]$ ocrcheck&&crsctl query css votedisk
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84228
Available space (kbytes) : 407456
ID : 612522112
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
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 2a024d9dedce4fbebf67bc71007653a6 (/dev/asmdiskocr3) [OCR]
2. ONLINE 0f4d793448024fb3bfe1592f341604f4 (/dev/asmdiskocr2) [OCR]
3. ONLINE f853e8200f5b4fe5bf88bdec933fe9b5 (/dev/asmdiskocr4) [OCR]
Located 3 voting disk(s).
SQL> alter diskgroup OCR drop disk OCR_0001;
Diskgroup altered.
SQL> col name for a10
SQL> col failgroup for a10
SQL> col path for a30
SQL> set linesize 180
SQL> select name, failgroup, path,state, mode_status, voting_file from v$asm_disk;
NAME FAILGROUP PATH STATE MODE_STATUS VOT
---------- ---------- ------------------------------ ------------------------ --------------------- ---
/dev/asmdiskocr1 NORMAL ONLINE N
OCR_0003 OCR_0000 /dev/asmdiskocr4 NORMAL ONLINE Y
OCR_0004 OCR_0001 /dev/asmdiskocr5 NORMAL ONLINE N
OCR_0005 OCR_0002 /dev/asmdiskocr6 NORMAL ONLINE N
DATA_0000 DATA_0000 /dev/asmdiskdata NORMAL ONLINE N
OCR_0001 OCR_0001 /dev/asmdiskocr2 DROPPING ONLINE Y
OCR_0002 OCR_0002 /dev/asmdiskocr3 NORMAL ONLINE Y
7 rows selected.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION PASS STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ --------------- --------------------------- ------------ ---------- ---------- ---------- ---------- ---------- -----------
ERROR_CODE CON_ID
------------------------------------------------------------------------------------------------------------------------------------ ----------
2 REBAL COMPACT RUN 1 1 4 0 1875 0
0
2 REBAL REBALANCE DONE 1 1 88 88 0 0
0
2 REBAL REBUILD DONE 1 1 0 0 0 0
0
GROUP_NUMBER OPERATION PASS STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ --------------- --------------------------- ------------ ---------- ---------- ---------- ---------- ---------- -----------
ERROR_CODE CON_ID
------------------------------------------------------------------------------------------------------------------------------------ ----------
2 REBAL RESYNC DONE 1 1 0 0 0 0
0
SQL> select * from v$asm_operation;
no rows selected
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.13.0.0.0
[grid@db1 ~]$ ocrcheck&&crsctl query css votedisk
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84228
Available space (kbytes) : 407456
ID : 612522112
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
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 2a024d9dedce4fbebf67bc71007653a6 (/dev/asmdiskocr3) [OCR]
2. ONLINE f853e8200f5b4fe5bf88bdec933fe9b5 (/dev/asmdiskocr4) [OCR]
3. ONLINE efa60dad3ff24fe8bfe8647a258121c3 (/dev/asmdiskocr5) [OCR]
Located 3 voting disk(s).
SQL> alter diskgroup OCR drop disk OCR_0002;
Diskgroup altered.
SQL> col name for a10
SQL> col failgroup for a10
SQL> col path for a30
SQL> set linesize 180
SQL> select name, failgroup, path,state, mode_status, voting_file from v$asm_disk;
NAME FAILGROUP PATH STATE MODE_STATUS VOT
---------- ---------- ------------------------------ ------------------------ --------------------- ---
/dev/asmdiskocr2 NORMAL ONLINE N
/dev/asmdiskocr1 NORMAL ONLINE N
OCR_0003 OCR_0000 /dev/asmdiskocr4 NORMAL ONLINE Y
OCR_0004 OCR_0001 /dev/asmdiskocr5 NORMAL ONLINE Y
OCR_0005 OCR_0002 /dev/asmdiskocr6 NORMAL ONLINE N
DATA_0000 DATA_0000 /dev/asmdiskdata NORMAL ONLINE N
OCR_0002 OCR_0002 /dev/asmdiskocr3 DROPPING ONLINE Y
7 rows selected.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION PASS STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ --------------- --------------------------- ------------ ---------- ---------- ---------- ---------- ---------- -----------
ERROR_CODE CON_ID
------------------------------------------------------------------------------------------------------------------------------------ ----------
2 REBAL COMPACT RUN 1 0 0 0 0 0
0
2 REBAL REBALANCE DONE 1 0 0 0 0 0
0
2 REBAL REBUILD DONE 1 0 0 0 0 0
0
GROUP_NUMBER OPERATION PASS STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ --------------- --------------------------- ------------ ---------- ---------- ---------- ---------- ---------- -----------
ERROR_CODE CON_ID
------------------------------------------------------------------------------------------------------------------------------------ ----------
2 REBAL RESYNC DONE 1 0 0 0 0 0
0
SQL> select * from v$asm_operation;
no rows selected
SQL> select name, failgroup, path,state, mode_status, voting_file from v$asm_disk;
NAME FAILGROUP PATH STATE MODE_STATUS VOT
---------- ---------- ------------------------------ ------------------------ --------------------- ---
/dev/asmdiskocr3 NORMAL ONLINE N
/dev/asmdiskocr2 NORMAL ONLINE N
/dev/asmdiskocr1 NORMAL ONLINE N
OCR_0003 OCR_0000 /dev/asmdiskocr4 NORMAL ONLINE Y
OCR_0004 OCR_0001 /dev/asmdiskocr5 NORMAL ONLINE Y
OCR_0005 OCR_0002 /dev/asmdiskocr6 NORMAL ONLINE Y
DATA_0000 DATA_0000 /dev/asmdiskdata NORMAL ONLINE N
7 rows selected.
6、OCR和voting替换成功
[grid@db1 ~]$ ocrcheck&&crsctl query css votedisk
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84228
Available space (kbytes) : 407456
ID : 612522112
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
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE f853e8200f5b4fe5bf88bdec933fe9b5 (/dev/asmdiskocr4) [OCR]
2. ONLINE efa60dad3ff24fe8bfe8647a258121c3 (/dev/asmdiskocr5) [OCR]
3. ONLINE 3f334e9b73404f64bff3a2c52c5735de (/dev/asmdiskocr6) [OCR]
Located 3 voting disk(s).
7、参数修改默认值
SQL> alter system set "_asm_disable_failgroup_size_checking"=false;
System altered.
SQL> alter system set "_asm_disable_dangerous_failgroup_checking"=false;
System altered.
8、集群状态
[grid@db1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
ora.chad
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
ora.net1.network
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
ora.ons
ONLINE ONLINE db1 STABLE
ONLINE ONLINE db2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 ONLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE db2 STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE db1 Started,STABLE
2 ONLINE ONLINE db2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE db1 STABLE
2 ONLINE ONLINE db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE db2 STABLE
ora.db1.vip
1 ONLINE ONLINE db1 STABLE
ora.db2.vip
1 ONLINE ONLINE db2 STABLE
ora.his.db
1 ONLINE ONLINE db1 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
2 ONLINE ONLINE db2 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
ora.qosmserver
1 ONLINE ONLINE db2 STABLE
ora.scan1.vip
1 ONLINE ONLINE db2 STABLE
--------------------------------------------------------------------------------
SQL> select INST_ID,NAME, protection_mode ,open_mode ,database_role,switchover_status from gv$database;
INST_ID NAME PROTECTION_MODE OPEN_MODE DATABASE_ROLE SWITCHOVER_STAT
---------- ---------- -------------------- --------------- --------------- ---------------
2 HIS MAXIMUM PERFORMANCE READ WRITE PRIMARY NOT ALLOWED
1 HIS MAXIMUM PERFORMANCE READ WRITE PRIMARY NOT ALLOWED