Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         499     4008186   83  Linux

/dev/sdb2             500         585      690795   83  Linux

/dev/sdb3             586         622      297202+  83  Linux

/dev/sdb4             623         652      240975   83  Linux


其中以下分区用于创建ASM盘  

/dev/sdb2

/dev/sdb3

/dev/sdb4


2、下载和内核相关的asm rpm包,其网址为

http://www.oracle.com/technology/tech/linux/asmlib/index.html


当前内核为

[root@dbsvr /]# uname -a

Linux dbsvr 2.6.9-42.EL #1 Wed Jul 12 23:15:20 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux


[root@dbsvr admin]# more /etc/issue

Red Hat Enterprise Linux AS release 4 (Nahant Update 4)

Kernel \r on an \m


下载asm包的版本为

[root@dbsvr tmp]# rpm -qa|grep asm

oracleasm-support-2.1.3-1.el4

oracleasm-2.6.9-42.EL-debuginfo-2.0.5-1.el4

oracleasmlib-2.0.4-1.el4

oracleasm-2.6.9-42.EL-2.0.5-1.el4


3、安装rpm包

其安装顺序为

[root@dbsvr tmp]# rpm -ivh oracleasm-support-2.1.3-1.el4.x86_64.rpm

Preparing...                ########################################### [100%]

1:oracleasm-support      ########################################### [100%]

[root@dbsvr tmp]# rpm -ivh  oracleasm-2.6.9-42.EL-2.0.5-1.el4.x86_64.rpm

Preparing...                ########################################### [100%]

1:oracleasm-2.6.9-42.EL  ########################################### [100%]

[root@dbsvr tmp]# rpm -ivh oracleasm-2.6.9-42.EL-debuginfo-2.0.5-1.el4.x86_64.rpm

Preparing...                ########################################### [100%]

1:oracleasm-2.6.9-42.EL-d########################################### [100%]

[root@dbsvr tmp]# rpm -ivh  oracleasmlib-2.0.4-1.el4.x86_64.rpm

Preparing...                ########################################### [100%]

1:oracleasmlib           ########################################### [100%]


4、配置asm lib


[root@dbsvr tmp]# /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 []: 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

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver: [FAILED]


晕,出问题了,尝试将SELINUX设置disabled

[root@dbsvr tmp]#  vi /etc/sysconfig/selinux


# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#       enforcing - SELinux security policy is enforced.

#       permissive - SELinux prints warnings instead of enforcing.

#       disabled - SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

#       targeted - Only targeted network daemons are protected.

#       strict - Full SELinux protection.

SELINUXTYPE=targeted


[root@dbsvr tmp]#  setenforce 0

[root@dbsvr tmp]#  /usr/sbin/sestatus

SELinux status:         enabled

SELinuxfs mount:        /selinux

Current mode:           permissive

Mode from config file:  disabled

Policy version:         18

Policy from config file:targeted


Policy booleans:

allow_syslog_to_console inactive

allow_ypbind            inactive

dhcpd_disable_trans     inactive

httpd_builtin_scripting active

httpd_disable_trans     inactive

httpd_enable_cgi        active

httpd_enable_homedirs   active

httpd_ssi_exec          active

httpd_tty_comm          inactive

httpd_unified           active

mysqld_disable_trans    inactive

named_disable_trans     inactive

named_write_master_zonesinactive

nscd_disable_trans      inactive

ntpd_disable_trans      inactive

pegasus_disable_trans   inactive

portmap_disable_trans   inactive

postgresql_disable_transinactive

snmpd_disable_trans     inactive

squid_disable_trans     inactive

syslogd_disable_trans   inactive

use_nfs_home_dirs       inactive

use_samba_home_dirs     inactive

use_syslogng            inactive

winbind_disable_trans   inactive

ypbind_disable_trans    inactive


[root@dbsvr tmp]# reboot


Broadcast message from root (pts/2) (Sun Aug 23 17:01:10 2009):


The system is going down for reboot NOW!

[root@dbsvr tmp]# /usr/sbin/sestatus

SELinux status:         disabled


[root@dbsvr tmp]# /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 [oracle]:

Default group to own the driver interface [dba]:

Start Oracle ASM library driver on boot (y/n) [y]:

Scan for Oracle ASM disks on boot (y/n) [y]:

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver: [  OK  ]

Scanning the system for Oracle ASMLib disks: [  OK  ]


