In 11g Release 2, we now have to place the Voting Disk and Cluster Registry files on ASM disks and we do not have the option of placing them on OCFS or raw devices as in the case of previous versions.
When you run the root.sh script as part of the 11gR2 RAC installation, it will create an ASM disk group CDATA and will place the OCR and Voting disk files on this ASM disk. We provide an ASM disk discovery string where the raw devices exist on which the ASM disk groups will be built.
Initially we had provided the ASM diskstring as /dev/ocr_disk* as this was where we wanted to place the OCR and Vote files. But when we tried to change this to create another ASM disk group, we kept getting these ORA-15031 and ORA-15014 errors.
We had to change the asm_diskstring parameter to include both the paths to the existing OCR location as well as the new location for the DATA disk group. We could not change the ASM diskstring to exclude the location of the CDATA disk group.
I think a good practice in 11g RAC installs would be to have only one naming convention for the ASM diskgroups instead of having a number of different names like how we had initially – ocr_disk, vote_disk, data_disk, fra_disk, spfile_disk.
Get the system administrators to name the disks for the RAC 11gR2 installation using one common naming convention like say – asm_disk1,asm_disk2,asm_disk3 and so on.
In that case our asm_diskstring would read just ‘/dev/asm_disk*’ regardless of what ASM disk group was being created.
SQL> create diskgroup DATA external redundancy disk ‘/dev/asm_disk2’ force;
create diskgroup DATA external redundancy disk ‘/dev/asm_disk2’ force
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification ‘/dev/asm_disk2’ matches no disks
ORA-15014: path ‘/dev/asm_disk2′ is not in the discovery set
SQL> alter system set asm_diskstring=’/dev/asm_disk2′;
alter system set asm_diskstring=’/dev/asm_disk2’
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-15014: path ‘/dev/ocr_disk1′ is not in the discovery set
SQL> alter system set asm_diskstring=’/dev/ocr_disk*’,’/dev/asm_disk*’ sid=’*’;
SQL> create diskgroup DATA external redundancy disk ‘/dev/asm_disk2’;