详解Oracle ASMLIB软件

2023年 8月 18日 60.6k 0

目录

  • 前言
  • 一、安装配置ORACLE ASMLIB软件
    • 1、输入以下命令以确定系统的内核版本和体系结构:
    • 2、根据您的操作系统版本,下载所需的 Oracle 自动存储管理库驱动程序包和驱动程序:
    • 3、切换到root用户
    • 4、根据您的操作系统,您必须为所有 Oracle ASMLIB 安装安装 oracleasmlib 和 oracleasm 支持包。
  • yum install -y oracleasm
    • 5、输入以下命令以使用配置选项运行 oracleasm 初始化脚本:
    • 6、输入以下信息以响应脚本显示的提示:
    • 7、输入以下命令以加载 oracleasm 内核模块:
  • 二、使用 Oracle ASMLIB配置磁盘设备
    • 1、如果要在 Oracle 自动存储管理磁盘组中使用 IDE、SCSI 或 RAID 设备,请执行以下步骤:
      • a、安装或配置要用于磁盘组的磁盘设备,然后重新启动系统。
      • b、输入以下命令以标识要使用的磁盘的设备名称:
      • c、使用 fdisk 或 parted 在磁盘设备上创建单个全磁盘分区。
    • 2、输入类似于以下内容的命令,将磁盘标记为 Oracle 自动存储管理磁盘:
    • 3、要使磁盘在群集中的其他节点上可用,请在每个节点上以 root 身份输入以下命令:
  • 三、管理 Oracle ASMLIB 和磁盘
  • 四、为多路径磁盘配置 Oracle ASMLIB
    • 1、关于磁盘扫描排序
    • 2、配置磁盘扫描顺序以选择多路径磁盘
    • 3、配置磁盘顺序扫描以排除单路径磁盘
  • 五、卸载Oracle ASMLIB

前言

本文大部分来源于官方文档,里面加入了自己做的一下实验,主要目的是做个记录和学习。

Oracle ASMLIB 维护在存储设备上保留的权限和磁盘标签,因此即使在操作系统升级后,该标签也可用。

Oracle 自动存储管理库驱动程序简化了块磁盘设备的配置和管理,无需在每次重新启动系统时重新绑定与 Oracle 自动存储管理 (Oracle ASM) 一起使用的块磁盘设备。

使用 Oracle ASMLIB,您可以定义要作为 Oracle ASM 磁盘提供的磁盘范围。Oracle ASMLIB 维护在存储设备上保留的权限和磁盘标签,因此即使在操作系统升级后,该标签也可用。

注意:如果使用 Oracle ASMLIB 配置磁盘,则必须将磁盘发现字符串更改为 ORCL:。如果磁盘字符串设置为 ORCL:,或留空 (“”),则安装程序会发现这些磁盘。

一、安装配置ORACLE ASMLIB软件

查看此信息以手动安装和配置 Oracle 自动存储管理库驱动程序软件。

Oracle ASMLIB包含在Oracle Linux软件包和SUSE Linux Enterprise Server中。如果您是 Unbreakable Linux Network 的成员,那么您可以通过订阅 Oracle Linux 通道并使用 yum 检索系统和内核的最新软件包来安装 Oracle ASMLIB RPM。有关其他信息,请参阅以下 URL:

http://www.oracle.com/technetwork/topics/linux/asmlib/index-101839.html

要手动安装和配置 Oracle 自动存储管理库驱动程序软件,请执行以下步骤:

1、输入以下命令以确定系统的内核版本和体系结构:

uname -rm

2、根据您的操作系统版本,下载所需的 Oracle 自动存储管理库驱动程序包和驱动程序:

http://www.oracle.com/technetwork/server-storage/linux/asmlib/index-101839.html

See Also:
My Oracle Support note 1089399.1 for information about Oracle ASMLIB support with Red Hat distributions:
https://support.oracle.com/rs?type=doc&id=1089399.1

3、切换到root用户

su -

4、根据您的操作系统,您必须为所有 Oracle ASMLIB 安装安装 oracleasmlib 和 oracleasm 支持包。

  • 方法 1:按照步骤 2 中所述下载 Oracle 自动存储管理库驱动程序包后,运行以下 yum 命令以安装 oracleasmlib 和 oracleasm 支持包

# yum install -y oracleasm
# yum install -y oracleasm-support
# yum install oracleasmlib