可以利用 /etc/init.d/oracleasm 的 'enable' 和 'disable' 选项来启用或禁用自动启动。


[root@dbsvr tmp]# /etc/init.d/oracleasm disable

Writing Oracle ASM library driver configuration: done

Dropping Oracle ASMLib disks: [  OK  ]

Shutting down the Oracle ASMLib driver: [  OK  ]


[root@dbsvr tmp]# /etc/init.d/oracleasm enable

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver: [  OK  ]

Scanning the system for Oracle ASMLib disks: [  OK  ]


5、对磁盘组的操作


1)创建asm磁盘组


[root@dbsvr tmp]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb2

Marking disk "VOL1" as an ASM disk: [  OK  ]

[root@dbsvr tmp]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdb3

Marking disk "VOL2" as an ASM disk: [  OK  ]

[root@dbsvr tmp]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdb4

Marking disk "VOL3" as an ASM disk: [  OK  ]


注意:磁盘名称是 ASCII 大写字母、数字和下划线。它们必须以字母开始。


2)当然不再被 ASM 使用的磁盘也可以取消标记


[root@dbsvr tmp]#  /etc/init.d/oracleasm deletedisk VOL1

Removing ASM disk "VOL1": [  OK  ]


3)可以查询任意的操作系统磁盘,以了解它是否被 ASM 使用:


[root@dbsvr tmp]# /etc/init.d/oracleasm querydisk /dev/sdb2

Device "/dev/sdb2" is marked an ASM disk with the label "VOL1"

[root@dbsvr tmp]# /etc/init.d/oracleasm querydisk /dev/sdb3

Device "/dev/sdb3" is marked an ASM disk with the label "VOL2"

[root@dbsvr tmp]# /etc/init.d/oracleasm querydisk /dev/sdb4

Device "/dev/sdb4" is marked an ASM disk with the label "VOL3"


4)可以列出和查询现有的磁盘:


[root@dbsvr tmp]# /etc/init.d/oracleasm listdisks

VOL1

VOL2

VOL3


[root@dbsvr tmp]# /etc/init.d/oracleasm listdisks

VOL1

VOL2

VOL3

[root@dbsvr tmp]# /etc/init.d/oracleasm querydisk VOL1

Disk "VOL1" is a valid ASM disk



当向 RAC 设置中添加磁盘时,需要通知其他节点该磁盘的存在。在一个节点上运行 'createdisk' 命令,然后在其他每一个节点上运行 'scandisks':


[root@dbsvr tmp]# /etc/init.d/oracleasm scandisks

Scanning the system for Oracle ASMLib disks: [  OK  ]



5、利用dbca建库时,需要运行脚本,注意是root用户,但环境变量是oracle


[root@dbsvr bin]# localconfig add

/etc/oracle does not exist. Creating it now.

Successfully accumulated necessary OCR keys.

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

Configuration for local CSS has been initialized


Adding to inittab

Startup will be queued to init within 90 seconds.

Checking the status of new Oracle init process...

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

dbsvr

CSS is active on all nodes.

Oracle CSS service is installed and running under init(1M)


建库时报ora-12547错误,需要安装如下包:


[root@dbsvr tmp]# rpm -qa|grep libaio

libaio-0.3.105-2

libaio-0.3.105-2

libaio-devel-0.3.105-2


附:ASM实例可以手工创建,也可以通过dbca创建,如手工创建

1、创建asm参数

[oracle@dbsvr dbs]$ more spfile+ASM.ora



+ASM.asm_diskgroups='ASMDISK'#Manual Mount

*.asm_diskgroups='ASMDISK'

*.background_dump_dest='/oracle/app/admin/+ASM/bdump'

*.core_dump_dest='/oracle/app/admin/+ASM/cdump'

*.instance_type='asm'

*.large_pool_size=12M

*.remote_login_passwordfile='SHARED'

*.user_dump_dest='/oracle/app/admin/+ASM/udump'



2、创建diskgroup组

SQL> ALTER DISKGROUP ALL MOUNT

Sun Aug 23 18:26:49 2009

Loaded ASM Library - Generic Linux, version 2.0.4 (KABI_V2) library for asmlib interface

Sun Aug 23 18:29:24 2009

SQL> CREATE DISKGROUP asmdisk External REDUNDANCY  DISK '/dev/sdb2' SIZE 674M ,'/dev/sdb3' SIZE 290M ,'/dev/sdb4' SIZE 235M ,'/dev/sdc1' SIZE 1913M;