配置並建立ASM

bomei發表於2007-10-09

安裝Oracle ASMLib
下載ASMLib 需要的三個檔案:
asmlib:
6/oracleasmlib-1.0.0-1.i386.rpm
asm-support:
hel3/x86/oracleasm-support-1.0.2-1.i386.rpm
asm-kernel:he
l3/x86/oracleasm-2.4.21-EL-1.0.0-1.i686.rpm

[@more@]如果是多處理器的版本,那麼可以下載下面這個檔案替換上面的第三個檔案:
asm-smp-kernel:
S/rhel3/x86/oracleasm-2.4.21-EL-smp-1.0.0-1.i686.rpm
安裝:
$su –
# rpm -Uvh oracleasm-support-1.0.2-1.i386.rpm
oracleasm-lib-1.0.0-1.i386.rpm
oracleasm-2.4.21-EL-1.0.0-1.i686.rpm
配置ASMLib:
# /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 without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration [ OK ]
Creating /dev/oracleasm mount point [ OK ]
Loading module "oracleasm" [ OK ]
Mounting ASMlib driver filesystem [ OK ]
Scanning system for ASM disks [ OK ]
以上操作將載入oracleasm.o 驅動,並且mount 上ASM 檔案系統,同時我們可以透過以
下命令來手工的解除安裝和載入ASMLib
# /etc/init.d/oracleasm disable
DataPower Kamus
第 8 頁 共 17 頁
Writing Oracle ASM library driver configuration [ OK ]
Unmounting ASMlib driver filesystem [ OK ]
Unloading module "oracleasm" [ OK ]
# /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration [ OK ]
Loading module "oracleasm" [ OK ]
Mounting ASMlib driver filesystem [ OK ]
Scanning system for ASM disks [ OK ]
如果當前作業系統的核心和編譯ASMLib 的核心不同,那麼上面的操作將會出錯,請檢查
/var/log/messages 檔案,確認需要更新的系統核心版本。
新增init 檔案使系統啟動時自動載入ASMLib
$ su –
# cd /etc/rc3.d
# ln -s ../init.d/oracleasm S99oracleasm
# ln -s ../init.d/oracleasm K01oracleasm
注意:如果系統啟動是自動進入圖形介面,也就是系統的init level 是5,那麼上面生成鏈
接的命令應該在/etc/rc5.d 目錄中操作。
重新啟動系統,確認ASMLib 已經可以自動載入
#lsmod | grep oracleasm
oracleasm 14224 1
#dmesg | grep oracleasm
ASM: oracleasmfs mounted with options:
建立ASM 磁碟
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb
Marking disk "/dev/sdb" as an ASM disk [ OK ]
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc
Marking disk "/dev/sdc" as an ASM disk [ OK ]
# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd
Marking disk "/dev/sdd" as an ASM disk [ OK ]
#/etc/init.d/oracleasm createdisk VOL4 /dev/sde
Marking disk "/dev/sde" as an ASM disk [ OK ]
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
DataPower Kamus
第 9 頁 共 17 頁
如果要刪除ASM 磁碟透過以下命令:
# /etc/init.d/oracleasm deletedisk VOL4
Removing ASM disk "VOL4" [ OK ]
注意:如果是在RAC 環境中的某一個節點中新增了ASM 磁碟,那麼需要在其它的節點上
執行scandisk 來獲取這種變化。
# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks [ OK ]
詳細的安裝文件可以透過以下連線檢視:

現在我們已經完成了建立ASM 例項的物理基礎,下面開始安裝資料庫。
安裝Oracle10g
在RHEL3 上安裝Oracle10g 已經是非常簡單的操作了,只要系統核心引數設定正確,幾
乎不會碰到任何問題。
從以下連線可以得到在RHEL3 上安裝Oracle10g 的詳細步驟,本文不再贅述。