使用这种方式安装,前提是服务器能够联网,我在自己的笔记本电脑上安装的虚拟机,使用的NAT模式,是可以联网的,对yum源不进行修改,不做本地yum源配置。

  • 实验演示

yum install -y oracleasm

[root@dg ~]# yum install -y oracleasm
Loaded plugins: refresh-packagekit, security, ulninfo
Setting up Install Process
public_ol6_UEKR4 | 2.5 kB 00:00
public_ol6_latest | 2.7 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package kernel-uek.x86_64 0:4.1.12-124.48.6.el6uek will be installed
--> Processing Dependency: kernel-firmware = 4.1.12-124.48.6.el6uek for package: kernel-uek-4.1.12-124.48.6.el6uek.x86_64
--> Processing Dependency: linux-firmware >= 20171128-56.git17e62881.0.2 for package: kernel-uek-4.1.12-124.48.6.el6uek.x86_64
--> Running transaction check
---> Package bfa-firmware.noarch 0:3.2.23.0-2.el6 will be obsoleted
---> Package ivtv-firmware.noarch 2:20080701-20.2 will be obsoleted
---> Package iwl100-firmware.noarch 0:39.31.5.1-1.el6 will be obsoleted
---> Package iwl1000-firmware.noarch 1:39.31.5.1-1.el6 will be obsoleted
---> Package iwl3945-firmware.noarch 0:15.32.2.9-4.el6 will be obsoleted
---> Package iwl4965-firmware.noarch 0:228.61.2.24-2.1.el6 will be obsoleted
---> Package iwl5000-firmware.noarch 0:8.83.5.1_1-1.el6_1.1 will be obsoleted
---> Package iwl5150-firmware.noarch 0:8.24.2.2-1.el6 will be obsoleted
---> Package iwl6000-firmware.noarch 0:9.221.4.1-1.el6 will be obsoleted
---> Package iwl6000g2a-firmware.noarch 0:17.168.5.3-1.el6 will be obsoleted
---> Package iwl6050-firmware.noarch 0:41.28.5.1-2.el6 will be obsoleted
---> Package kernel-uek-firmware.noarch 0:4.1.12-124.48.6.el6uek will be installed
---> Package libertas-usb8388-firmware.noarch 2:5.110.22.p23-3.1.el6 will be obsoleted
---> Package linux-firmware.noarch 0:20140911-0.1.git365e80c.0.8.el6 will be updated
---> Package linux-firmware.noarch 0:20171128-56.git17e62881.0.2.el6 will be obsoleting
---> Package netxen-firmware.noarch 0:4.0.590-0.1.el6 will be obsoleted
---> Package ql2400-firmware.noarch 0:8.02.00-1.0.1.el6 will be obsoleted
---> Package ql2500-firmware.noarch 0:8.02.00-1.0.1.el6 will be obsoleted
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================================
Installing:
kernel-uek x86_64 4.1.12-124.48.6.el6uek public_ol6_UEKR4 42 M
linux-firmware noarch 20171128-56.git17e62881.0.2.el6 public_ol6_UEKR4 74 M
replacing bfa-firmware.noarch 3.2.23.0-2.el6
replacing ivtv-firmware.noarch 2:20080701-20.2
replacing iwl100-firmware.noarch 39.31.5.1-1.el6
replacing iwl1000-firmware.noarch 1:39.31.5.1-1.el6
replacing iwl3945-firmware.noarch 15.32.2.9-4.el6
replacing iwl4965-firmware.noarch 228.61.2.24-2.1.el6
replacing iwl5000-firmware.noarch 8.83.5.1_1-1.el6_1.1
replacing iwl5150-firmware.noarch 8.24.2.2-1.el6
replacing iwl6000-firmware.noarch 9.221.4.1-1.el6
replacing iwl6000g2a-firmware.noarch 17.168.5.3-1.el6
replacing iwl6050-firmware.noarch 41.28.5.1-2.el6
replacing libertas-usb8388-firmware.noarch 2:5.110.22.p23-3.1.el6
replacing netxen-firmware.noarch 4.0.590-0.1.el6
replacing ql2400-firmware.noarch 8.02.00-1.0.1.el6
replacing ql2500-firmware.noarch 8.02.00-1.0.1.el6
Installing for dependencies:
kernel-uek-firmware noarch 4.1.12-124.48.6.el6uek public_ol6_UEKR4 2.6 M

Transaction Summary
==============================================================================================================================================================================================================
Install 3 Package(s)

