CentOS6.6+Openfiler+Oracle 11.2.0.4+RAC+ASM安装文档 - 图文

更新时间:2024-06-17 23:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

CentOS6.6+Openfiler+Oracle 11.2.0.4+RAC+ASM安装文档

目录

一,系统准备工作 ............................................................................................................... 4 1.1,RAC架构规划 .......................................................................................................... 4 1.2,修改/etc/hosts文件 ................................................................................................ 4 1.3,安装所需要的软件包 .............................................................................................. 5 1.4,添加用户,组和目录 .............................................................................................. 5 1.5,配置用户环境变量 .................................................................................................. 7 1.6,配置内核参数 ........................................................................................................ 10 1.7,设置系统资源限制 ................................................................................................ 10 1.8,配置时间同步 ........................................................................................................ 12 1.9,关闭系统防火墙和selinux .................................................................................... 13 二,配置Openfiler存储系统 ............................................................................................ 14 2.1,存储规划 ................................................................................................................ 14 2.2,配置Openfiler ........................................................................................................ 14 2.3,在Oracle RAC节点上配置iSCSI卷 ...................................................................... 21 2.4,在Oracle RAC节点上配置multipath ................................................................... 22 2.5,在Oracle RAC节点上配置ASM ........................................................................... 29 三,安装集群软件部分 ..................................................................................................... 30 3.1,准备安装软件 ........................................................................................................ 30 3.2,安装前的环境检查 ................................................................................................ 31 3.3,安装过程 ................................................................................................................ 31 3.4,卸载grid ................................................................................................................. 41 四,数据库安装配置部分 ................................................................................................. 41 4.1,安装oracle11.2.0.4数据库软件 ........................................................................... 41 4.2,创建ASM磁盘组 .................................................................................................. 47 4.3,创建RAC数据库 ................................................................................................... 49 4.4,建立监听服务 ........................................................................................................ 59 4.5,安装后的验证与检查 ............................................................................................ 62 五,安装中遇到的问题及解决 ......................................................................................... 65 5.1,注意事项 ................................................................................................................ 65

5.2,节点一执行root.sh 成功、节点二执行root.sh失败 ......................................... 66

一,系统准备工作 1.1,RAC架构规划

服务器主机名 公共IP地址 虚拟IP地址 私有IP地址 Oracle rac sid 集群实例名称 SCAN IP 操作系统 存储 Oracle版本 racnode1 192.168.2.236 192.168.2.246 172.16.1.1 racdb1 racdb 192.168.2.238 CentOS6.6-x86_64 Openfiler Oracle 11.2.0.4 racnode2 192.168.2.237 192.168.2.247 172.16.1.2 racdb2 1.2,修改/etc/hosts文件

