What is voting disk ?

Voting disk is a file that manages information about node membership.

It is located on the shared cluster system or a shared raw device file.

Its primary purpose is to help in a situation where the private network communication fails.

CSS (Cluster Synchronization Service) is the service that determines which nodes in the cluster are available via communication through a dedicated private network and with a voting disk used as a secondary communication mechanism. CSS service is sending heartbeat messages through network and voting disk.

In a situation, when due to private network failure, nodes are not able to synchronize I/O to the shared disks, Therefore some of the nodes will be go to offline stage. At this time VOTING DISK used to communicate the node and trace information, which nodes is in offline stage.

Without the voting disk, it’s difficult to know, whether nodes are facing network problem or nodes are no longer available.

If we are not using voting disk, then due to network failure, nodes are neither able to communicate with each other nor synchronize with database, this situation is called as cluster SPLIT-BRAIN problem.

When any node is not able to send heartbeat to voting disk, then it will reboot itself.

To list currently configured voting disk

Go to $ORA_CRS_HOME/bin directory

[oracle@rac1 bin]$ ./crsctl query css votedisk

0.     0    /apps/oracle/oradata/votingdisk

located 1 votedisk(s).

Backup voting disk :

Run the following command to back up a voting disk. Perform this operation on every voting disk as needed where voting_disk_name is the name of the active voting disk and backup_file_name is the name of the file to which you want to back up the voting disk contents:

dd if=voting_disk_name of=backup_file_name

[oracle@rac1 bin]$ dd if=/apps/oracle/oradata/votingdisk  of=/home/oracle/vote/vote.dmp bs=4k

1309289+1 records in

1309289+1 records out

( vote.dmp is the name of backup file of voting disk)

Recovering Voting Disks

Run the following command to recover a voting disk where backup_file_name is the name of the voting disk backup file and voting_disk_name is the name of the active voting disk:

dd if=backup_file_name of=voting_disk_name

[oracle@rac1 bin]$ dd if=/home/oracle/vote/vote.dmp  of=/apps/oracle/oradata/votingdisk bs=4k

1309289+1 records in

1309289+1 records out

Management of voting disk:

If you have multiple voting disks, then you can remove the voting disks and add them back into your environment using the crsctl delete css votedisk path and crsctl add css votedisk path commands respectively, where path is the complete path of the location on which the voting disk resides.

Changing the Voting Disk Configuration after Installing Real Application Clusters

You can dynamically add and remove voting disks after installing Real Application Clusters.Run the following command as the root user to add a voting disk:

crsctl add css <new_voting_disk_path> path

Run the following command as the root user to remove a voting disk:

crsctl delete css votedisk <old_voting_disk_path>

Note: If oracle clusterware is down on all nodes, then use –force option.

#crsctl add css votedisk <new_voting_disk_path>  -force

#crsctl delete css votedisk <old_voting_disk_path> -force