Total download size: 119 M
Downloading Packages:
(1/3): kernel-uek-4.1.12-124.48.6.el6uek.x86_64.rpm | 42 MB 00:05
(2/3): kernel-uek-firmware-4.1.12-124.48.6.el6uek.noarch.rpm | 2.6 MB 00:00
(3/3): linux-firmware-20171128-56.git17e62881.0.2.el6.noarch.rpm | 74 MB 00:08
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 6.2 MB/s | 119 MB 00:19
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : linux-firmware-20171128-56.git17e62881.0.2.el6.noarch 1/19
Installing : kernel-uek-firmware-4.1.12-124.48.6.el6uek.noarch 2/19
Installing : kernel-uek-4.1.12-124.48.6.el6uek.x86_64 3/19
Erasing : 2:libertas-usb8388-firmware-5.110.22.p23-3.1.el6.noarch 4/19
Erasing : ql2500-firmware-8.02.00-1.0.1.el6.noarch 5/19
Erasing : ql2400-firmware-8.02.00-1.0.1.el6.noarch 6/19
Erasing : netxen-firmware-4.0.590-0.1.el6.noarch 7/19
Erasing : iwl6050-firmware-41.28.5.1-2.el6.noarch 8/19
Erasing : iwl6000g2a-firmware-17.168.5.3-1.el6.noarch 9/19
Erasing : iwl6000-firmware-9.221.4.1-1.el6.noarch 10/19
Erasing : iwl5150-firmware-8.24.2.2-1.el6.noarch 11/19
Erasing : iwl5000-firmware-8.83.5.1_1-1.el6_1.1.noarch 12/19
Erasing : iwl4965-firmware-228.61.2.24-2.1.el6.noarch 13/19
Erasing : iwl3945-firmware-15.32.2.9-4.el6.noarch 14/19
Erasing : 1:iwl1000-firmware-39.31.5.1-1.el6.noarch 15/19
Erasing : iwl100-firmware-39.31.5.1-1.el6.noarch 16/19
Erasing : 2:ivtv-firmware-20080701-20.2.noarch 17/19
Erasing : bfa-firmware-3.2.23.0-2.el6.noarch 18/19
Cleanup : linux-firmware-20140911-0.1.git365e80c.0.8.el6.noarch 19/19
Verifying : kernel-uek-firmware-4.1.12-124.48.6.el6uek.noarch 1/19
Verifying : kernel-uek-4.1.12-124.48.6.el6uek.x86_64 2/19
Verifying : linux-firmware-20171128-56.git17e62881.0.2.el6.noarch 3/19
Verifying : ql2400-firmware-8.02.00-1.0.1.el6.noarch 4/19
Verifying : netxen-firmware-4.0.590-0.1.el6.noarch 5/19
Verifying : 1:iwl1000-firmware-39.31.5.1-1.el6.noarch 6/19
Verifying : iwl6000-firmware-9.221.4.1-1.el6.noarch 7/19
Verifying : ql2500-firmware-8.02.00-1.0.1.el6.noarch 8/19
Verifying : 2:ivtv-firmware-20080701-20.2.noarch 9/19
Verifying : iwl100-firmware-39.31.5.1-1.el6.noarch 10/19
Verifying : iwl4965-firmware-228.61.2.24-2.1.el6.noarch 11/19
Verifying : iwl6000g2a-firmware-17.168.5.3-1.el6.noarch 12/19
Verifying : iwl5000-firmware-8.83.5.1_1-1.el6_1.1.noarch 13/19
Verifying : iwl5150-firmware-8.24.2.2-1.el6.noarch 14/19
Verifying : 2:libertas-usb8388-firmware-5.110.22.p23-3.1.el6.noarch 15/19
Verifying : bfa-firmware-3.2.23.0-2.el6.noarch 16/19
Verifying : iwl3945-firmware-15.32.2.9-4.el6.noarch 17/19
Verifying : iwl6050-firmware-41.28.5.1-2.el6.noarch 18/19
Verifying : linux-firmware-20140911-0.1.git365e80c.0.8.el6.noarch 19/19

Installed:
kernel-uek.x86_64 0:4.1.12-124.48.6.el6uek linux-firmware.noarch 0:20171128-56.git17e62881.0.2.el6

Dependency Installed:
kernel-uek-firmware.noarch 0:4.1.12-124.48.6.el6uek