所有节点都要配置 [root@racnode1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #Public Network - (eth0) 192.168.2.236 racnode1 192.168.2.237 racnode2 #Private Interconnect - (eth1) 172.16.1.1 racnode1-priv 172.16.1.2 racnode2-priv #Public Virtual IP(VIP) - (eth0:1) 192.168.2.246 racnode1-vip 192.168.2.247 racnode2-vip #Single Client Access Name (SCAN) 192.168.2.238 rac-scan #Storage Network for Openfiler - (eth0) 192.168.2.233 openfiler

1.3,安装所需要的软件包

所有节点都要执行

Oracle Linux 6, Red Hat Enterprise Linux 6 The following packages (or later versions) must be installed: binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3-69.el6.i686 gcc-4.4.4-13.el6 (x86_64) gcc-c++-4.4.4-13.el6 (x86_64) glibc-2.12-1.7.el6 (i686) glibc-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6.i686 ksh libgcc-4.4.4-13.el6 (i686) libgcc-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6.i686 libstdc++-devel-4.4.4-13.el6 (x86_64) libstdc++-devel-4.4.4-13.el6.i686 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.107-10.el6.i686 libaio-devel-0.3.107-10.el6 (x86_64) libaio-devel-0.3.107-10.el6.i686 make-3.81-19.el6 sysstat-9.0.4-11.el6 (x86_64) 配置好yum,使用yum安装

yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-develcompat-libstdc++-33.i686libaio.i686 libaio-devel.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686glibc-devel.i686glibc.i686 libgcc.i686 libstdc++-devel.i686 -y

1.4,添加用户,组和目录

1.4.1,RAC使用的用户与组的关系

描述 OS 组名 分配给该组Oracle 权限 Oracle 组名

的 OS 用户 Oracle清单和软件所有者 oinstall grid、oracle Oracle自动存储管理组 ASM 数据库管理员组 ASM 操作员组 数据库管理员 数据库操作员

asmadmin grid asmdba grid、oracle SYSASM OSASM ASM的SYSDBA OSDBA for ASM ASM的SYSOPER OSOPER for ASM SYSDBA SYSOPER OSDBA OSOPER asmoper grid dba oper oracle oracle 1.4.2,在所有节点都要执行创建用户

GRID 用户:

#groupadd -g 1000 oinstall #groupadd -g 1200 asmadmin #groupadd -g 1201 asmdba #groupadd -g 1202 asmoper

#useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c \# id grid

Oracle 用户:

# groupadd -g 1300 dba # groupadd -g 1301 oper

# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c \# id oracle 修改密码: passwd oracle passwd grid

在所有节点上验证用户 nobody 存在

安装软件之前,执行以下过程,以验证在两个Oracle RAC 节点上存在用户nobody,要确定该用户是否存在,输入以下命令: # id nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody) 如果该命令显示了nobody 用户的信息,则无需创建该用户。如果用户 nobody 不存在,则输入以下命令进行创建: # /usr/sbin/useradd nobody

1.4.3,在所有节点上创建安装目录

mkdir -p /u01/app/grid

mkdir -p /u01/app/11.2.0/grid chown -R grid:oinstall /u01

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01

chown -R oracle:oinstall /u01 chmod -R 775 /u01/

1.5,配置用户环境变量

1.5.1,Grid用户环境变量:

以grid用户帐户分别登录到两个Oracle RAC节点并创建以下登录脚本 (.bash_profile)。在为每个Oracle RAC节点设置Oracle环境变量时,确保为每个RAC节点指定唯一的 Oracle SID。如:

racnode1:ORACLE_SID=+ASM1 racnode2:ORACLE_SID=+ASM2 # su - grid #vi ~/.bash_profile # --------------------------------------------------- # .bash_profile # --------------------------------------------------- # OS User: grid # Application: Oracle Grid Infrastructure # Version: Oracle 11g release 2 # --------------------------------------------------- # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi ORACLE_SID=+ASM1; export ORACLE_SID JAVA_HOME=/usr/local/java; export JAVA_HOME ORACLE_BASE=/u01/app/grid; export ORACLE_BASE ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH # SQLPATH=/u01/app/common/oracle/sql; export SQLPATH ORACLE_TERM=xterm; export ORACLE_TERM NLS_DATE_FORMAT=\TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11 PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin PATH=${PATH}:/u01/app/common/oracle/bin export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export CLASSPATH THREADS_FLAG=native; export THREADS_FLAG export TEMP=/tmp export TMPDIR=/tmp # --------------------------------------------------- # Set the default file mode creation mask # (umask) to 022 to ensure that the user performing # the Oracle software installation creates files # with 644 permissions. # --------------------------------------------------- umask 022 1.5.2,Oracle用户的环境变量:

以oracle用户帐户分别登录到两个Oracle RAC节点并创建以下登录脚本(.bash_profile),在为每个Oracle RAC节点设置Oracle环境变量时,确保为每个RAC节点指定唯一的Oracle SID。如:

racnode1:ORACLE_SID=racdb1 racnode2:ORACLE_SID=racdb2 # su - oracle #vi ~/.bash_profile # --------------------------------------------------- # .bash_profile # --------------------------------------------------- # OS User: oracle # Application: Oracle Database Software Owner # Version: Oracle 11g release 2 # --------------------------------------------------- # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi ORACLE_SID=racdb1; export ORACLE_SID ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME JAVA_HOME=/usr/local/java; export JAVA_HOME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH ORACLE_TERM=xterm; export ORACLE_TERM NLS_DATE_FORMAT=\TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11 PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin PATH=${PATH}:/u01/app/common/oracle/bin export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export CLASSPATH THREADS_FLAG=native; export THREADS_FLAG export TEMP=/tmp export TMPDIR=/tmp # --------------------------------------------------- # UMASK # --------------------------------------------------- # Set the default file mode creation mask # (umask) to 022 to ensure that the user performing # the Oracle software installation creates files # with 644 permissions. # --------------------------------------------------- umask 022 1.6,配置内核参数

官网手册给出的值都是最小值,因此如果您的系统使用更大的值,则不要更改。 #vi /etc/sysctl.conf kernel.shmmax = 4294967295 kernel.shmall = 2097152 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048576 fs.aio-max-nr=1048576 注意:CentOS6已经配置了为以下内核参数定义的默认值: kernel.shmall kernel.shmmax

如果这些默认值等于或大于必需值,则使用这些默认值。 使修改的参数生效:

[root@racnode1 ~]# sysctl -p

1.7,设置系统资源限制

1.7.1,修改limits.conf文件

要改善Linux系统上的软件性能,必须对Oracle软件所有者用户(grid、oracle)增加以下资源限制: Shell 限制 打开文件描述符的最大数 limits.conf中的条目 硬限制 nofile 65536 16384 10240 可用于单个用户的最大进程数 nproc 进程堆栈段的最大大小 stack 以root用户身份,在每个Oracle RAC节点上,在/etc/security/limits.conf 文件中添加以下几行代码:

[root@rac1 ~]# cat >> /etc/security/limits.conf <

grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 EOF

说明,绿色部分一起执行

1.7.2,修改login文件

在每个Oracle RAC节点上都要执行,在/etc/pam.d/login文件中添加或编辑下面一行内容: [root@rac1 ~]# cat >> /etc/pam.d/login <

session required /lib64/security/pam_limits.so EOF

-- 说明,绿色部分一起执行

1.7.3,shell的限制

对默认的shell启动文件进行以下更改,以便更改所有Oracle安装所有者的ulimit设置: (1)对于Bourne、Bash或Korn shell,通过运行以下命令将以下行添加到/etc/profile文件:

[root@racnode1 ~]# cat >> /etc/profile <

if [ \\$USER = \ if [ \\$SHELL = \ ulimit -p 16384 ulimit -n 65536 else

ulimit -u 16384 -n 65536 fi

umask 022 fi EOF

-- 说明,绿色部分一起执行 对于C shell(csh或tcsh),通过运行以下命令将以下行添加到/etc/csh.login文件: [root@racnode1 ~]# cat >> /etc/csh.login <

limit descriptors 65536 endif EOF

-- 说明,绿色部分一起执行

1.8,配置时间同步

在集群中的两个Oracle RAC节点上执行以下集群时间同步服务配置。Oracle Clusterware 11g第2版及更高版本要求在部署了Oracle RAC的集群的所有节点上实现时间同步。 Oracle 提供了两种方法来实现时间同步:

一种方法是配置了网络时间协议(NTP)的操作系统, 另一种方法是新的Oracle集群时间同步服务(CTSS)。Oracle集群时间同步服务(ctssd)旨在为那些Oracle RAC数据库无法访问NTP服务的组织提供服务。

1.8.1.配置集群时间同步服务 — (CTSS)

使用集群时间同步服务在集群中提供同步服务,需要卸载网络时间协议(NTP)及其配置。 要停用NTP服务,必须停止当前的ntpd服务,从初始化序列中禁用该服务,并删除ntp.conf文件。要在Oracle Enterprise Linux上完成这些步骤,以root用户身份在两个Oracle RAC节点上运行以下命令:

[root@racnode1 ~]# /sbin/service ntpd stop [root@racnode1 ~]# chkconfig ntpd off

[root@racnode1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original 还要删除以下文件:

[root@racnode1 ~]# rm /var/run/ntpd.pid 此文件保存了NTP后台程序的pid。

当安装程序发现NTP协议处于非活动状态时,安装集群时间同步服务将以活动模式自动进行安装并通过所有节点的时间。如果发现配置了NTP,则以观察者模式启动集群时间同步服务,Oracle Clusterware不会在集群中进行活动的时间同步。

在安装后,要确认ctssd处于活动状态,请作为网格安装所有者(grid)输入以下命令: [grid@racnode1 ~]$ crsctl check ctss

CRS-4701: The Cluster Time Synchronization Service is in Active mode. CRS-4702: Offset (in msec): 0

1.8.2.配置网络时间协议 —(仅当不按如上所述使用CTSS时)

如果正在使用NTP,并且愿意继续使用它而不是集群时间同步服务,那么您需要修改NTP初始化文件,在其中设置-x标志,这样可避免向后调整时间。完成此任务后,重启网络时间协议后台程序。

为了在Oracle Enterprise Linux、Red Hat Linux和Asianux系统上完成此任务,编辑/etc/sysconfig/ntpd 文件,添加 -x 标志,如下例所示:

[root@rac1 mapper]# cat /etc/sysconfig/ntpd # Drop root to id 'ntp:ntp' by default.

OPTIONS=\-x -u ntp:ntp -p /var/run/ntpd.pid\

# Set to 'yes' to sync hw clock after successful ntpdate SYNC_HWCLOCK=no

# Additional options for ntpdate NTPDATE_OPTIONS=\

然后,重启 NTP 服务。 # /sbin/service ntp restart

1.9,关闭系统防火墙和selinux

所有节点都要执行

关闭防火墙

service iptables stop chkconfig iptables off

设置/etc/selinux/config文件,将SELINUX设置为disabled [root@racnode1 ~]# 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 - Only targeted network daemons are protected. # strict - Full SELinux protection. 以上配置都完成后,需要重启系统生效。 #reboot

二,配置Openfiler存储系统 2.1,存储规划

具体规划信息如下图:

iSCSI / 逻辑卷 卷名 卷描述 所需空间 (MB) 文件系统类型 2,208 33,888 33,888 iSCSI iSCSI iSCSI racdb-crs1 racdb - ASM CRS Volume 1 racdb-data1 racdb - ASM Data Volume 1 racdb-fra1 racdb - ASM FRA Volume 1

2.2,配置Openfiler

Openfiler是在rPath Linux基础上开发的,它能够作为一个独立的Linux操作系统发行。Openfiler是一款非常好的存储管理操作系统,开源免费,通过web界面对存储磁盘的管理,支持现在流行的网络存储技术IP-SAN和NAS,支持iSCSI(Internet Small Computer System Interface, 学名ISCSI HBA)、NFS、SMB/CIFS及FTP等协议。 openfiler提供web登录,Https://192.168.2.233:446/. 默认账户是openfiler密码为password. 我们登陆之后可以修改用户的密码。

2.2.1,启动iscsi服务

在Service里面启动iscsi target。启动之后,下次重启会自动启该服务。

2.2.2,配置iscsi访问IP

只有配置了IP才有权限访问openfiler存储。在system 选项的最下面有配置选项,把IP 写上即可。注意这里的子网掩码,写的是255.255.255.255

2.2.3,创建集群节点用共享磁盘设备

我们将创建三个 iSCSI 卷,以供集群中的两个Oracle RAC节点用作共享存储。这将在连接到 Openfiler 服务器的内置 73GB 15K SCSI 硬盘驱动器上执行多个步骤。 存储设备(如内置 IDE/SATA/SCSI/SAS 磁盘、存储阵列、外置 USB 驱动器、外置 FireWire 驱动器或者任何其他存储设备)可以连接到 Openfiler 服务器,并供客户端使用。如果在操作系统级发现了这些设备,就可以使用 Openfiler Storage Control Center 设置和管理所有这些存储设备。 在本例中,我们有一个73GB 的内置SCSI硬盘驱动器用于满足共享存储之需。在 Openfiler服务器上,该驱动器显示为 /dev/sdb (MAXTOR ATLAS15K2_73SCA)。要看到该驱动器并启动 iSCSI 卷的创建过程,请从 Openfiler Storage Control Center 转到 [Volumes] / [Block Devices]:

对物理磁盘进行分区 我们要执行的第一步是在 /dev/sdb 内置硬盘上创建一个主分区。单击 /dev/sdb 链接,我们会看到“Edit”或“Create”选项,分别用于编辑和创建分区。由于我们将创建一个跨整个磁盘的主分区,因此可以将大多数选项保留为默认设置,唯一的修改是将“Partition Type”由“Extended partition”更改为“Physical volume”。下面是我为了在 /dev/sdb 上创建主分区而指定的值: 模式:Primary

分区类型:Physical volume 开始柱面:1 结束柱面:8924 现在,大小将显示 68.36 GB。要接受该设置,单击“Create”按钮。这将在我们的内置硬盘上生成一个新的分区 (/dev/sdb1):

卷组管理 下一步是创建卷组。我们将创建一个名为 racdbvg 的卷组,其中包含新创建的主分区。 从 Openfiler Storage Control Center 中转到 [Volumes] / [Volume Groups]。我们将看到所有现有的卷组,或者什么也看不到(我们的情况就是这样)。在 Volume Group Management 屏幕中,输入新卷组的名称 (racdbvg),单击 /dev/sdb1 前面的复选框以选中该分区,最后单击“Add volume group”按钮。之后,我们会看到一个列表,其中显示出我们新创建的这个名为“racdbvg”的卷组:

创建逻辑卷 现在,我们可以在新创建的卷组 (racdbvg) 中创建三个逻辑卷。

从 Openfiler Storage Control Center 中转到 [Volumes] / [Add Volume]。我们将看到新创建的卷组 (racdbvg) 及其块存储统计信息。该屏幕底部还提供了一个选项,用于在选定的卷组中创建一个新卷—(在“racdbvg”中创建一个卷)。使用该屏幕创建以下三个逻辑 (iSCSI) 卷。 在创建每个逻辑卷之后,应用程序将转至“Manage Volumes”屏幕。然后,您需要单击后退到“Add Volume”选项卡以创建下一个逻辑卷,直至三个 iSCSI 卷全部创建完毕:

iSCSI / 逻辑卷 卷名 卷描述 所需空间 (MB) 文件系统类型 2,208 33,888 33,888 iSCSI iSCSI iSCSI racdb-crs1 racdb - ASM CRS Volume 1 racdb-data1 racdb - ASM Data Volume 1 racdb-fra1 racdb - ASM FRA Volume 1 实际上,我们已经创建了三个 iSCSI 磁盘,现在可以将它们呈现给网络上的 iSCSI 客户端(racnode1 和 racnode2)。“Manage Volumes”屏幕应如下所示:

iSCSI 目标 现在,我们有了三个iSCSI逻辑卷。但是,为了使iSCSI客户端可以访问这些逻辑卷,首先需要为这三个卷中的每个卷创建一iSCSI目标。每个iSCSI逻辑卷将映射到一个特定的iSCSI目标,并将为两个Oracle RAC节点授予对该目标的相应网络访问权限。对于本文,在iSCSI逻辑卷和iSCSI目标之间将会有一一映射的关系。 创建和配置 iSCSI 目标的过程包括三步:创建一个唯一的目标 IQN(实质上是新的 iSCSI 目标的通用名称),将上一节中创建的一个iSCSI逻辑卷映射到新创建的iSCSI目标,最后,授予两个Oracle RAC节点访问该新iSCSI目标的权限。请注意,需要对上一节中创建的三个iSCSI逻辑卷中的每个卷都执行一次此过程。 对于本文,下表列出了新的 iSCSI 目标名称(目标 IQN)及其将映射到的 iSCSI 逻辑卷:

iSCSI 目标/逻辑卷映射 目标 IQN iSCSI 卷名 卷描述 iqn.2006-01.com.openfiler:racdb.crs1 racdb-crs1 ASM CRS Volume 1 iqn.2006-01.com.openfiler:racdb.data1 racdb-data1 ASMDataVolume 1 iqn.2006-01.com.openfiler:racdb.fra1 racdb-fra1 ASM FRA Volume 1 现在我们来创建三个新的iSCSI目标—为每个iSCSI逻辑卷创建一个。下面举例说明通过创建 Oracle Clusterware/racdb-crs1 目标( iqn.2006-01.com.openfiler:racdb.crs1)来创建新的iSCSI目标时所需执行的三个步骤。这个三步过程需要对上表中列出的三个新 iSCSI 目标中

的每一个都重复执行一遍。

创建新目标 IQN 从 Openfiler Storage Control Center 中转到 [Volumes] / [iSCSI Targets]。确保选择了灰色子选项卡“Target Configuration”。您可在此选项卡页中创建一个新的 iSCSI 目标。系统会自动生成一个默认值,作为新 iSCSI 目标的名称(常称为“目标 IQN”)。目标 IQN 的一个示例是“iqn.2006-01.com.openfiler:tsn.ae4683b67fd3”:

我喜欢用更具含义的字串来替换这个默认目标 IQN 最后一段。对于第一个 iSCSI 目标(Oracle Clusterware/racdb-crs1),我将这样来修改默认的目标 IQN:将字符串“tsn.ae4683b67fd3”替换为“racdb.crs1”,如下面的图所示:

对新的目标 IQN 满意之后,单击“Add”按钮。这将会创建一个新的 iSCSI 目标,然后会出现一个页面,您可以在该页面中修改新 iSCSI 目标的一系列设置。对于本文,无需更改新 iSCSI 目标的任何设置。

LUN 映射

创建新的 iSCSI 目标之后,下一步是将相应的 iSCSI 逻辑卷映射到该目标。在“Target Configuration”子选项卡下,验证在“Select iSCSI Target”部分中选择了正确的 iSCSI 目标。如果不是这样,使用下拉菜单选择正确的 iSCSI 目标,然后单击“Change”按钮。 接下来,单击名为“LUN Mapping”的灰色子选项卡(在“Target Configuration”子选项卡旁)。找到相应的 iSCSI 逻辑卷(本例中为 /dev/racdbvg/racdb-crs1),然后单击“Map”按钮。无需更改此页面中的任何设置。对卷 /dev/racdbvg/racdb-crs1 单击“Map”按钮后,您的屏幕应如图所示:

网络 ACL 需要先授予 iSCSI 客户端相应的权限,它才能访问新创建的 iSCSI 目标。在前面,我们已通过Openfiler对两个主机(Oracle RAC 节点)进行网络访问配置。这两个节点需要通过存储(专用)网络访问新的 iSCSI 目标。现在,我们需要授予这两个 Oracle RAC 节点访问新 iSCSI 目标的权限。 单击名为“Network ACL”的灰色子选项卡(在“LUN Mapping”子选项卡旁)。对当前的 iSCSI 目标,将两个主机的“Access”值由“Deny”更改为“Allow”,然后单击“Update”按钮。

返回到创建新的目标 IQN 一节,对其余两个 ISCSI 逻辑卷执行这三个任务,同时替换“iSCSI 目标/逻辑卷映射”表中找到的值。

2.3,在Oracle RAC节点上配置iSCSI卷

在集群中的两个Oracle RAC节点上都要配置 iSCSI 启动器。而创建分区只应在 RAC 集群的一个节点上执行。 iSCSI 客户端可以是提供iSCSI支持(驱动程序)的任何系统(Linux、Unix、MS Windows、Apple Mac 等)。在我们的示例中,客户端是两个Linux服务器(racnode1 和 racnode2),它们运行的是CentOS Linux 6.6。 iSCSI软件启动器将配置为自动登录网络存储服务器 (openfiler),并发现上一节中创建的 iSCSI 卷。之后,我们将逐步使用mulltipath为发现的每个iSCSI目标名称创建永久性本地SCSI设备名称(即 /dev/mapper/crs1)。拥有一致的本地SCSI设备名称及其映射到的iSCSI目标,有助于在配置 ASM 时能够区分三个卷。但是,在此之前,我们首先必须安装 iSCSI 启动器软件。

2.3.1,安装 iSCSI(启动器)服务

我们使用yum安装

#yum -y install iscsi-initiator-utils

#rpm -qa | grep iscsi-initiator-utils验证是否安装

2.3.2,配置 iSCSI(启动器)服务

现在我们来启动initiator 服务(iscsid),并使其在系统引导时自动启动。在配置 iscsi 服务自动启动,使其在系统启动时自动登录iSCSI 目标。 # service iscsid start

[ OK ]off network shutdown. Starting iSCSI daemon: [ OK ] [ OK ]

# chkconfig iscsid on # chkconfig iscsi on

现在iSCSI服务已经启动,下面使用iscsiadm命令行接口发现网络存储服务器上的所有可用目标。这应该在两个 Oracle RAC 节点上执行,以检验配置是否正常工作: [root@racnode1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.2.233 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.crs 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.fra 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.data

2.3.3,手动登录 iSCSI 目标

此时,iSCSI 启动器服务已经启动,每个Oracle RAC节点都能够从网络存储服务器中发现可用目标。下一步是手动登录每个可用目标,这可以使用 iscsiadm 命令行接口完成。这需要在两个 Oracle RAC 节点上运行。注意,我必须指定网络存储服务器的IP地址而非其主机名—我认为必须这么做,因为上述发现使用 IP 地址显示目标。

# iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs -p 192.168.2.233 -l # iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data -p 192.168.2.233 -l # iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra -p 192.168.2.233 -l

2.3.4,配置自动登录

在计算机引导(或 iSCSI 启动器服务启动/重新启动)时,客户端将自动登录上面列出的每个目标。如同上面描述的手动登录过程,在两个 Oracle RAC 节点上执行以下命令

# iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs -p 192.168.2.233 --op update -n node.startup -v automatic

# iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data -p 192.168.2.233 --op update -n node.startup -v automatic

# iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra -p 192.168.2.233 --op update -n node.startup -v automatic

2.4,在Oracle RAC节点上配置multipath

在集群中的两个Oracle RAC节点上都要配置multipath。而格式化分区只应在 RAC 集群的节点1上执行,节点2刷新就可以了。 存储的配置只干一件事,就是给我提供一个target。这个target 是在存储上做的映射。客户端通过initiator 去连存储。然后把这个target 映射到自己的下一个可用设备上,如 /dev/sdc。如果只有一个target. 那么没有任何问题。每次initiator连上后都会把这个target 映射到/dev/sdc上。但是如果有多个target,那么这里就出了问题。因为initiator的连接是随机的。可能A先连接,那A就会映射到/dev/sdc上。如果B先连接,B就会映射到/dev/sdc上。这就是问题的所在。 Multipath除了上面提到的,实现LUN设备的持久化,它还有另一个功能,支持多路径轮询(提高I/O负载能力)。即可以通过多个网卡去访问Target设备。这样就提高了I/O的能力。在生产环境中较多使用multipath实现LUN的持久化和多路径访问。

2.4.1,安装multipath

查看相关包:

[root@rac1 ~]# rpm -qa|grep device-mapper device-mapper-multipath-0.4.7-30.el5 device-mapper-event-1.02.32-1.el5 device-mapper-1.02.32-1.el5

如果没有安装,从系统的安装文件里找到这集个包。 安装很简单:

#yum -y install device-mapperdevice-mapper-multipathdevice-mapper-event 说明:

(1)device-mapper-multipath

提供multipathd和multipath等工具和multipath.conf等配置文件。这些工具通过device mapper的ioctr的接口创建和配置multipath设备(调用device-mapper的用户空间库。创建的多路径设备会在/dev/mapper中) (2)device-mapper

device-mapper包括两大部分:内核部分和用户部分。 内核部分由device-mapper核心(multipath.ko)和一些target driver(dm-multipath.ko)构成。dm-mod.ko是实现multipath的基础,dm-multipath其实是dm的一个target驱动。核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些device的属性等。

用户空间部分包括device-mapper这个包。其中包括dmsetup工具和一些帮助创建和配置mappered device的库。这些库主要抽象,封装了与ioctr通信的接口,以便方便创建和配置mappered device。device-mapper-multipath的程序中就需要调用这些库。

2.4.2,配置iscsi多session访问

1个iSCSI Initiator透过多个Session连入同1个iSCSI Target设备,以便利用多网卡或iSCSI HBA启用负载平衡与故障失效切换机制,也可称作Multiple Sessions per Initiator。(这次试验只使用了一条路径,所有一下配置中的eth1接口不用配置)

断开ISCSI登录状态

# iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs -p 192.168.2.233 -u # iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data -p 192.168.2.233 -u # iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra -p 192.168.2.233 -u

-u 表示logout,-l 表示login。具体可以用man iscsiadm 查看。

新建访问接口文件

# iscsiadm -m iface -I iface0 --op=new # iscsiadm -m iface -I iface1 --op=new

接口文件保存在/var/lib/iscsi/ifaces目录中 # cd /var/lib/iscsi/ifaces/ # cat iface0

# BEGIN RECORD 2.0-871 iface.iscsi_ifacename = iface0 iface.transport_name = tcp # END RECORD

# cat iface1

# BEGIN RECORD 2.0-871 iface.iscsi_ifacename = iface1 iface.transport_name = tcp

# END RECORD

配置iface

# iscsiadm -m iface -I iface0 --op=update -n iface.net_ifacename -v eth0 # iscsiadm -m iface -I iface1 --op=update -n iface.net_ifacename -v eth1 确认iface配置 # iscsiadm -m iface

default tcp,,,, iser iser,,,, iface1 tcp,,,eth1, iface0 tcp,,,eth0,

搜索ISCSI Target

[root@rac1 ifaces]# iscsiadm -m discovery -t st -p 192.168.2.233 -I iface0 -I iface1 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.crs 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.fra 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.data

建立与Target的连接

[root@rac1 ifaces]# iscsiadm -m node -l

删除target连接 注意事项:

删除失效的iscsi连接:如果因为错误配置等原因创建了iscsi对应,系统不会自动删除,需手动删除。

# iscsiadm -m node

192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.crs 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.fra 192.168.2.233:3260,1 iqn.2006-01.com.openfiler:racdb.data

我们看到上面有二个iscsi对应,加入这个对应已经失效,系统不会自动删除。 删除命令:

#iscsiadm -m node -o delete -T iqn.2006-01.com.openfiler:racdb.crs -p 192.168.2.233:3260

查看连接状态

# netstat -anp |grep 3260

2.4.3,配置multipath实现永久target

Multipath的配置文件是:/etc/multipath.conf。该文件中大部分配置是注释掉的,可以将他保存为备用,然后新建一个multipath.conf 文件,编辑新的配置文件。 [root@rac1 etc]# cp multipath.conf multipath.conf.back

黑名单过滤

multipath会把所有设备都加入到黑名单(devnode \),也就是禁止使用。所以,我们首先需要取消该设置,把配置文件修改为类似下面的内容: devnode_blacklist { #devnode \ devnode \

wwid 3600508e000000000dc7200032e08af0b }

这里禁止使用hda,也就是光驱。另外,还使用wwid限制使用本地的sda设备。 使用下面的方法获得共享磁盘的wwid 先要手动挂载iscsi # iscsiadm -m node -l

当在节点上用fdisk -l 命令能查看到共享磁盘后,执行 #multipath -ll

前面一段就是对应的共享磁盘的wwid号。

编辑默认规则

不同的device-mapper-multipath或操作系统发行版,其默认的规则都有点不同,以红旗DC Server 5.0 SP2 for x86_64为例,其path_grouping_policy默认为failover,也就是主备的方式。HDS支持多路径负载均衡,EMC CX300等只支持Failover。默认允许friendly_name,否则使用设备的wwid作为持久化名称. 我们修改默认的规则: defaults {

udev_dir /dev

path_grouping_policy multibus failback immediate no_path_retry fail user_friendly_name yes }

配置multipath.conf文件

[root@rac1 ~]#cat /etc/multipath.conf|more

?

multipaths {

multipath {

wwid 14f504e46494c450034594d6462472d534745442d6a714841 alias rac-share

path_grouping_policy multibus path_checker readsector0 path_selector \ failback manual rr_weight priorities no_path_retry 5 } }

一个target 对应一个multipath. 如果有多个target 就写多个multipath 选项。

重启multipathd 服务,验证配置 # service multipathd restart # chkconfig multipathd on

进入/dev/mapper 目录进行验证: # ls -lrt /dev/mapper/*

查看映射情况 # multipath -ll

在 iSCSI 卷上创建分区

[root@racnode1 ~]# fdisk /dev/mapper/racdb-crs Command (m for help): n Command action e extended

p primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-1012, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-1012, default 1012): 1012

Command (m for help): p

Disk /dev/iscsi/crs1/part: 2315 MB, 2315255808 bytes 72 heads, 62 sectors/track, 1012 cylinders

Units = cylinders of 4464 * 512 = 2285568 bytes

Device Boot Start End Blocks /dev/iscsi/crs1/part1 1 1012 2258753

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table. Syncing disks.

# ---------------------------------------

[root@racnode1 ~]# fdisk /dev/mapper/racdb-data Command (m for help): n Command action e extended

p primary partition (1-4)

Id System 83 Linux p

Partition number (1-4): 1

First cylinder (1-33888, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-33888, default 33888): 33888

Command (m for help): p

Disk /dev/iscsi/data1/part: 35.5 GB, 35534143488 bytes 64 heads, 32 sectors/track, 33888 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System /dev/iscsi/data1/part1 1 33888 34701296 83 Linux Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table. Syncing disks.

# ---------------------------------------

[root@racnode1 ~]# fdisk /dev/mapper/racdb-fra Command (m for help): n Command action e extended

p primary partition (1-4) p

Partition number (1-4): 1

First cylinder (1-33888, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-33888, default 33888): 33888

Command (m for help): p

Disk /dev/iscsi/fra1/part: 35.5 GB, 35534143488 bytes 64 heads, 32 sectors/track, 33888 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System /dev/iscsi/fra1/part1 1 33888 34701296 83 Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table. Syncing disks.

在 racnode1 上创建所有需要的分区之后,要执行一下multipath命令刷新映射名称 [root@racnode1 ~]# multipath -F --清除多路径设备缓存,不然信息不能更新 [root@racnode1 ~]# multipath –v3 --重新加载 [root@racnode1 ~]# fdisk -l

[root@racnode1 mapper]# ls -lrt /dev/mapper/*

crw------- 1 root root 10, 62 Nov 12 04:42 /dev/mapper/control brw-rw---- 1 root disk 253, 0 Nov 12 05:33 /dev/mapper/crs brw-rw---- 1 root disk 253, 1 Nov 12 05:33 /dev/mapper/fra brw-rw---- 1 root disk 253, 2 Nov 12 05:33 /dev/mapper/data brw-rw---- 1 root disk 253, 3 Nov 12 05:33 /dev/mapper/crsp1 brw-rw---- 1 root disk 253, 4 Nov 12 05:33 /dev/mapper/datap1 brw-rw---- 1 root disk 253, 5 Nov 12 05:33 /dev/mapper/frap1

这里多了一下/dev/mapper/frap1,datap1 和crsp1 的分区,这些就是已经格式化之后的磁盘。我们可以直接使用。这里要注意一个问题,权限问题。现在看到的用户是root。我们需要在Oracle 用户。修改rc.local. 让系统每次在启动时修改文件属性: [root@racnode1 mapper]# cat /etc/rc.d/rc.local #!/bin/sh #

# This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

chown oracle:oinstall /dev/mapper/fra* chown oracle:oinstall /dev/mapper/data* chown oracle:oinstall /dev/mapper/crs*

执行下脚本:

[root@racnode1 mapper]# sh /etc/rc.d/rc.local

现在应使用以下命令以“root”用户帐户从 Oracle RAC 集群的所有其余节点 (racnode2) 将分区更改通知给内核。

在 racnode2 上运行以下命令: [root@racnode2 ~]# partprobe [root@racnode2 ~]# fdisk -l

[root@racnode2 ~]# multipath -ll

2.5,在Oracle RAC节点上配置ASM

在集群中的两个Oracle RAC节点上都要配置ASM。而创建ASM磁盘组只应在 RAC 集群的节点1上执行,节点2刷新就可以了。

2.5.1,安装ASM包

先安装ASM 包,这个几个包可以从Oracle 官网下载:

http://www.oracle.com/technetwork/topics/linux/asmlib/index-101839.html 根据你的系统版本下载对应的包,下面是我的下载包: oracleasmlib-2.0.4-1.el5.x86_64.rpm

oracleasm-support-2.1.8-1.el6.x86_64.rpm kmod-oracleasm-2.0.6.rh1-2.el6.x86_64.rpm

注意:最后一个包只是针对RHEL6或centos6以上的,6以下不叫这个名字。 # rpm -Uvh *.rpm

2.5.2,配置ASM初始化

oracleasm命令的默认路径为/usr/sbin。以前版本中使用的/etc/init.d 路径并未被弃用,但该路径下的oracleasm二进制文件现在一般用于内部命令。如果输入oracleasm configure命令时不带 -i 标志,则显示当前配置。

# 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 []: 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 You have new mail in /var/spool/mail/root 该脚本完成以下任务:

创建 /etc/sysconfig/oracleasm 配置文件 创建 /dev/oracleasm 挂载点 挂载 ASMLib 驱动程序文件系统

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

[root@rac1 mnt]# oracleasm init -- 在所有节点都要执行。 Creating /dev/oracleasm mount point: /dev/oracleasm Loading module \

Mounting ASMlib driver filesystem: /dev/oracleasm

如果这里没有配置,在安裝Clusterware后执行root.sh脚本时可能会触发错误

2.5.3,创建ASM磁盘组

创建过程在一个节点执行即可。另一个节点扫描一下就可以识别到了。 在node1:

#oracleasm createdisk CRS /dev/mapper/racdb-crsp1 #oracleasm createdisk DATA /dev/mapper/racdb-datap1 #oracleasm createdisk FRA /dev/mapper/racdb-frap1 node2:

# oracleasm scandisks

Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... Instantiating disk \Instantiating disk \Instantiating disk \

[root@rac2 mnt]# oracleasm listdisks CRS DATA FRA

如果创建错误,可以用deletedisk参数,如:oracleasm deletedisk DATA [root@rac2 mnt]# oracleasm querydisk DATA Disk \到此,ASM的安装配置结束。

三,安装集群软件部分 3.1,准备安装软件

一共3个压缩包:

p10404530_112040_Linux-x86-64_1of7.zip p10404530_112040_Linux-x86-64_2of7.zip p10404530_112040_Linux-x86-64_3of7.zip 其中:

p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip

这两个是 Oracle数据库软件的安装介质。 p13390677_112040_Linux-x86-64_3of7.zip 是 GRID 软件的安装介质。

为了便于下面安装软件,分别将其移动到oracle用户和grid用户的家目录解压 #mv p10404530_112040_Linux-x86-64_3of7.zip /home/grid #mv p10404530_112040_Linux-x86-64_1of7.zip p10404530_112040_Linux-x86-64_2of7.zip /home/oracle

#chown -R oracle:oinstall /home/oracle #chown -R grid:oinstall /home/grid

3.2,安装前的环境检查

root用户在节点1上安装 cvuqdisk相关 rpm 包: # cd /home/grid/grid/rpm/

# rpm -ivh cvuqdisk-1.0.9-1.rpm

然后将这个包scp到第二个节点安装。

以Grid用户进行Grid Infrastructure安装前的检查: #su - grid

$ cd /home/grid/grid

$./runcluvfy.sh stage -pre crsinst -n racnode1,racnode2–verbose 全部为pass时,检查通过安装环境准备 OK!

3.3,安装过程

在节点1上开始正式安装 Grid 软件:

一定要以grid 用户登录图形界面,执行/home/grid/grid中runInstaller,进入图形安装:

$ cd /home/grid/grid $ ./runInstaller

选择第3项[Skip software updates]跨过软件更新,[Next]

选择[Install and Configure Oracle Grid Infrastructure for a Cluster] ,[Next]

选择[Advanced Installation],[Next]

语言选择默认English,[Next]

取消勾选[Configure GNS]输入

[Cluster Name]rac-scan,[SCAN Name]rac-scan.test.com,[Next]

进行到此步骤时要注意:点击[Add]添加第2个节点,填写[Public Hostname]为racnode2,填写[Virtual Hostname]为racnode2-vip,点击[OK],点击ssh connectivety.然后输入密码,在设置一下,最后测试成功即可。设置的过程要等一会。

确认网络不用修改,点击[Next]

存储设置选择[Oracle Automatic Storage Management(Oracle ASM)],点击[Next]

本文来源:https://www.bwwdw.com/article/ain3.html

Top