目前只有linux 操作系统上有asmlib 包,其他的系统暂时还没有。asmlib 简化磁盘管理,取代原来我们在linux 上常用rawdevices 服务。(也就是说,asmlib是由几个os库文件组成的,用来简化管理磁盘,安装了它,不用使用raw devices了)
根据uname –r 检测结果,下载的驱动程序包名称与其一致。务必!!!
1、asmlib的安装过程
1、查看内核:
[root@rac2 ~]# uname -a
Linux rac2.lyg.com 2.6.18-164.el5#1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
2、Oracle ASMlib下载地址:
http://www.oracle.com/technetwork/server-storage/linux/downloads/index.html
下载以下rpm包(注意rpm包版本和Linux内核版本一致):
oracleasm-support-2.1.8-1.el5.x86_64
oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64
oracleasmlib-2.0.4-1.el5.x86_64
3、安装(所有节点)
[root@rac2 package]# chmod 755 oracle*
[root@rac2 package]# rpm -ivh oracle*
warning: oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64.rpm: HeaderV3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:oracleasm-support ########################################### [ 33%]
2:oracleasm-2.6.18-164.el###########################################[ 67%]
3:oracleasmlib ########################################### [100%]
4、初始化asmlib (在所有节点执行)
[root@rac1 Desktop]# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASMlibrary
driver. The followingquestions 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 []: grid
Default group to own the driver interface []: oinstall
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
[root@rac1 Desktop]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm
在rac2上的操作完全一样,忽略之。
以上操作执行完成了四大任务:
1 、创建了配置文件/etc/sysconfig/oracleasm(其实这个是一个软连接,修改的话,要修改那个真实的文件)
2 、创建了挂载点/dev/oracleasm
3 、加载oracleasm 内核模块
4 、挂载ASM 函数驱动文件系统
2、asm磁盘的创建
使用asmlib 管理磁盘后,需要创建一系列磁盘。其实,这不是真正意义上磁盘分区创建,如fdisk 上的创建磁盘操作。这里只是一个标记命名。将系统上的磁盘分区在asmlib 的配置文件中做一个标识,使得ASMLIB 能加载使用,ASM 实例从ASMLIB 中读取的到。
这点和RAW DEVICES 其实很相似的。不知道性能差异如何?目前没有测试结果。
创建命令如下,在root 用户下执行。
在一个节点上以root身份做
我们做如下规划:
sdb1 OCR-VOTE
sdc1 DATA
sdd1 FRA
[root@rac1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGIor OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, theprevious
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will becorrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
Using default value 652
Command (m for help): p
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 652 5237158+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]#
另外两个盘sdc,sdd以同样的方式创建。
在rac1节点上以root身份做,创建asm磁盘:
[root@rac1 ~]# oracleasm createdisk OCR_VOTE /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk DATA /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk FRA /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
3、ASMLIB 磁盘的管理
ASM 磁盘使用oracleasm 工具进行管理。
[root@db4 ~]# oracleasm -h
Usage: oracleasm [--exec-path=<exec_path>] <command> [ <args> ]
oracleasm --exec-path
oracleasm -h
oracleasm -V
The basic oracleasm commands are:
configure Configure the Oracle Linux ASMLib driver
init Load and initialize the ASMLib driver
exit Stop the ASMLib driver
scandisks Scan the system for Oracle ASMLib disks
status Display the status of the Oracle ASMLib driver
listdisks List known Oracle ASMLib disks
querydisk Determine if a disk belongs to Oracle ASMlib
createdisk Allocate a device for Oracle ASMLib use
deletedisk Return a device to the operating system
renamedisk Change the label of an Oracle ASMlib disk
update-driver Download the latest ASMLib driver
使用oracleasm listdisks 列出所有创建的磁盘。
[root@rac1 ~]# oracleasm listdisks
DATA
FRA
OCR_VOTE
[root@rac1 ~]#
使用oracleasm querydisk 列出某一磁盘的详细信息,如指向的哪个磁盘分区。
[root@db4 ~]# oracleasm querydisk
Usage: oracleasm-querydisk [-l <manager>] [-v] [-d|-p] <label>|<device> ...
[root@db4 ~]# oracleasm querydisk vol1
Disk "VOL1" is a valid ASM disk
[root@db4 ~]# oracleasm querydisk -v vol1
Disk "VOL1" is a valid ASM disk
[root@db4 ~]# oracleasm querydisk -v -d vol1
Disk "VOL1" is a valid ASM disk on device /dev/sdb1[8,17]
加选项 -v -p, 显示出物理盘分区。
[root@db4 ~]# oracleasm querydisk -v -p vol1
Disk "VOL1" is a valid ASM disk
/dev/sdb1: LABEL="VOL1" TYPE="oracleasm"
/dev/mapper/mpath1p1: LABEL="VOL1" TYPE="oracleasm"
[root@db4 ~]#
4、ASMLIB 磁盘的使用
ASMLIB 磁盘在10g 环境中,只有一个用途,给ASM 实例使用。在11g 中,增加了ADVM 和ACFS的功能,类似逻辑卷和文件系统。
我测试了文件系统,它还是不能给数据库保存数据文件信息,类似普通的文件系统,只是在RAC下多节点可以同时读取。
在ASM 实例中,初始化参数需要注意ASMLIB 的磁盘的挂载点信息。它的挂载点是/dev/oracleasm/ 。
初始化参数关键点如下:
*.asm_diskgroups='VG1','VG2'
*.asm_diskstring='/dev/oracleasm/disks/VOL1','/dev/oracleasm/disks/VOL2'