Replaced:
bfa-firmware.noarch 0:3.2.23.0-2.el6 ivtv-firmware.noarch 2:20080701-20.2 iwl100-firmware.noarch 0:39.31.5.1-1.el6 iwl1000-firmware.noarch 1:39.31.5.1-1.el6
iwl3945-firmware.noarch 0:15.32.2.9-4.el6 iwl4965-firmware.noarch 0:228.61.2.24-2.1.el6 iwl5000-firmware.noarch 0:8.83.5.1_1-1.el6_1.1 iwl5150-firmware.noarch 0:8.24.2.2-1.el6
iwl6000-firmware.noarch 0:9.221.4.1-1.el6 iwl6000g2a-firmware.noarch 0:17.168.5.3-1.el6 iwl6050-firmware.noarch 0:41.28.5.1-2.el6 libertas-usb8388-firmware.noarch 2:5.110.22.p23-3.1.el6
netxen-firmware.noarch 0:4.0.590-0.1.el6 ql2400-firmware.noarch 0:8.02.00-1.0.1.el6 ql2500-firmware.noarch 0:8.02.00-1.0.1.el6

Complete!
[root@dg ~]#

上面这个太多了,无法截图
yum install -y oracleasm-support

[root@dg ~]# yum install -y oracleasm-support
Loaded plugins: refresh-packagekit, security, ulninfo
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package oracleasm-support.x86_64 0:2.1.11-2.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================================
Installing:
oracleasm-support x86_64 2.1.11-2.el6 public_ol6_latest 78 k

Transaction Summary
==============================================================================================================================================================================================================
Install 1 Package(s)

Total download size: 78 k
Installed size: 233 k
Downloading Packages:
oracleasm-support-2.1.11-2.el6.x86_64.rpm | 78 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : oracleasm-support-2.1.11-2.el6.x86_64 1/1
Verifying : oracleasm-support-2.1.11-2.el6.x86_64 1/1

Installed:
oracleasm-support.x86_64 0:2.1.11-2.el6

Complete!

yum install oracleasmlib

[root@dg ~]# yum install oracleasmlib
Loaded plugins: refresh-packagekit, security, ulninfo
Setting up Install Process
No package oracleasmlib available.
Error: Nothing to do
[root@dg ~]#


很不幸,这个包使用yum无法安装,只能下载、上传 rpm安装了。

[root@dg ~]# rpm -ivh oracleasmlib-2.0.12-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:oracleasmlib ########################################### [100%]
[root@dg ~]#

  • 方法 2:或者,按顺序安装以下软件包,其中 version 是 Oracle 自动存储管理库驱动程序的版本,arch 是系统体系结构,内核是您正在使用的内核的版本:

oracleasm-support-version.arch.rpm
oracleasm-kernel-version.arch.rpm
oracleasmlib-version.arch.rpm

输入类似于以下内容的命令以安装软件包:

# rpm -ivh oracleasm-support-version.arch.rpm
oracleasm-kernel-version.arch.rpm
oracleasmlib-version.arch.rpm

例如,如果您在 AMD64 系统上使用 Red Hat Enterprise Linux 5 AS 内核,请输入类似于以下内容的命令:

# rpm -ivh oracleasm-support-2.1.3-1.el5.x86_64.rpm
oracleasm-2.6.18-194.26.1.el5xen-2.0.5-1.el5.x86_64.rpm
oracleasmlib-2.0.4-1.el5.x86_64.rpm

5、输入以下命令以使用配置选项运行 oracleasm 初始化脚本:

[root@dg ~]# 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 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 []: 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@dg ~]#

一般在RAC环境中,user写grid的,group写asmadmin,本文是单机,所有填了oracle和oinstall

注意:/usr/sbin 中的 oracleasm 命令是您应该使用的命令。/etc/init.d 路径未被弃用,但该路径中的 oracleasm 二进制文件现在通常用于内部命令。

6、输入以下信息以响应脚本显示的提示:

prompt Suggested Response
Default user to own the driver interface: Standard groups and users configuration: Specify the Oracle software owner user (for example, oracle)
Job role separation groups and users configuration: Specify the Grid Infrastructure software owner (for example, grid)
Default group to own the driver interface: Standard groups and users configuration: Specify the OSDBA group for the database (for example, dba).
Job role separation groups and users configuration: Specify the OSASM group for storage administration (for example, asmadmin).
Start Oracle ASM Library driver on boot (y/n): Enter y to start the Oracle Automatic Storage Management library driver when the system starts.
Scan for Oracle ASM disks on boot (y/n) Enter y to scan for Oracle ASM disks when the system starts.

