本例是基於ASMLib建立, 也可以基於裸裝置建立.
1.安裝asm所需要的支援包
A.在Oracle網站下載支援包:這裡
B.根據linux核心下載相應的asm安裝包:
oracleasm-2.6.18-8.el5-2.0.4-1.el5.i686.rpm
oracleasm-2.6.18-8.el5PAE-2.0.4-1.el5.i686.rpm
oracleasm-2.6.18-8.el5xen-2.0.4-1.el5.i686.rpm
oracleasmlib-2.0.3-1.el5.i386.rpm
oracleasm-support-2.0.4-1.el5.i386.rpm
C.安裝 rpm -Uvh .......... --nodeps
1.1 安裝ASMLib
# cd /orahome/wangnc/asmlib
# rpm -Uvh oracleasm-support-2.1.3-1.el4.i386.rpm oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm oracleasmlib-2.0.4-1.el4.i386.rpm
1.2 配置ASMLib
# /etc/init.d/oracleasm configure
...
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
Scan for Oracle ASM disks on boot (y/n) [y]: y
...
# df -ha | grep oracleasm
oracleasmfs 0 0 0 - /dev/oracleasm
附啟用或禁用oracleasm自動啟動方法:
# /etc/init.d/oracleasm disable
# /etc/init.d/oracleasm enable
1.3 物理磁碟分割
對用來做ASM 的硬盤要進行分區(只分一個區, 此處採用硬碟sdb):
# fdisk -l | grep Disk
Disk /dev/sda: 250.0 GB, 250059350016 bytes
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
# fdisk /dev/sdb
Command (m for help): n
p
Partition number (1-4): 1
First cylinder (1-30401, default 1): <enter>
Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): <enter>
Command (m for help): w
# fdisk -l /dev/sdb
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 30401 244196001 83 Linux
1.4 建立ASM磁碟
這些磁碟是不包含任何內容的空磁碟, 建立時物理磁碟要帶分區號如sdb1.
ASM磁碟名可以為大寫字母,數字和底線, 且以字母開始:
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk "VOL1" as an ASM disk: [ OK ]
如果提示Failed, 可以追蹤記錄檔:
# tail -f /var/log/oracleasm
附刪除磁碟語句:
# /etc/init.d/oracleasm deletedisk VOL1
檢查配置情況:
# /etc/init.d/oracleasm querydisk VOL1
# /etc/init.d/oracleasm querydisk /dev/sdb1
# /etc/init.d/oracleasm listdisks
# ls -l /dev/oracleasm/disks/*
# /etc/init.d/oracleasm status
1.5 建初始化參數檔案
注意asm_diskstring必需配置成'ORCL:'開頭.
# su - oracle
$ export ORACLE_SID=+ASM
$ vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora
asm_diskstring='ORCL:VOL*'
background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'
core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'
user_dump_dest='/u01/app/oracle/admin/+ASM/udump'
instance_type='asm'
large_pool_size=12M
remote_login_passwordfile='SHARED'