Adding ASM disk after ORA-15041: diskgroup space exhausted

ERROR at line 1:
ORA-01119: error in creating database file '+DATA'
ORA-17502: ksfdcre:4 Failed to create file +DATA
ORA-15041: diskgroup space exhausted


Check the diskspace in ASM:
SQL> select GROUP_NUMBER, NAME,TOTAL_MB, FREE_MB, USABLE_FILE_MB from V$ASM_DISKGROUP;

GROUP_NUMBER NAME TOTAL_MB FREE_MB USABLE_FILE_MB
------------ ------------------------------ ---------- ---------- --------------
1 ARCHIVELOGS 1349 1283 1283
2 DATA 2039 4 4
3 ONLINELOGS 705 581 581

SQL> select substr(name,1,10) name,substr(path,1,20) path, REDUNDANCY, TOTAL_MB, os_mb, free_mb from V$ASM_DISK where GROUP_NUMBER = 2;

NAME PATH REDUNDA TOTAL_MB OS_MB FREE_MB
---------- -------------------- ------- ---------- ---------- ----------
VOL1 ORCL:VOL1 UNKNOWN 2039 2039 4


First try to extend current diskgroup. 

SQL> ALTER DISKGROUP data RESIZE DISK VOL1 size 4G;
ALTER DISKGROUP data RESIZE DISK VOL1 size 4G
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15289: ASM disk VOL1 cannot be resized beyond 2039 M

Diskgroup cannot be extended. Only solution is to add a new disk.
After adding the new disk, the new disk device is /dev/sde

List all current disks on Linux:
sfdisk -l

Now create a partition on /dev/sde to span the whole disk.

[root@dbvisit32 /]# fdisk /dev/sde

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-261, default 261):
Using default value 261

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@dbvisit32 /]# ls -la /dev/sde*
brw-r----- 1 root disk 8, 64 Jun 7 11:59 /dev/sde
brw-r----- 1 root disk 8, 65 Jun 7 11:59 /dev/sde1


Partition /dev/sde1 is now created.

Now make the disk available to ASM.

[root@dbvisit31 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
[root@dbvisit31 ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sde1
Marking disk "/dev/sde1" as an ASM disk: [ OK ]
[root@dbvisit31 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4


Go back to ASM and add the new disk.


# export ORACLE_SID=+ASM

# export ORACLE_HOME=/u01/app/ora11g/product/11.2.0/grid

# sqlplus "/as sysdba"

SQL> select substr(name,1,10) name,substr(path,1,20) path, REDUNDANCY, TOTAL_MB, os_mb, free_mb from V$ASM_DISK;

NAME PATH REDUNDA TOTAL_MB OS_MB FREE_MB
---------- -------------------- ------- ---------- ---------- ----------
ORCL:VOL4 UNKNOWN 0 2047 0
VOL1 ORCL:VOL1 UNKNOWN 2039 2039 215
VOL2 ORCL:VOL2 UNKNOWN 705 705 606
VOL3 ORCL:VOL3 UNKNOWN 1349 1349 1214


SQL> conn /as sysman

SQL> ALTER DISKGROUP DATA ADD DISK 'ORCL:VOL4';

SQL> select substr(name,1,10) name,substr(path,1,20) path, REDUNDANCY, TOTAL_MB, os_mb, free_mb from V$ASM_DISK where GROUP_NUMBER = 2;

NAME PATH REDUNDA TOTAL_MB OS_MB FREE_MB
---------- -------------------- ------- ---------- ---------- ----------
VOL1 ORCL:VOL1 UNKNOWN 2039 2039 368
VOL4 ORCL:VOL4 UNKNOWN 2047 2047 1892


All done. Disk group DATA now has an extra 2G.

你可能感兴趣的:(Adding ASM disk after ORA-15041: diskgroup space exhausted)