在安裝Oracle10g 的時候,我們選擇不建立資料庫,只安裝軟體的方式,在軟體安裝結束
以後再透過dbca 來建立ASM 例項和資料庫。
建立ASM 例項
1. 建立初始化檔案
$ su – oracle
$ cd $ORACLE_HOME/dbs
$ vi init+ASM.ora
建立asm 例項的初始化指令碼,指令碼內容如下所示:
# ******Below is init script for asm instance******
*.asm_diskstring='ORCL:VOL*'
*.background_dump_dest='/oracle/admin/+ASM/bdump'
*.core_dump_dest='/oracle/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
DataPower Kamus
第 10 頁 共 17 頁
*.user_dump_dest='/oracle/admin/+ASM/udump'
# ******Above is init script for asm instance******
說明:
1. dump 目錄指向$ORACLE_BASE/,本文中ASM 例項的SID 是+ASM。最好
不要修改這個例項名,否則在下一步用dbca 建立資料庫的時候,dbca 將找不到可用的磁
盤組,我想這應該是dbca 的一個bug,手工建立ASM 型別的資料庫就應該沒有這個限制
了。
2. asm_diskstring 用於例項啟動的時候檢查可用的ASM 磁碟,由於我們前面建立ASM
磁碟的名稱是VOL1 到VOL4,所以我們此處使用*萬用字元,前面的’ORCL:’不可以省略,
否則ASM 例項將無法檢查到磁碟。
2. 建立密碼檔案
$ su – oracle
$ cd $ORACLE_HOME/dbs
$ orapwd file=orapw+ASM password=dba
3. 建立目錄結構
$ su – oracle
$ cd $ORACLE_HOME/dbs
$ mkdir –p $ORALCE_BASE/admin/+ASM/udump
$ mkdir –p $ORALCE_BASE/admin/+ASM/bdump
$ mkdir –p $ORALCE_BASE/admin/+ASM/cdump
4. 啟動例項
$ export ORACLE_SID=+ASM
$ sqlplus / as sysdba
SQL> startup
ASM instance started
Total System Global Area 100663296 bytes
Fixed Size 777616 bytes
Variable Size 99885680 bytes
Database Buffers 0 bytes
Redo Buffers 0 bytes
ORA-15110: no diskgroups mounted
因為我們是首次啟動asm 例項,還沒有建立diskgroup,所以顯示15110 錯誤是正常的。
如果啟動例項的時候碰到如下報錯:
ORA-29701: unable to connect to Cluster Manager
那麼請檢查/etc/inittab 檔案,看看是否有下面這行
h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 如果沒有請新增,如果被註釋了請取消註釋。
DataPower Kamus
第 11 頁 共 17 頁
5. 建立spfile,重新啟動
SQL> create spfile from pfile;
SQL> shutdown immediate;
SQL> startup;
6. 建立diskgroup
SQL> create diskgroup dgroup1 normal redundancy
2 failgroup fgroup1 disk 'ORCL:VOL1','ORCL:VOL2'
3 failgroup fgroup2 disk 'ORCL:VOL3','ORCL:VOL4';
Diskgroup created.
SQL> col name for a10
SQL> select name,state from v$asm_diskgroup;
NAME STATE
---------- ----------------------
DGROUP1 MOUNTED
如果上述命令返回的state 是DISMOUNTED,那麼我們需要手工將掛載diskgroup
SQL> ALTER DISKGROUP dgroup1 MOUNT;
Diskgroup altered.
此時檢查資料庫初始化引數,發現asm_diskgroups 引數值已經自動設定為DGROUP1,
這表明在下次啟動asm 例項的時候,這個diskgroup 會被自動掛載。
SQL> col name for a10
SQL> col type for a10
SQL> col value for a20
SQL> show parameter asm_diskgroups
NAME TYPE VALUE
------------------------------------ ---------- ------------------------------
asm_diskgroups string DGROUP1
如果要解除安裝diskgroup,使用下面的命令:
ALTER DISKGROUP ALL DISMOUNT;

然後便可以使用DBCA工具配置ASM例項了.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7272495/viewspace-975434/,如需轉載,請註明出處,否則將追究法律責任。

相關文章