该脚本完成以下任务:

  1. 创建 /etc/sysconfig/oracleasm 配置文件
  2. 创建 /dev/oracleasm 挂载点
  3. 挂载 ASMLIB 驱动程序文件系统

注意:Oracle ASMLIB 文件系统不是常规文件系统。它仅由Oracle ASM库用于与Oracle ASMLIB通信。

7、输入以下命令以加载 oracleasm 内核模块:

# /usr/sbin/oracleasm init

二、使用 Oracle ASMLIB配置磁盘设备

配置要在Oracle自动存储管理磁盘组中使用的磁盘设备,请执行以下步骤:

1、如果要在 Oracle 自动存储管理磁盘组中使用 IDE、SCSI 或 RAID 设备,请执行以下步骤:

a、安装或配置要用于磁盘组的磁盘设备,然后重新启动系统。

b、输入以下命令以标识要使用的磁盘的设备名称:

# /sbin/fdisk -l

根据磁盘类型,设备名称可能会有所不同。
基于磁盘类型的设备名称格式

Disk Type Device Name Format Description
IDE disk /dev/hdxn In this example, x is a letter that identifies the IDE disk, and n is the partition number. For example, /dev/hda is the first disk on the first IDE bus.
SCSI disk /dev/sdxn In this example, x is a letter that identifies the IDE disk, and n is the partition number. For example, /dev/hda is the first disk on the first IDE bus.
RAID disk /dev/rd/cxdypz、/dev/ida/cxdypz Depending on the RAID controller, RAID devices can have different device names. In the examples shown, x is a number that identifies the controller, y is a number that identifies the disk, and z is a number that identifies the partition. For example, /dev/ida/c0d1 is the second logical drive on the first controller.

要在磁盘组中包括设备,可以指定整个驱动器设备名称或分区设备名称。

注意:Oracle 建议您在每个磁盘上创建一个要使用的全磁盘分区。

c、使用 fdisk 或 parted 在磁盘设备上创建单个全磁盘分区。

2、输入类似于以下内容的命令,将磁盘标记为 Oracle 自动存储管理磁盘:

# /usr/sbin/oracleasm createdisk DISK1 /dev/sdb1

在此示例中,DISK1 是分配给磁盘的名称。

注意:
指定的磁盘名称可以包含大写字母、数字和下划线字符。它们必须以大写字母开头。
要在安装 过程中使用 Oracle 自动存储管理库驱动程序创建数据库,必须将磁盘发现字符串更改为 ORCL:*。
如果将多路径磁盘驱动程序与 Oracle ASM 配合使用,请确保为磁盘指定正确的逻辑设备名称。

3、要使磁盘在群集中的其他节点上可用,请在每个节点上以 root 身份输入以下命令:

# /usr/sbin/oracleasm scandisks

此命令标识连接到标记为 Oracle ASM 磁盘的节点的共享磁盘。

三、管理 Oracle ASMLIB 和磁盘

查看此信息以管理 Oracle 自动存储管理库驱动程序和磁盘。

要管理 Oracle 自动存储管理库驱动程序和磁盘,请使用具有不同选项的 /usr/sbin/oracleasm 初始化脚本,如下表所述:
使用 ORACLEASM 的磁盘管理任务

