oracle11g-asm实例中asmlib和raw的使用问题
在oracle11g中,配置asm實(shí)例會用到raw(裸設(shè)備)或者asmlib或者直接使用磁盤分區(qū)(這個(gè)特性也是11g的特性)。由于oracle11g中,已經(jīng)將asm和數(shù)據(jù)庫完全脫離,這句話的意思就是以前在10g的時(shí)候,asm實(shí)例是在安裝oracle軟件之后,才配置實(shí)例(借助dbca),而在oracle11g中,asm實(shí)例已經(jīng)由grid單獨(dú)安裝來配置了,也是11g中的第一大特性。
Linux?5下的操作:
1)?使用raw設(shè)備
在創(chuàng)建3個(gè)分區(qū)sda8,sda9,sda10之后,start_udev(具體如何在linux5下創(chuàng)建raw,在此不介紹),從而有了3個(gè)raw,即/dev/raw/raw1??/dev/raw/raw2??/dev/raw/raw3
?
2)?使用asmlib
在創(chuàng)建了3個(gè)分區(qū)之后,可以使用如下命令,創(chuàng)建3個(gè)asmdisk:
#/etc/init.d/oracleasm createdisk asmdisk01 /dev/sda8
#/etc/init.d/oracleasm createdisk asmdisk02 /dev/sda9
#/etc/init.d/oracleasm createdisk asmdisk03 /dev/sda10
???
查看asmdisk:
#/etc/init.d/oracleasm listdisks
ASMDISK01
ASMDISK02
ASMDISK03
?
3)?直接使用磁盤分區(qū),由于這個(gè)比較簡單,只需要安裝grid時(shí),測試一下即可。
?
如上,現(xiàn)在已經(jīng)建好了兩種方式下的asm可用disk,現(xiàn)在安裝grid的過程中,可能由于磁盤組的問題,最終導(dǎo)致沒有安裝成功,但crs已經(jīng)沒有問題了,如下:
[grid@yanfa2 dbs]$ crs_stat -t -v
Name??????????Type??????????R/RA??F/FT??Target???State????Host???????
----------------------------------------------------------------------
ora....ER.lsnr ora....er.type 0/5???0/????ONLINE???ONLINE???yanfa2?????
ora.cssd??????ora.cssd.type?0/5???0/5???ONLINE???ONLINE???yanfa2?????
ora.diskmon???ora....on.type 0/10??0/5???ONLINE???ONLINE???yanfa2
但asm實(shí)例確不能啟動,錯(cuò)誤信息如下:
SQL> startup
ORA-00099: warning: no parameter file specified for ASM instance
ASM instance started
?
Total System Global Area?283930624 bytes
Fixed Size?????????????????2212656 bytes
Variable Size????????????256552144 bytes
ASM Cache?????????????????25165824 bytes
ORA-15110: no diskgroups mounted
?
此時(shí)有兩個(gè)問題,第一個(gè)就是沒有asm實(shí)例啟動需要的參數(shù)文件,目前使用的默認(rèn)值,還有第二個(gè)問題就是沒有diskgroup,用asmcmd也可以查看到,目前實(shí)例是沒有diskgroup的。
解決辦法就是用創(chuàng)建diskgroup,可以用asmca,打開頁面之后,能看到6塊disk,其中3塊是/dev/raw/raw*格式的,另3塊是ORCL:ASMDISK0*格式的,如果此時(shí)選擇ORCL:這樣的disk,那么此diskgroup是不會創(chuàng)建成功的,換成用/dev/raw/raw*的,create asm時(shí)就可以成功了。然后在實(shí)例起來之后,也可以用命令創(chuàng)建另一個(gè)diskgroup,如下:
CREATE DISKGROUP fra EXTERNAL REDUNDANCY DISK 'ORCL:ASMDISK03';
CREATE DISKGROUP fra EXTERNAL REDUNDANCY DISK 'ORCL:ASMDISK03'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15072: command requires at least 1 failure groups, discovered only 0
此時(shí),再查看以下信息:
SQL>?create diskgroup fra external redundancy disk '/dev/raw/raw3';
?
Diskgroup created.
SQL> select PATH, MOUNT_STATUS, HEADER_STATUS, MODE_STATUS, STATE from V$ASM_DISK;
?
PATH
--------------------------------------------------------------------------------
MOUNT_S HEADER_STATU MODE_ST STATE
------- ------------ ------- --------
ORCL:ASMDISK03
CLOSED?UNKNOWN?????ONLINE?NORMAL
?
ORCL:ASMDISK01
CLOSED?UNKNOWN?????ONLINE?NORMAL
?
ORCL:ASMDISK02
CLOSED?UNKNOWN?????ONLINE?NORMAL
?
?
PATH
--------------------------------------------------------------------------------
MOUNT_S HEADER_STATU MODE_ST STATE
------- ------------ ------- --------
/dev/raw/raw2
CACHED?MEMBER??????ONLINE?NORMAL
?
/dev/raw/raw1
CACHED?MEMBER??????ONLINE?NORMAL
?
/dev/raw/raw3
CACHED?MEMBER??????ONLINE?NORMAL
?
?
6 rows selected.
?
可以看出,一旦使用/dev/raw/raw*的disk是可以創(chuàng)建成功的,再來看下ORCL:ASMDISK0*的header_status的狀態(tài)為UNKNOWN。根據(jù)metalink上的一篇文章【ID 396015.1】,如下:
?
Applies to:
Oracle?Server?- Enterprise Edition - Version: 10.2.0.1 to 10.2.0.4 - Release: to 10.2
Information in this document applies to any platform.
?
Symptoms
When a diskgroup with external redundancy needs to be created on a NetApps with iSCSI following errors might occur:
?
?
CREATE DISKGROUP KNVB EXTERNAL
REDUNDANCY DISK 'ORCL:DISK1';
CREATE DISKGROUP KNVB EXTERNAL REDUNDANCY DISK 'ORCL:DISK1'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15072: command requires at least 1 failure groups, discovered only 0
Error message from bdump alert log file
=======================================
...
Wed Oct 18 15:45:46 2006
ORA-15186: ASMLIB error function = [asm_open], error = [1], mesg = [Operation not permitted]
Wed Oct 18 15:45:46 2006
ORA-15186: ASMLIB error function = [asm_open], error = [1], mesg = [Operation not permitted]
?
The disk HEADER_STATUS from V$ASM_DISK is UNKNOWN instead of CANDIDATE or PROVISIONED
?
Cause
Oracleasm is able to create and stamp the ASM disk, because the soft link from the mapper,
but the ASM instance cannot see the disks (HEADER_STATUS is UKNOWN instead of PROVISONED) as the soft links were mounted in /etc/fstab as /data/...
?
If NetApp is used, then the /etc/fstab file should be checked.
The disks stammped by oracleasm should not be present in this file.
?
If EMC based storage but use the normal Linux multipath driver is used, then the following map settings should be set in /etc/sysconfig/oracleasm
?
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER="multipath sd"
?
# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan ORACLEASM_SCANEXCLUDE="sd"
?
Solution
1. If the customer is using NetApp check the /etc/fstab file for any mount points including the NetApp disks
???E.g: umount /data/....
???Connect to the ASM instance
conn / as sysdba
select PATH, MOUNT_STATUS, HEADER_STATUS, MODE_STATUS, STATE from V$ASM_DISK;
?
You should see the HEADER_STATUS as PROVISIONED instead of UNKNOWN.
?
Now you can create the diskgroup with external redundancy
Eg:CREATE DISKGROUP KNVB EXTERNAL REDUNDANCY DISK 'ORCL:DISK1';
2. If EMC based storage but use the normal Linux multipath driver is used, then please make the following changes in the /etc/sysconfig/oracleasm file.
?
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER="multipath sd"
?
# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan ORACLEASM_SCANEXCLUDE="sd"
Note that the asm_diskstring should be set to "ORCL:*"
?
以上信息為文章內(nèi)容,根據(jù)提示,可以將/etc/sysconfig/oracleasm修改下,并且我在asm的$ORACLE_HOME/dbs下創(chuàng)建了一個(gè)參數(shù)文件init+ASM.ora,內(nèi)容只有
*.asm_diskgroups = ‘DATA’
*.asm_diskstring = ‘ORCL:*’
經(jīng)過如上修改,在restart oracleasm之后,asm終于正常了。
SQL> ALTER DISkgroup fra mount;
?
Diskgroup altered.
?
SQL> select PATH, MOUNT_STATUS, HEADER_STATUS, MODE_STATUS, STATE from V$ASM_DISK;
?
PATH
--------------------------------------------------------------------------------
MOUNT_S HEADER_STATU MODE_ST STATE
------- ------------ ------- --------
ORCL:ASMDISK01
CACHED?MEMBER??????ONLINE?NORMAL
?
ORCL:ASMDISK02
CACHED?MEMBER??????ONLINE?NORMAL
?
ORCL:ASMDISK03
CACHED?MEMBER??????ONLINE?NORMAL
?
總結(jié)
以上是生活随笔為你收集整理的oracle11g-asm实例中asmlib和raw的使用问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 11gR2 RAC roo
- 下一篇: 数据表创建参数介绍