在 CentOS 7 上安装和配置 ASMLIB

ASMLIB 是 Oracle 数据库的 ASM(自动存储管理)特性的可选支持库。
ASM 简化了存储管理并大大减少了内核资源的使用(例如打开的文件描述符的数量)。
它消除了 DBA(数据库管理员)直接管理可能数以千计的 Oracle 数据库文件的需要,只需要管理分配给 Oracle 数据库的磁盘组。
ASMLIB 允许使用 ASM 的 Oracle 数据库更有效地访问它正在使用的磁盘组。

在以前的版本中,Oracle ASM 作为 Oracle 数据库安装的一部分进行安装。
在 Oracle Database 11g 第 2 版 (11.2) 中,Oracle ASM 是 Oracle Grid Infrastructure 安装的一部分,用于集群或者独立服务器。

在本文中,我们将在 Linux 服务器上安装 ASMLIB,并将磁盘标记为供 Oracle Grid Infrastructure 使用,或者更具体地说是 Oracle Grid Infrastructure 的 Oracle ASM 组件。

配置 Oracle ASM 库驱动程序

按如下方式配置 Oracle ASM 库驱动程序:

[root@gridserver ~]# 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
Default group to own the driver interface []: asmadmin
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@gridserver ~]#

请注意,如果我们在上述配置中省略用户和组,那么它将被设置为默认用户 root 和默认组 root,并且在网格基础设施安装期间检测候选磁盘时会产生问题。

[root@localhost ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
[root@localhost ~]#

创建分区

使用 fdisk 检查可用空间。

[root@gridserver ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00035159
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
Disk /dev/sdb: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_gridserver-lv_root: 18.9 GB, 18865979392 bytes
255 heads, 63 sectors/track, 2293 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_gridserver-lv_swap: 2080 MB, 2080374784 bytes
255 heads, 63 sectors/track, 252 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
[root@gridserver ~]#

从上面的输出中,我们可以看到 /dev/sdb 有 26 GB 的存储空间。
现在,我们将创建 6 个相同大小(即每个 4GB)的分区,如下所示:

[root@gridserver ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xf5d5e858.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-3263, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3263, default 3263):
Using default value 3263
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1-3263, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3263, default 3263): +4G
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (524-3263, default 524):
Using default value 524
Last cylinder, +cylinders or +size{K,M,G} (524-3263, default 3263): +4G
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1047-3263, default 1047):
Using default value 1047
Last cylinder, +cylinders or +size{K,M,G} (1047-3263, default 3263): +4G
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1570-3263, default 1570):
Using default value 1570
Last cylinder, +cylinders or +size{K,M,G} (1570-3263, default 3263): +4G
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (2093-3263, default 2093):
Using default value 2093
Last cylinder, +cylinders or +size{K,M,G} (2093-3263, default 3263): +4G
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (2616-3263, default 2616):
Using default value 2616
Last cylinder, +cylinders or +size{K,M,G} (2616-3263, default 3263): +4G
Command (m for help): p
Disk /dev/sdb: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf5d5e858
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        3263    26210016    5  Extended
/dev/sdb5               1         523     4200934+  83  Linux
/dev/sdb6             524        1046     4200966   83  Linux
/dev/sdb7            1047        1569     4200966   83  Linux
/dev/sdb8            1570        2092     4200966   83  Linux
/dev/sdb9            2093        2615     4200966   83  Linux
/dev/sdb10           2616        3138     4200966   83  Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@gridserver ~]#

现在,我们有 6 个分区(每个 4GB),可用于 Oracle ASM 存储磁盘。

安装 ASMLIB

Oracle ASMLIB 内核驱动程序现在包含在 UEK(牢不可破的企业内核)中。
使用该内核时无需安装驱动包。
oracleasm-support 和 oracleasmlib 软件包仍然需要从 ULN(牢不可破的 Linux 网络)安装。

虽然驱动程序和支持工具位于 Oracle Linux 安装介质上,但 oracleasmlib RPM 不在(此包允许 Oracle 访问内核驱动程序)。

