频道栏目
读书频道 > 数据库 > Oracle > 构建最高可用Oracle数据库系统:Oracle 11gR2 RAC管理、维护与性能优化
2.6.2 创建ASMLib磁盘
2012-08-04 00:01:11     我来说两句
收藏   我要投稿
本书从硬件和软件两个维度系统且全面地讲解了Oracle 11gR2 RAC的架构、工作原理、管理及维护的系统理论和方法,以及性能优化的技巧和最佳实践,能为构建最高可用的Oracle数据库系统提供有价值的指导。它的实践...  立即去当当网订购
ASMLib磁盘是ASM磁盘的一种表现形式,执行以下步骤创建ASMLib磁盘。 
步骤1   共享磁盘分区。 
将每个共享磁盘划分为一个主分区,只需要在任一节点执行分区即可。操作如下: 
[root@rhel1 soft]# fdisk /dev/sda 
The number of cylinders for this disk is set to 30976. 
There is nothing wrong with that, but this is larger than 1024, 
and could in certain setups cause problems with: 
1) software that runs at boot time (e.g., old versions of LILO) 
2) booting and partitioning software from other OSs 
   (e.g., DOS FDISK, OS/2 FDISK) 
Command (m for help): n 
Command action 
   e   extended 
   p   primary partition (1-4) 

Partition number (1-4): 1 
First cylinder (1-30976, default 1): 
Using default value 1 
Last cylinder or +size or +sizeM or +sizeK (1-30976, default 30976): 
Using default value 30976 
Command (m for help): w 
The partition table has been altered! 
Calling ioctl () to re-read partition table. 
Syncing disks. 
[root@rhel1 soft]#partprobe 
其他的节点服务器需要重启才能生成分区设备文件。 
注意 挂载到本地的iSCSI磁盘一定要分区后再使用,而且分区一定要是主分区。如果挂载的单张磁盘大于2TB,使用parted工具创建分区(fdisk不支持在大于2.2TB的磁盘上创建分区)。 
前面讨论过由于服务器对挂载的iSCSI扫描顺序的不同,不同节点相同设备文件可能对应不同的存储设备,通过udev解决了这个问题。执行上一步对iSCSI分区以后,udev创建的链接设备文件也会发生相应的变化。变化如下: 
[root@rhel1 iscsi]# cd /dev/iscsi 
[root@rhel1 iscsi]# tree 

