Oracle ASM for linx as 4 x86-64 创建过程
1、划分区
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;