Task Command Example Description
Configure or reconfigure ASMLIB oracleasm configure -i Use the configure option to reconfigure the Oracle Automatic Storage Management library driver, if necessary.
To see command options, enter oracleasm configure without the -i flag.
Change system restart load options for ASMLIB oracleasm configure -e Options are -e to enable and -d to disable.
Load or unload ASMLIB without restarting the system oracleasm init Options are init to load and exit to unload。Use the init and exit options to load or unload the Oracle Automatic Storage Management library driver without restarting the system.
Mark a disk for use with ASMLIB oracleasm createdisk VOL1 /dev/sda1 Use the createdisk option to mark a disk device for use with the Oracle Automatic Storage Management library driver and give it a name, where labelname is the name you want to use to mark the device, and devicepath is the path to the device:oracleasm createdisk labelname devicepath
Unmark a named disk device oracleasm deletedisk VOL1 Use the deletedisk option to unmark a named disk device, where diskname is the name of the disk:oracleasm deletedisk diskname Caution: Do not use this command to unmark disks that are being used by an Oracle Automatic Storage Management disk group. You must delete the disk from the Oracle Automatic Storage Management disk group before you unmark it.
Determine if ASMLIB is using a disk device oracleasm querydisk Use the querydisk option to determine if a disk device or disk name is being used by the Oracle Automatic Storage Management library driver, where diskname_devicename is the name of the disk or device that you want to query:oracleasm querydisk diskname_devicename
List Oracle ASMLIB disks oracleasm listdisks Use the listdisks option to list the disk names of marked Oracle ASM library driver disks.
Identify disks marked as ASMLIB disks oracleasm scandisks Use the scandisks option to enable cluster nodes to identify which shared disks have been marked as ASMLIB disks on another node.
Rename ASMLIB disks oracleasm renamedisk VOL1 VOL2 Use the renamedisk option to change the label of an Oracle ASM library driver disk or device by using the following syntax, where manager specifies the manager device, label_device specifies the disk you intend to rename, as specified either by OracleASM label name or by the device path, and new_label specifies the new label you want to use for the disk:
oracleasm renamedisk [-l manager] [-v] label_device new_label
Use the -v flag to provide a verbose output for debugging.Caution: You must ensure that all Oracle Database and Oracle ASM instances have ceased using the disk before you relabel the disk. If you do not do this, then you may lose data.

以上官方文档的
总结一下

  • 配置ASMLIB

oracleasm configure -i

  • 修改参数后重新加载

oracleasm configure -e

  • 初始化

oracleasm init

  • 创建VOL1磁盘

oracleasm createdisk VOL1 /dev/sda1

  • 删除VOL1磁盘

oracleasm deletedisk VOL1

  • 查询

oracleasm querydisk

  • 列出磁盘

oracleasm listdisks

  • 一般在第二个节点扫描磁盘

oracleasm scandisks

  • 对磁盘重命名

oracleasm renamedisk VOL1 VOL2

四、为多路径磁盘配置 Oracle ASMLIB

Oracle ASM 要求对每个磁盘进行唯一标识。如果同一磁盘出现在多个路径下,则会导致错误。

在多路径磁盘配置中,同一磁盘可以出现三次:磁盘的初始路径、磁盘的第二个路径和多路径磁盘访问点。

例如:如果您有一个本地磁盘 /dev/sda 和一个附加了外部存储的磁盘,则您的服务器将显示到该外部存储的两个连接或路径。Linux SCSI 驱动程序显示了这两个路径。它们显示为 /dev/sdb 和 /dev/sdc。系统可以访问 /dev/sdb 或 /dev/sdc,但访问的是同一个磁盘。

如果启用多路径,则有一个多路径磁盘(例如 /dev/multipatha),它可以访问 /dev/sdb 和 /dev sdc;多路径的任何 I/O 都可以使用 SDB 或 SDC 路径。如果系统正在使用 /dev/sdb 路径,并且该接口已拔出,则系统将显示错误。但多路径磁盘将从 /dev/sdb 路径切换到 /dev/sdc 路径。

大多数系统软件不知道多路径配置。他们可以使用任何路径(sdb、sdc 或 multipatha)。ASMLIB 也不知道多路径配置。

默认情况下,ASMLIB 识别 Linux 报告给它的第一个磁盘路径,但由于它在该磁盘上印记了一个标识,因此它只识别一个路径下的磁盘。根据您的存储驱动程序,它可能会识别多路径磁盘,或者可能会识别单个磁盘路径之一。

您应该配置 Oracle ASM 以识别多路径磁盘,而不是依赖默认值。

1、关于磁盘扫描排序

ORACLEASM_SCANORDER变量指定要首先扫描的磁盘。

ASMLIB 配置文件位于路径 /etc/sysconfig/oracleasm 中。它包含您使用命令 /etc/init.d/oracleasm configure 指定的所有启动配置。该命令无法配置扫描顺序。

配置文件包含许多配置变量。ORACLEASM_SCANEXCLUDE变量指定要忽略的磁盘。

使用空格分隔的前缀字符串配置ORACLEASM_SCANORDER的值。前缀字符串是与磁盘类型关联的常见字符串。例如,如果使用前缀字符串 sd,则此字符串匹配所有 SCSI 设备,包括 /dev/sda、/dev/sdb、/dev/sdc 等。请注意,这些不是球体。他们不使用通配符。它们是简单的前缀。另请注意,路径不是前缀的一部分。例如,/dev/ 路径不是路径 /dev/sd* 中的 SCSI 磁盘前缀的一部分。

