Installing ASMLib
| |
This document describes the steps required to install the Linux specific ASM library and its assocated driver. This library is provide to enable ASM I/O to Linux disks without the limitations of the standard Unix I/O API. The steps below are steps that the system administrator must follow. |
Locating the ASMLib Packages
| |
The ASMLib software is available from the Oracle Technology Network. Go to ASMLib download page and follow the link for your platform. You will see 4-6 packages for your Linux platform. The oracleasmlib package provides the actual ASM library. The oracleasm-support package provides the utilities used to get the ASM driver up and running. Both of these packages need to be installed. The remaining packages provide the kernel driver for the ASM library. Each package provides the driver for a different kernel. You must install the appropriate package for the kernel you are running. Use the "uname -r command to determine the version of the kernel. The oracleasm kerel driver package will have that version string in its name. For example, if you were running Red Hat Enterprise Linux 4 AS, and the kernel you were using was the 2.6.9-5.0.5.ELsmp kernel, you would choose the oracleasm-2.6.9-5.0.5-ELsmp package. So, to install these packages on RHEL4 on an Intel x86 machine, you might use the command: rpm -Uvh oracleasm-support-2.0.0-1.i386.rpm \ oracleasm-lib-2.0.0-1.i386.rpm \ oracleasm-2.6.9-5.0.5-ELsmp-2.0.0-1.i686.rpmIf you were on a different machine, the package names would be slightly different, replacing 'i686' with the appropriate architecture. Use the package names relevant for your distribution. NOTE: Distributions with the Linux 2.4 kernel still use the 1.0 kernel driver, while distributions based on the Linux 2.6 kernel use the 2.0 kernel driver. All distributions use version 2.0 of the support and library packages. See the driver matrix for more information. Once the command completes, ASMLib is now installed on the system. |
Configuring ASMLib
| |
Now that the ASMLib software is installed, a few steps have to be taken by the system administrator to make the ASM driver available. The ASM driver needs to be loaded, and the driver filesystem needs to be mounted. This is taken care of by the initialization script, /etc/init.d/oracleasm. Run the /etc/init.d/oracleasm script. with the 'configure' option. It will ask for the user and group that default to owning the ASM driver access point. If the database was running as the 'oracle' user and the 'dba' group, the output would look like this: [root@ca-test1 /]# /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 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 Fix permissions of Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration [ OK ] Creating /dev/oracleasm mount point [ OK ] Loading module "oracleasm" [ OK ] Mounting ASMlib driver filesystem [ OK ] Scanning system for ASM disks [ OK ]This should load the oracleasm.o driver module and mount the ASM driver filesystem. By selecting enabled = 'y' during the configuration, the system will always load the module and mount the filesystem on boot. The automatic start can be enabled or disabled with the 'enable' and 'disable' options to /etc/init.d/oracleasm: [root@ca-test1 /]# /etc/init.d/oracleasm disable Writing Oracle ASM library driver configuration [ OK ] Unmounting ASMlib driver filesystem [ OK ] Unloading module "oracleasm" [ OK ] [root@ca-test1 /]# /etc/init.d/oracleasm enable Writing Oracle ASM library driver configuration [ OK ] Loading module "oracleasm" [ OK ] Mounting ASMlib driver filesystem [ OK ] Scanning system for ASM disks [ OK ] |
Making Disks Available to ASMLib
| |
The system administrator has one last task. Every disk that ASMLib is going to be accessing needs to be made available. This is accomplished by creating an ASM disk. The /etc/init.d/oracleasm script. is again used for this task: [root@ca-test1 /]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdg1 Creating Oracle ASM disk "VOL1" [ OK ]Disk names are ASCII capital letters, numbers, and underscores. They must start with a letter. Disks that are no longer used by ASM can be unmarked as well: [root@ca-test1 /]# /etc/init.d/oracleasm deletedisk VOL1 Deleting Oracle ASM disk "VOL1" [ OK ]Any operating system disk can be queried to see if it is used by ASM: [root@ca-test1 /]# /etc/init.d/oracleasm querydisk /dev/sdg1 Checking if device "/dev/sdg1" is an Oracle ASM disk [ OK ] [root@ca-test1 /]# /etc/init.d/oracleasm querydisk /dev/sdh1 Checking if device "/dev/sdh1" is an Oracle ASM disk [FAILED]Existing disks can be listed and queried: [root@ca-test1 /]# /etc/init.d/oracleasm listdisks VOL1 VOL2 VOL3 [root@ca-test1 /]# /etc/init.d/oracleasm querydisk VOL1 Checking for ASM disk "VOL1" [ OK ]When a disk is added to a RAC setup, the other nodes need to be notified about it. Run the 'createdisk' command on one node, and then run 'scandisks' on every other node: [root@ca-test1 /]# /etc/init.d/oracleasm scandisks Scanning system for ASM disks [ OK ] |
Discovery Strings for Linux ASMLib
| |
ASMLib uses discovery strings to determine what disks ASM is asking for. The generic Linux ASMLib uses glob strings. The string must be prefixed with "ORCL:". Disks are specified by name. A disk created with the name "VOL1" can be discovered in ASM via the discovery string "ORCL:VOL1". Similarly, all disks that start with the string "VOL" can be queried with the discovery string "ORCL:VOL*". Disks cannot be discovered with path names in the discovery string. If the prefix is missing, the generic Linux ASMLib will ignore the discovery string completely, expecting that it is intended for a different ASMLib. The only exception is the empty string (""), which is considered a full wildcard. This is precisely equivalent to the discovery string "ORCL:*".
学习...... ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。
ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器 (RMAN)。 ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。在 Linux 上,只有运行 OCSSD 服务(由 Oracle 通用安装程序默认安装)才能使用 ASM。ASM 需要的内存不多:对大多数系统,只需 64 MB。 安装 ASM 确定所需的 ASMLib 版本 ASMLib 以三个 Linux 程序包组成的程序包集提供: oracleasmlib - ASM 库 uname -rm
使用此信息在 OTN 上查找相应的 ASMLib 程序包: 将 Web 浏览器指向 http://www.oracle.com/technology/global/cn/tech/linux/asmlib oracle:/home/oracle # ls
使用 ASMLib 之前,必须运行配置脚本以准备驱动程序。以 root 用户身份运行以下命令,并响应如下示例中所显示的提示。
This will configure the on-boot properties of the Oracle ASM library Default user to own the driver interface []: oracle 现在,如下所示启用 ASMLib 驱动程序。 oracle:/home/oracle # /etc/init.d/oracleasm enable 为 ASM 配置磁盘 接下来,告诉 ASM 驱动程序您要使用的磁盘。请注意,这些磁盘是不包含任何内容(甚至不包含分区)的空磁盘。可以将磁盘分区用于 ASM,但建议您不要这样做。 通过以 root 用户身份运行以下命令来标记由 ASMLib 使用的磁盘: /etc/init.d/oracleasm createdisk DISK_NAME device_name (提示:DISK_NAME 应由大写字母组成。当前版本有一个错误,即如果使用小写字母,ASM 实例将无法识别磁盘。) 例如:
然后我把/dev/sdb重新分区了就可以 以下示例演示了如何列出标记为由 ASMLib 使用的所有磁盘。 oracle:/home/oracle # /etc/init.d/oracleasm listdisks 既然已经安装了 ASMLib,且已将磁盘标记为可用,下面,您便可以创建一个 ASM 实例,并构建一个使用 ASM 进行磁盘存储的数据库。最容易的方法就是使用数据库配置助手 (DBCA) 来完成此操作。 以 oracle 身份登录并启动 DBCA: dbca
Adding to inittab 9,创建 ASM 实例 |
Subject: | Oracle VM: Oracleasm Createdisk Command Fails for OEL4/RHEL4 Paravirtualized (PVM) Guests | |||
Doc ID: | Note:551713.1 | Type: | PROBLEM | |
Last Revision Date: | 11-MAR-2008 | Status: | PUBLISHED |
In this Document
Symptoms
Cause
Solution
References
Applies to:
Linux x86-64
Linux x86
Oracle VM Server 2.1
Oracle Enterprise Linux 4 paravirtualized (PVM) guest
Red Hat Enterprise Linux 4 paravirtualized (PVM) guest
Symptoms
The 'oracleasm createdisk' command (/etc/init.d/oracleasm) fails for Oracle Enterprise Linux Release 4 (OEL4) and Red Hat Enterprise Linux Release 4 (RHEL4) Paravirtualized (PVM) guests, for example:
Marking disk "/dev/xvdb1" as an ASM disk: asmtool: Device "/dev/xvdb1" is not a partition [FAILED]
The 'oracleasm createdisk' command succeeds for OEL4 and RHEL4 fully/hardware virtualized (HVM) guest operating systems.
Cause
The inability of OEL4 and RHEL4 paravirtualised guests to run the 'oracleasm createdisk' command successfully is a known and documented issue - refer Oracle VM Server Release 2.1 Release Notes.
Solution
The issue can be worked around by using the asmtool utility (/usr/sbin/asmtool).
Run the asmtool command with the '-a force=yes' parameters to ignore the partition check.
Once the disk is created, run the 'oracleasm scandisks' command to correct the oracleasm disk permissions.
For example:
# /etc/init.d/oracleasm scandisks
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7301064/viewspace-466051/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7301064/viewspace-466051/