|-- dbfile1 
|   |-- part -> ../../sdf 
|   `-- part1 -> ../../sdf1 
…… 
6 directories, 12 files 
从上面的输出可以看出,分区创建之后,udev也新创建了一个链接文件指向分区设备文件,part1链接到sdf1,完整的链接路径是/dev/iscsi/dbfile1/part1链接到设备文件/dev/sdf1。使用/dev/iscsi/dbfile1/part1作为ASM磁盘能够帮助区分具体的iSCSI磁盘。 
用同样的方法将其他磁盘都划分一个主磁盘分区。完成后在分区的节点执行partprobe命令,将分区信息写入磁盘分区表,然后在另一个节点执行fdisk -l就可以看到相同的分区信息。如果在另外的节点看不到分区信息,请重启服务器。 
在生产环境中,存储设备都有多条路径,对应挂载到节点服务器就有多个设备文件,所以需要在节点服务器安装多路径软件,然后对聚合后的多路径设备文件进行分区;分区完成后应重启其他服务器,确保系统创建了相应的分区设备文件。多路径软件相关的内容将在第15章详细讨论。 
步骤2   创建ASMLib磁盘。 
ASMLib驱动的安装和磁盘分区完成之后,就可以创建ASMLib磁盘。 
使用ASMLib驱动中的oracleasm工具创建ASMLib磁盘: 
[root@rhel1 soft]# /etc/init.d/oracleasm createdisk OCRVDISK1 /dev/iscsi/ocrvdisk1/part1 
Marking disk "OCRVDISK1" as an ASM disk:                    [  OK  ] 
[root@rhel1 soft]# /etc/init.d/oracleasm createdisk OCRVDISK2 /dev/iscsi/ocrvdisk2/part1 
Marking disk "OCRVDISK2" as an ASM disk:                    [  OK  ] 
[root@rhel1 soft]# /etc/init.d/oracleasm createdisk OCRVDISK3 /dev/iscsi/ocrvdisk3/part1 
Marking disk "OCRVDISK3" as an ASM disk:                    [  OK  ] 
[root@rhel1 soft]# /etc/init.d/oracleasm createdisk DBFILE1 /dev/iscsi/dbfile1/part1 
Marking disk "DBFILE1" as an ASM disk:                     [  OK  ] 
[root@rhel1 soft]# /etc/init.d/oracleasm createdisk FRA1 /dev/iscsi/fra1/part1 
Marking disk "FRA1" as an ASM disk:                        [  OK  ] 
[root@rhel1 asmlib]# 
[root@rhel1 init.d]# ./oracleasm listdisks 
DATAFILE1 
FRA1 
OCRVDISK1 
OCRVDISK2 
OCRVDISK3 
注意   这里创建ASMLib磁盘使用的是udev工具生成的磁盘设备文件的链接文件。 
ASMLib磁盘不需要在多个节点重复创建,在一个节点创建成功,只需要在其他节点使用oracleasm工具扫描一次,就可以在其他节点看到所有的ASMLib磁盘。这步是必须的,如果没有在其他磁盘扫描创建的ASMLib磁盘,那么在该节点磁盘组则无法加载。在其他节点执行以下命令来扫描配置成功的ASMLib磁盘: 
[root@rhel2 asmlib]# /etc/init.d/oracleasm scandisks 
Scanning the system for Oracle ASMLib disks:               [  OK  ] 
[root@rhel2 init.d]# ./oracleasm listdisks 
DATAFILE1 
FRA1 
OCRVDISK1 
OCRVDISK2 
OCRVDISK3 
ASMLib磁盘创建成功之后,会在/dev/oracleasm目录下产生相应的设备文件,在创建ASMLib磁盘组的时候同样可以使用这些设备文件。执行以下命令,查看/etc/oracleasm/disks目录下的ASM磁盘设备文件: 
[root@rhel1 oracleasm]# pwd 
/dev/oracleasm 
[root@rhel1 oracleasm]# tree disks 
disks 
|-- OCRVDISK1 
|-- OCRVDISK2 
|-- OCRVDISK3 
|-- DBFILE1 
`-- FRA1 
确保这些文件的所有者都是grid:oinstall。 
注意   ASMLib驱动只存在于Linux平台,强烈推荐在Linux平台使用ASMLib来管理ASM磁盘。Oracle不仅限于使用ASMLib作为ASM磁盘,在Linux平台和其他UNIX平台同样可以使用分区的设备文件作为ASM磁盘。需要注意的是,分区设备文件分为块设备文件和字符设备文件,应使用字符设备文件作为ASM磁盘,字符设备文件也就是通常所说的裸设备文件。 
步骤3   使用oracleasm工具。 
oracleasm工具是安装ASMLib驱动之后配套的ASMLib管理工具,使用它能够完成ASMLib的配置和管理工作。oracleasm不只在/etc/init.d/目录下存在,系统默认找到的是/usr/sbin/位置下的oracleasm,通过执行/usr/sbin/oracleasm能够获得更为详细的帮助信息。下面是两个不同位置的oracleasm工具的帮助信息: 
[root@rhel1 bin]# which oracleasm 
/usr/sbin/oracleasm 
[root@rhel1 bin]# /usr/sbin/oracleasm 
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 
[root@rhel1 bin]# /etc/init.d/oracleasm -h 
Usage:  
/etc/init.d/oracleasm 
{start|stop|restart|enable|disable|configure|createdisk|deletedisk| 
querydisk|listdisks|scandisks|status} 
从上面输出的帮助信息可以看出,不同位置的oracleasm提供的功能是不完全相同的。其中/usr/sbin下的oracleasm能够加载(init)/卸载(exit)ASMLib驱动、重命名ASMLib磁盘标签(renamedisk),以及下载最新的ASMLib驱动(update-driver);而/etc/init.d/下面的oracleasm包含日常维护中的启动、停止、重启、启用、禁用和配置的功能。 
两个位置的oracleasm工具实现的功能不完全相同,因此在实际的使用过程中可以配合使用。 
(1)查看ASM磁盘对应的磁盘设备文件 
通过oracleasm querydisk -p可以查看创建的ASM磁盘对应的设备文件名称。 
[root@rhel2 init.d]# ./oracleasm querydisk -p OCRVDISK1 
Disk "OCRVDISK1" is a valid ASM disk 
/dev/sda1: LABEL="OCRVDISK1" TYPE="oracleasm" 
(2)查看ASMLib的配置信息 
配置信息如下: 
[root@rhel1 bin]# /usr/sbin/oracleasm configure 
ORACLEASM_ENABLED=true 
ORACLEASM_UID=grid 
ORACLEASM_GID=asmadmin 
ORACLEASM_SCANBOOT=true 
ORACLEASM_SCANORDER="" 
ORACLEASM_SCANEXCLUDE="" 
如上所示,可以了解ASMLib驱动所属的用户、组和是否自动启动等信息。这与/etc/init. d/oracleasm的执行效果完全不同。 
另外,执行/usr/sbin/oracleasm configure-i启动的ASMLib配置向导,同执行/etc/init.d/oracleasm configure命令启动的配置向导是相同的: 
[root@rhel1 bin]# /usr/sbin/oracleasm configure -i 
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 [grid]:
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.6.1 安装ASMLib驱动
下一篇:2.7 部署RAC
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站