此包仅在 ULN 上可用。
ULN 的订阅者可以使用 yum 或者 up2date 在他们的服务器上下载和安装软件包。
非订阅者可以在他们的 Oracle Linux 机器上免费使用为 RHEL(Red Hat Enterprise Linux)构建的类似软件包。

好消息是 oracleasm 内核驱动程序也可以从 RHEL 和 CentOS yum 存储库中获得。
由于我们的操作系统是 CentOS 6.3,因此,我可以使用 yum 轻松安装它。

检查 oracleasm 模块是否可用于 Linux 发行版,如下所示:

[root@gridserver sysconfig]# yum search oracleasm
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
* base: centos.mirror.net.in
* extras: centos.mirror.net.in
* updates: centos.mirror.net.in
base                                       | 3.7 kB     00:00
extras                                     | 3.4 kB     00:00
updates                                    | 3.4 kB     00:00
==================== N/S Matched: oracleasm==========================
kmod-oracleasm.x86_64 : oracleasm kernel module(s)
  Name and summary matches only, use "search all" for everything.
[root@gridserver sysconfig]#

现在安装 kmod-oracleasm。

[root@gridserver sysconfig]# yum install oracleasm

完成后更新内核,从 http://www.oracle.com 下载并安装最新版本的 oracleasm-support 和 oracleasmlib。

[root@gridserver sysconfig]# cd
[root@gridserver ~]# wget http://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel6/amd64/2.1.8/oracleasm-support-2.1.8-1.el6.x86_64.rpm

[root@gridserver ~]# wget http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el6.x86_64.rpm

[root@gridserver ~]# rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm

[root@gridserver ~]# rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm

创建 ASM 磁盘

ASMLIB 不支持 SELINUX,因此我们必须在继续之前禁用 SELINUX。

[root@gridserver ~]# setenforce 0
[root@gridserver ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config && cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@gridserver ~]#

创建ASM磁盘,我会为oradata创建3个磁盘,为recovery_area创建3个磁盘。

[root@gridserver ~]# oracleasm createdisk ASM_DATA1 /dev/sdb5
Writing disk header: done
Instantiating disk: done
[root@gridserver ~]# oracleasm createdisk ASM_DATA2 /dev/sdb6
Writing disk header: done
Instantiating disk: done
[root@gridserver ~]# oracleasm createdisk ASM_DATA3 /dev/sdb7
Writing disk header: done
Instantiating disk: done
[root@gridserver ~]# oracleasm createdisk ASM_FRA1 /dev/sdb8
Writing disk header: done
Instantiating disk: done
[root@gridserver ~]# oracleasm createdisk ASM_FRA2 /dev/sdb9
Writing disk header: done
Instantiating disk: done
[root@gridserver ~]# oracleasm createdisk ASM_FRA3 /dev/sdb10
Writing disk header: done
Instantiating disk: done
[root@gridserver ~]#

如果我们正在为集群安装 Oracle Grid Infrastructure,并且磁盘位于已由 RAC 中的另一个节点标记的共享存储中,则只能在设置 iScsi Initiator 后通过以下命令扫描这些磁盘。

oracleasm scandisks

现在,已安装 ASMLIB 并已创建 ASM 磁盘。
我们可以在服务器上安装 Oracle Grid Infrastructure 12c。

www. On IT Road .com

创建用户和角色

根据 Oracle Grid Infrastructure 12c 的要求创建以下操作系统用户和组。

[root@gridserver ~]# groupadd -g 601 oinstall
[root@gridserver ~]# groupadd -g 602 dba
[root@gridserver ~]# groupadd -g 603 oper
[root@gridserver ~]# groupadd -g 604 asmadmin
[root@gridserver ~]# groupadd -g 605 asmoper
[root@gridserver ~]# groupadd -g 606 asmdba
[root@gridserver ~]#
[root@gridserver ~]# useradd -u 601 -g oinstall -G asmadmin,asmdba,asmoper grid
[root@gridserver ~]#
[root@gridserver ~]# passwd grid
Changing password for user grid.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@gridserver ~]#
日期:2020-09-17 00:11:34 来源:oir作者:oir