Add disk to ASM RAC
How to add disk to ASM (DATABASE) runing in production server
We have database running on ASM, after two years we faced the problem of space deficiency.
Now we planed to add disk to ASM diskgroup DATAGROUP.
SQL> @asm NAME TOTAL_GB FREE_GB ------------------------------ ---------- ---------- DATAGROUP 249.995117 15.2236328 IDXGROUP 149.99707 10.4892578
Steps are below
1) Create partition of disk /dev/sdm which we got new LUN from Storage
[root@rac-node1 ~]# fdisk -l /dev/sdm Disk /dev/sdm: 85.8 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdm doesn't contain a valid partition table [root@rac-node1 ~]# fdisk /dev/sdm Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 10443. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-10443, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-10443, default 10443): Using default value 10443 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@rac-node1 ~]# fdisk -l /dev/sdm Disk /dev/sdm: 85.8 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdm1 1 10443 83883366 83 Linux [root@rac-node1 ~]#
2) Configure the disk /dev/sdm1 to ASM and giving LABEL DATA5
[root@rac-node1 ~]# /etc/init.d/oracleasm createdisk DATA5 /dev/sdm1 Marking disk "DATA5" as an ASM disk: [ OK ] [root@rac-node1 ~]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [ OK ] [root@rac-node1 ~]# /etc/init.d/oracleasm listdisks DATA3 DATA4 DATA5 DISK1 DISK2 INDEX2 INDEX5 [root@rac-node1 ~]#
Scandisks on RAC -node2
[root@rac-node2 ~]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [ OK ] [root@rac-node2 ~]# /etc/init.d/oracleasm listdisks DATA3 DATA4 DATA5 DISK1 DISK2 INDEX2 INDEX5
Add the disk to /etc/rawdevices
[root@rac-node2 bin]vi /etc/sysconfig/rawdevices
/dev/raw/raw6 /dev/sdm1 ==> add this to rawdevices file
And added to /etc/rc.local for permission on reboot
[root@rac-node2 bin]#vi /etc/rc.local
chmod 660 /dev/raw/raw6
Check the disk status
SQL> set linesize 9999 SQL> ; SELECT NVL(a.name, '[CANDIDATE]') disk_group_name , b.path disk_file_path , b.name disk_file_name , b.failgroup disk_file_fail_group FROM v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number) ORDER BY * a.name SQL> / DISK_GROUP_NAME DISK_FILE_PATH DISK_FILE_NAME DISK_FILE_FAIL_GROUP ------------------------------ -------------- DATAGROUP ORCL:DISK1 DISK1 DISK1 DATAGROUP ORCL:INDEX5 INDEX5 INDEX5 DATAGROUP ORCL:DATA4 DATA4 DATA4 DATAGROUP ORCL:DATA3 DATA3 DATA3 IDXGROUP ORCL:DISK2 DISK2 DISK2 IDXGROUP ORCL:INDEX2 INDEX2 INDEX2 [CANDIDATE] ORCL:DATA5 ==> this is the new disk
7 rows selected.
3) Add disk DATA5 to diskgroup DATAGROUP
SQL> alter diskgroup DATAGROUP ADD DISK 'ORCL:DATA5' ; Diskgroup altered.
Check disk status again
SQL> SELECT
2 NVL(a.name, '[CANDIDATE]') disk_group_name
, b.path disk_file_path
, b.name disk_file_name
3 4 5 , b.failgroup disk_file_fail_group
6 FROM
7 v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
8 ORDER BY
9 a.name;
DISK_GROUP_NAME DISK_FILE_PATH ISK_FILE_NAME DISK_FILE_FAIL_GROUP
----------------------------------------------------------
DATAGROUP ORCL:INDEX5 NDEX5 INDEX5
DATAGROUP ORCL:DATA4 ATA4 DATA4
DATAGROUP ORCL:DISK1 ISK1 DISK1
DATAGROUP ORCL:DATA5 ATA5 DATA5
DATAGROUP ORCL:DATA3 ATA3 DATA3
IDXGROUP ORCL:INDEX2 NDEX2 INDEX2
IDXGROUP ORCL:DISK2 ISK2 DISK2
7 rows selected. There is no candidates any more for DATA5
SQL> host cat script/asm.sql
select name,TOTAL_MB/1024 total_gb,free_mb/1024 FREE_GB from v$asm_diskgroup;
NAME TOTAL_GB FREE_GB
------------------------------ ---------- ----------
DATAGROUP 329.992188 95.21875
IDXGROUP 149.99707 10.4892578
SQL>
Completed.
Comments
Post a Comment