If you are using ASMLib
for your ASM storage and it is working perfectly fine; then, after adding a new ASM Disk you suddenly realize that although new disk is being
listed by “oracleasm listdisks” command, it is still not appearing in V$ASM_DISK view. As
a result, you are not able to add this new disk in your diskgroup because disk
is not accessible to ASM instance. One reason of this could be that ASMLib
configuration is not as it should be. Reasons could be: OS patching, oracleasm kernel
driver update etc.
Since configuration was missing, I needed to re-configure ASMLib. Following is the procedure to do this. Highlighted in red are the input values to the configuration command.
After the re-configuration, we can check the disks permissions once again that are now correctly set for DATA05 disk.
Disk is now also visible in V$ASM_DISK view.
Following is a real world example of this
scenario when I was not able to see a disk in V$ASM_DISK after I added a new
disk using ASMLib.
[root@mydbserver ~]# oracleasm createdisk DATA05
/dev/sdn1
Writing disk header: done
Instantiating disk: done
[root@mydbserver ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@mydbserver ~]# oracleasm listdisks
DATA01
DATA02
DATA03
DATA04
DATA05
|
Querying V$ASM_DISK
[root@mydbserver ~]# su - grid
[grid@mydbserver ~]$ sqlplus
SQL*Plus: Release 11.2.0.4.0 Production on Mon Jul
2 11:12:04 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter user-name: sys as sysasm
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release
11.2.0.4.0 - 64bit Production
With the Automatic Storage Management option
SQL> select os_mb,name,header_status from
v$asm_disk;
OS_MB
NAME
HEADER_STATU
---------- ------------------------------
------------
262138
DATA01 MEMBER
262138
DATA02 MEMBER
262138
DATA03 MEMBER
262138
DATA04 MEMBER
|
As you can see DATA05
is not accessible to ASM instance.
Checking ASM disks permissions
When I checked ASM disks
permissions, it became clear that something was wrong with ASMLib. You can see
permissions difference between old disks and the new one that I just added.
[root@mydbserver ~]# cd /dev/oracleasm/disks
[root@mydbserver disks]# ls -l
total 0
brw-rw---- 1 root root 8, 145 Dec 4
2017 DATA01
brw-rw---- 1 root root 8, 161 Dec 4
2017 DATA02
brw-rw---- 1 root root 8, 177 Dec 4
2017 DATA03
brw-rw---- 1 root root 8, 49 Dec
4 2017 DATA04
brw------- 1 root root 8, 209 Jul 2 11:11 DATA05
|
Checking and Re-setting ASM configuration
When I checked ASM configuration,
it was evident that ASM configuration has gone missing. You can see that ORACLEASM_UID and ORACLEASM_GID are missing.
[root@mydbserver disks]# /usr/sbin/oracleasm
configure
ORACLEASM_ENABLED=false
ORACLEASM_UID=
ORACLEASM_GID=
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"
|
Since configuration was missing, I needed to re-configure ASMLib. Following is the procedure to do this. Highlighted in red are the input values to the configuration command.
[root@mydbserver
disks]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the
Oracle ASM library
driver. The
following questions will determine whether the driver is
loaded on boot and what permissions it will
have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]:
y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration:
done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@mydbserver
disks]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@mydbserver disks]# oracleasm listdisks
DATA01
DATA02
DATA03
DATA04
DATA05
[root@mydbserver
disks]# /usr/sbin/oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=grid
ORACLEASM_GID=asmadmin
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"
|
After the re-configuration, we can check the disks permissions once again that are now correctly set for DATA05 disk.
[root@mydbserver ~]# cd /dev/oracleasm/disks
[root@mydbserver disks]# ls -l
total 0
brw-rw---- 1 grid asmadmin 8, 145 Dec 4
2017 DATA01
brw-rw---- 1 grid asmadmin 8, 161 Dec 4
2017 DATA02
brw-rw---- 1 grid asmadmin 8, 177 Dec 4
2017 DATA03
brw-rw---- 1 grid asmadmin 8, 49 Dec
4 2017 DATA04
brw-rw---- 1 grid asmadmin 8, 209 Jul 2 11:11 DATA05
|
Disk is now also visible in V$ASM_DISK view.
SQL> select path,os_mb,state,header_status,name
from v$asm_disk;
PATH OS_MB STATE HEADER_STATU
NAME
-------------------- ---------- --------
------------ -----------------------------------
ORCL:DATA05 262138 NORMAL PROVISIONED
ORCL:DATA01 262138 NORMAL MEMBER DATA01
ORCL:DATA02 262138 NORMAL MEMBER DATA02
ORCL:DATA03 262138 NORMAL MEMBER DATA03
ORCL:DATA04
262138 NORMAL MEMBER DATA04
|
Adding disk to the ASM diskgroup
Now this disk can either be added to an existing diskgroup, or a new diskgroup can be created using this disk.
SQL> ALTER DISKGROUP DATA ADD DISK ‘ORCL:DATA05’;
|
ReplyDeletei have my single instance database up and running with ASM.
i want to convert this database to RAC ...
i have shared same disks on node2
when i do fdisk -l
i can see all those disks on node2
root:oracleasm configure -i
root:/usr/sbin/oracleasm init
oracleasm listdisks is not showing my disks on node2 ......
can anyone advise ?
Did you execute "oracleasm scandisks" ?
DeleteDo you see disks listed under "/dev/oracleasm/disks" directory? The ownership should be same as I mentioned above in the article.