本文参考:https://levipereira.wordpress.com/2012/01/11/explaining-how-to-store-ocr-voting-disks-and-asm-spfile-on-asm-diskgroup-rac-or-rac-extended/
在这篇文章中,我将展示它是如何在Linux上配置的详细步骤,如何在其他平台上配置,你可以使用此Oracle白皮书:
(http://www.oracle.com/technetwork/database/clusterware/overview/grid-infra-thirdvoteonnfs-131158.pdf)
以下配置仅限于Linux平台
准备NFS服务器:(oracle推荐3rd votedisk使用独立的主机)
# mkdir /votedisk
# vi /etc/exports
/votedisk *(rw,sync,all_squash,anonuid=54321,anongid=54325)
设置NFS客户端
# cat /etc/filesystem
lnxnfs:/votedisk /voting_disk nfs rw,bg,hard,intr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600 0 0
挂载 /voting_disk在集群中的所有节点,并检查它们是否具有正确的选项
# mount /voting_disk
$ mount |grep voting_disk
lnxnfs:/votedisk on /voting_disk type nfs (rw,bg,hard,intr,rsize=32768,wsize=32768,tcp,nfsvers=3,timeo=600,noac,addr=192.168.217.45)
创建一个磁盘文件供ASM使用
$ dd if=/dev/zero of=/voting_disk/asm_vote_quorum bs=10M count=58
58+0 records in
58+0 records out
608174080 bytes (608 MB) copied, 3.68873 seconds, 165 MB/s
# chmod 660 /voting_disk/asm_vote_quorum
# chown oracle.asmadmin /voting_disk/asm_vote_quorum
# ls -ltr /voting_disk/asm_vote_quorum
-rw-rw---- 1 oracle asmadmin 608174080 Jan 10 20:00 /voting_disk/asm_vote_quorum
在ASM中添加新disk
SQL> show parameter asm_diskstring
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string ORCL:*
SQL> ALTER SYSTEM SET asm_diskstring ='ORCL:*','/voting_disk/asm_vote_quorum' SCOPE=both SID='*';
SQL> show parameter asm_diskstring
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------------
asm_diskstring string ORCL:*, /voting_disk/asm_vote_quorum
$ asmcmd dsget
parameter:ORCL:*, /voting_disk/asm_vote_quorum
profile:ORCL:*,/voting_disk/asm_vote_quorum
在ASM中检查这个新的磁盘是否可用
$ kfod disks=all
--------------------------------------------------------------------------------
Disk Size Path User Group
================================================================================
1: 580 Mb /voting_disk/asm_vote_quorum oracle asmadmin
2: 486 Mb ORCL:CRS01
3: 486 Mb ORCL:CRS02
.
.
.
9: 580 Mb ORCL:VOTE01
10: 580 Mb ORCL:VOTE02
11: 580 Mb ORCL:VOTE03
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
+ASM3 /u01/app/11.2.0/grid
+ASM1 /u01/app/11.2.0/grid
+ASM2 /u01/app/11.2.0/grid
SQL> col path for a30
SQL>
select path,header_status
from v$asm_disk
where path like '%vote_quorum%';
PATH HEADER_STATUS
------------------------------ --------------------
/voting_disk/asm_vote_quorum CANDIDATE
SQL> ALTER DISKGROUP VOTE
ADD
QUORUM FAILGROUP STG_NFS DISK '/voting_disk/asm_vote_quorum';
Diskgroup altered.
$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE aaa75b9e7ce24f39bfd9eecb3e3c0e38 (ORCL:VOTE01) [VOTE]
2. ONLINE 873d51346cd34fc2bf9caa94999c4cd8 (ORCL:VOTE02) [VOTE]
3. ONLINE 51f29389684e4f60bfb4b1683db8bd09 (/voting_disk/asm_vote_quorum) [VOTE]
Located 3 voting disk(s).
SQL>
SET LINESIZE 150
COL PATH FOR A30
COL NAME FOR A10
COL HEADER_STATUS FOR A20
COL FAILGROUP FOR A20
COL FAILGROUP_TYPE FOR A20
COL VOTING_FILE FOR A20
SELECT NAME,PATH,HEADER_STATUS,FAILGROUP, FAILGROUP_TYPE, VOTING_FILE
FROM V$ASM_DISK
WHERE GROUP_NUMBER = ( SELECT GROUP_NUMBER
FROM V$ASM_DISKGROUP
WHERE NAME='VOTE');
NAME PATH HEADER_STATUS FAILGROUP FAILGROUP_TYPE VOTING_FILE
---------- ------------------------------ -------------------- -------------------- -------------------- --------------------
VOTE01 ORCL:VOTE01 MEMBER STG1_C1 REGULAR Y
VOTE02 ORCL:VOTE02 MEMBER STG1_C2 REGULAR Y
VOTE03 ORCL:VOTE03 MEMBER STG1_C1_1 REGULAR N
VOTE_0003 /voting_disk/asm_vote_quorum MEMBER STG_NFS QUORUM Y
### 使用WAIT选项,当你删除asmdisk,不会释放提示,直到完成重新平衡操作。
SQL> ALTER DISKGROUP VOTE
DROP DISK 'VOTE03'
REBALANCE POWER 3 WAIT;
Diskgroup altered.
NAME PATH HEADER_STATUS FAILGROUP FAILGROUP_TYPE VOTING_FILE
---------- ------------------------------ -------------------- -------------------- -------------------- --------------------
VOTE01 ORCL:VOTE01 MEMBER STG1_C1 REGULAR Y
VOTE02 ORCL:VOTE02 MEMBER STG1_C2 REGULAR Y
VOTE_0003 /voting_disk/asm_vote_quorum MEMBER STG_NFS QUORUM Y