oracle基础面试题及答案 数据库笔试面试154(1)

题目如下所示:

在Oracle中,ASMLIB是什么?常用命令有哪些?其运行日志路径在哪里?

答案如下所示:

答案:在存储管理员给服务器提供磁盘设备后,它们对于服务器来说是可用的并且可以在Linux系统中的/proc/partitions虚拟文件中可以看到。系统管理然后使用fdisk工具来对磁盘设备进行分区。被分区后磁盘设备现在可以被配置为ASMLIB磁盘,系统管理员就可以创建ASM磁盘。ASMLIB是Oracle 10g与11g中ASM功能的支持Library。ASMLIB允许Oracle数据库更有效的使用ASM与访问磁盘组。ASMLIB是ASM的一个插件,提供了一种识别与访问块设备的接口。另外,ASMLIB API能够让存储与操作系统厂商来提供存储相关的扩展功能。这些功能可能提供一些好处,比如提高性能与增加完整性。但ASMLIB对于ASM不是必须使用的。ASMLIB的一些常用命令如下所示:

l 创建ASM磁盘命令:oracleasm createdisk

l 扫描ASM磁盘命令:oracleasm scandisks

l 列举ASM磁盘命令:oracleasm listdisks

其它命令请查看官方文档。ASMLIB运行的日志文件路径在:/var/log/oracleasm。在采用ASMLIB作为ASM驱动时,此时,通过V$ASM_DISK视图无法确认具体物理磁盘:

SQL> select disk_number,path from v$asm_disk where group_number=1;

DISK_NUMBER PATH

----------- ------------

0 ORCL:VOL12

可以通过major号确定:

[root@rac1 ~]# ls -l /dev/oracleasm/disks/VOL12

brw-rw---- 1 oracle oinstall 8, 29 May 15 22:02 /dev/oracleasm/disks/VOL12

[root@rac1 ~]# ls -l /dev/sd* |grep "8, 29"

brw-r----- 1 root disk 8, 29 May 15 22:02 /dev/sdb13

由此可知,对应的磁盘是/dev/sdb13。

需要说明的一点是,在RHEL6(Red Hat Enterprise Linux 6)以前,Oracle均是使用ASMLIB这个内核支持库配置ASM。ASMLIB是一种基于Linux module,专门为ASM特性设计的内核支持库(kernel support library)。但是,在2011年5月,甲骨文发表了一份Oracle数据库ASMLib的声明,声明中称甲骨文将不再提供RHEL6的ASMLIB和相关更新。因此,目前在RHEL6上使用Oracle ASM,已不再使用ASMLIB,而是采用udev设备文件来配置ASM。udev是Linux 2.6内核里的一个功能,它替代了原来的devfs,成为当前Linux默认的设备管理工具。udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。有关如何使用udev及多路径来配置ASM磁盘本书不再详解,有兴趣的读者可参考作者的博客。

& 说明:

有关ASMLIB的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2134171/。有关udev和多路径(multipath)的更多内容请参考:http://blog.itpub.net/26736162/viewspace-2132858/。

,