对于 Oracle Linux 和 Red Hat Enterprise Linux 版本 5,在扫描时,内核会将设备视为 /dev/mapper/XXX 条目。默认情况下,设备文件命名方案 udev 会创建 /dev/mapper/XXX 名称,以便于人类阅读。任何使用 ORACLEASM_SCANORDER 的配置都应使用 /dev/mapper/XXX 条目。

2、配置磁盘扫描顺序以选择多路径磁盘

要将 ASMLIB 配置为首先选择多路径磁盘,请完成以下过程。

  • 1.使用文本编辑器,打开 ASMLIB 配置文件 /etc/sysconfig/oracleasm。
  • 2.编辑 ORACLEASM_SCANORDER 变量以提供多路径磁盘的前缀路径
    例如,如果多路径磁盘使用前缀多路径(/dev/mapper/multipatha、/dev/mapper/multipathb 等),并且多路径磁盘装载 SCSI 磁盘,则提供类似于以下内容的前缀路径:

ORACLEASM_SCANORDER="multipath sd"

  • 3.保存文件

完成此过程后,当 ASMLIB 扫描磁盘时,它首先扫描前缀字符串多路径的所有磁盘,并使用 /dev/mapper/multipathX 值将这些磁盘标记为 Oracle ASM 磁盘。然后,它会使用前缀字符串 sd 扫描所有磁盘。但是,由于 ASMLIB 识别出这些磁盘已使用 /dev/mapper/multipath 字符串值进行标记,因此它会忽略这些磁盘。扫描前缀字符串多路径和 sd 后,Oracle ASM 会扫描与扫描顺序不匹配的任何其他磁盘。

在步骤 2 的示例中,关键字多路径实际上是在 /etc/multipath.conf 中多路径部分下配置的多路径设备的别名。默认设备名称采用 /dev/mapper/mpath* 格式(或类似路径)。例如:

multipaths {
multipath {
wwid 3600508b4000156d700012000000b0000
alias multipath
...
}
multipath {
...
alias mympath
...
}
...
}

3、配置磁盘顺序扫描以排除单路径磁盘

要将 ASMLIB 配置为排除特定的单路径磁盘,请完成以下过程。

  • 1.使用文本编辑器,打开 ASMLIB 配置文件 /etc/sysconfig/oracleasm。
  • 2.编辑 ORACLEASM_SCANEXCLUDE 变量以提供单个路径磁盘的前缀路径。
    例如,如果要排除单路径磁盘 /dev sdb 和 /dev/sdc,请提供类似于以下内容的前缀路径:

ORACLEASM_SCANEXCLUDE="sdb sdc"

  • 3.保存文件

完成此过程后,当 ASMLIB 扫描磁盘时,它会扫描除带有 sdb 和 sdc 前缀的磁盘之外的所有磁盘,以便忽略 /dev/sdb 和 /dev/sdc。它不会忽略其他 SCSI 磁盘,也不会忽略多路径磁盘。如果您有同时访问 /dev/sdb 和 /dev/sdc 的多路径磁盘(例如 /dev/multipatha),但您已将 ASMLIB 配置为忽略 sdb 和 sdc,则 ASMLIB 将忽略这些磁盘,而仅将多路径磁盘标记为 Oracle ASM 磁盘。

五、卸载Oracle ASMLIB

如果安装了 Oracle ASM 库驱动程序 (Oracle ASMLIB),但您不将其用于设备路径持久性,请卸载 Oracle ASMLIB。

  • 1.以root用户身份登录
  • 2.停止节点上任何正在运行的 Oracle ASM 数据库实例:

# srvctl stop instance -d db_unique_name-node node_name
# srvctl stop asm -node node_name

要停止节点上的最后一个 Oracle Flex ASM 实例,请停止 Oracle Clusterware 堆栈:

# Grid_home/bin/crsctl stop crs

  • 3.停止Oracle ASMLIB:

# /usr/sbin/oracleasm configure -d

  • 4.删除oracleasm library and tools RPMs:

# rpm -e oracleasm-support
# rpm -e oracleasmlib

  • 5.检查

# rpm -qa| grep oracleasm

  • 6.如果还有剩下的,删除它

# rpm -qa| grep oracleasm | xargs rpm -e

Oracle ASMLIB 和相关的 RPM 现已删除。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论