[原]在红旗5.0上基于ASM方式安装Oracle 10g RAC [1]
2021年8月27日 07:12
•
linux专区
之前已经写了两篇文章:oracle 10g RAC 安装配置指南和红旗DC 5.0上安装oracle 10g R2 RAC。但其中都没有提到Oracle推荐的ASM管理磁盘模式,今天我就用一个实例进行一下讲解。(大部分的操作步骤在上面的文章中都已经提过,我会比较简单的再说明一次) 一、拓扑图 二、安装前准备1、操作系统 使用一个得到Oracle支持的操作系统很重要,我这里使用的是红旗DC Server 5.0 for x86;Oracle版本是10g R2。2、网络准备
引用
主机名:ora01 公网IP:219.142.7.143 私网IP:10.0.0.1 虚拟IP:219.142.7.201 网关:219.142.7.100 主机名:ora02 公网IP:219.142.7.144 私网IP:10.0.0.2 网关:219.142.7.100 虚拟IP:219.142.7.202 共享磁盘:/dev/sdb
3、/etc/hosts文件(保证两台机器内容一致)
引用
127.0.0.1 localhost.localdomain localhost
# Public Network – (eth0)
219.142.7.143 ora01
219.142.7.144 ora02
# Private Interconnect – (eth1) 10.0.0.1 int-ora01 10.0.0.2 int-ora02
# Public Virtual IP (VIP) addresses for – (eth0) 219.142.7.201 vip-ora01 219.142.7.202 vip-ora02
※确保在 /etc/hosts 文件的回送地址中不包含节点名(ora01 或 ora02)。也就是在127.0.0.1条目中,不能出现节点名,应该对应的是localhost。否则会出现类似下面的错误: 如果 RAC 节点名出现在回送地址中,您在 RAC 安装期间将接收到以下错误信息:
引用
ORA-00603:ORACLE server session terminated by fatal error
或
引用
ORA-29702:error occurred in Cluster Group Service operation
4、配置系统环境(保证两台机器内容一致) Oracle 强烈建议将默认的和最大的发送缓冲区大小(SO_SNDBUF 套接字选项)调整为 256KB,并将默认的和最大的接收缓冲区大小(SO_RCVBUF 套接字选项)调整为 256KB。 查看/etc/sysctl.conf文件是否如下面的内容:
引用
# Default setting in bytes of the socket receive buffer net.core.rmem_default=262144 # Default setting in bytes of the socket send buffer net.core.wmem_default=262144 # Maximum socket receive buffer size which may be set by using # the SO_RCVBUF socket option net.core.rmem_max=262144 # Maximum socket send buffer size which may be set by using # the SO_SNDBUF socket option net.core.wmem_max=262144
5、建立用户和组(两台机器上都要建立) 我准备使用 OCFS2 存储 Oracle 集群件软件需要共享的文件。(不能使用ASM)使用 OCFS2 时,集群中所有计算机上的 UNIX 用户 oracle 的 UID 以及 UNIX 组 dba 的 GID 都必须相同。如果 UID 或 GID 不同,则 OCFS 文件系统中的文件将显示为“unowned”,甚至可能被其他用户所拥有。对于本文而言,oracle UID 使用 700,dba GID 使用 700:
su – mkdir -p /u01/app groupadd -g 700 dba useradd -u 700 -g 700 -d /u01/app/oracle -s /bin/bash -c "Oracle Software Owner" -p oracle oracle chown -R oracle:dba /u01 passwd oracle
6、配置Oracle用户的环境变量(两台机器分别建立)
su – oracle vi .bash_profile
增加如下内容:
引用
# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
# Each RAC node must have a unique ORACLE_SID.(i.e. orcl1, orcl2,…) export ORACLE_SID=orcl1
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp
※注意,SID必须把两台机器修改为不一样 ,例如把ora02机器修改为:
引用
export ORACLE_SID=orcl2
7、为OCFS2集群件创建挂载点(保证两台机器内容一致)
su – mkdir -p /u02/oradata/orcl chown -R oracle:dba /u02
8、创建共享磁盘分区(其中一台机器运行即可) 下面是对共享磁盘进行分区,将使用 OCFS2 来存储 Oracle 的集群件软件要共享的两个文件。然后是创建三个 ASM 卷;两个 ASM 卷用于所有物理数据库文件(数据/索引文件、联机重做日志文件、控制文件、SPFILE 和归档重做日志文件),另一个用于闪回恢复区。 fdisk /dev/sdb
※若你已经划分过分区,则在划分新分区后,用下面的命令告诉核心:
# partprobe
结果如下:
引用
Device Boot Start End Blocks Id System /dev/sdb1 1 62 497983+ 83 Linux /dev/sdb2 63 185 987997+ 83 Linux /dev/sdb3 186 308 987997+ 83 Linux /dev/sdb4 309 522 1718955 83 Linux
9、根据实际需要设置SGA 实际上,红旗DC Server 5.0已经把需要的shmmax、shmmni、shmall、file-max等参数都已经设置好,若实际需要的话,请修改/etc/sysctl.conf文件。 必要的时候,可以通过下面的命令查看和修改:
设置 SHMMAX cat /proc/sys/kernel/shmmax echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf 设置 SHMMNI cat /proc/sys/kernel/shmmni 设置 SHMALL cat /proc/sys/kernel/shmall 设置信号 cat /proc/sys/kernel/sem echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf 设置文件句柄 cat /proc/sys/fs/file-max echo "fs.file-max=65536" >> /etc/sysctl.conf
10、配置 hangcheck-timer 内核模块(两台都要配置) 从 Oracle9i 第 2 版 (9.2.0.2) 开始(在 Oracle 10g 第 2 版中仍然存在),一个称为 hangcheck-timer 的 Linux 内核模块取代了监视后台程序,该模块更好地解决了可用性和可靠性问题。它将 hang-check 计时器加载到 Linux 内核中并检查系统是否挂起。它将设置一个计时器,并在特定的时间量之后检查该计时器。有一个用于检查挂起情况的可配置阈值,如果超过该阈值,计算机将重新启动。尽管 Oracle 集群件(集群管理器)操作不需要 hangcheck-timer 模块,但 Oracle 强烈建议使用它。当然,我们这里也安装上咯。 先看看红旗上是否有该模块:
引用
# find /lib/modules -name “hangcheck-timer.ko” /lib/modules/2.6.9-11.19AX/kernel/drivers/char/hangcheck-timer.ko /lib/modules/2.6.9-11.19AXsmp/kernel/drivers/char/hangcheck-timer.ko
好,有就看看hangcheck-timer 模块的两个关键参数: hangcheck-tick:此参数定义了系统运行状况检查的间隔时间。默认值为 60 秒;Oracle 建议将它设置为 30 秒。 hangcheck-margin:此参数定义了 hangcheck-timer 在重置 RAC 节点前所容许的最大挂起延迟。它定义了以秒为单位的误差幅度。默认值为 180 秒;Oracle 建议将它设置为 180 秒。 注意:这两个 hangcheck-timer 模块参数表示在该模块重置系统前 RAC 节点必须挂起的时长。当以下条件为真时将会重置节点:
引用
系统挂起时间 > (hangcheck_tick + hangcheck_margin)
先手动测试一下配置:
[root@ora01 ~]# echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modprobe.conf [root@ora01 ~]# modprobe hangcheck-timer [root@ora01 ~]# grep Hangcheck /var/log/messages |tail -2 Feb 27 17:06:21 ora01 kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).
上面证明测试没有问题,Oracle 会负责在需要时加载 hangcheck-timer 内核模块,所以我们不需要修改其他配置即可。当然,为了防止以外,你可以在/etc/rc.local里面增加/sbin/modprobe hangcheck-timer命令。
# echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local
11、配置RAC节点以允许远程访问(两台都要配置) 在 RAC 节点上运行 Oracle Universal Installer 时,它将使用 rsh(或 ssh)命令将 Oracle 软件复制到 RAC 集群中的所有其他节点上。运行 Oracle Installer (runInstaller) 的节点上的 oracle UNIX 帐户必须为 RAC 集群中的所有其他节点所信任。因此,应该能够在将要从中运行 Oracle Installer 的 Linux 服务器上,不使用口令对集群中的所有其他 Linux 服务器运行 r* 命令(如 rsh、rcp 和 rlogin)。rsh 后台程序使用位于用户(oracle 的)主目录中的 /etc/hosts.equiv 文件或 .rhosts 文件验证用户。 第一步,就是先把rsh、rlogin等服务打开:
# chkconfig rsh on # chkconfig rlogin on # service xinetd reload
第二步,是建立信任关系,在每个节点上都建立/etc/host.equiv文件:
# touch /etc/hosts.equiv # chmod 600 /etc/hosts.equiv # chown root.root /etc/hosts.equiv
修改hosts.equiv文件,添加各个节点:
引用
# cat /etc/hosts.equiv +ora01 oracle +ora02 oracle +int-ora01 oracle +int-ora02 oracle
第三步,去掉系统默认的r*命令:
# mv /usr/kerberos/bin/rsh /usr/kerberos/bin/rsh.original # mv /usr/kerberos/bin/rcp /usr/kerberos/bin/rcp.original # mv /usr/kerberos/bin/rlogin /usr/kerberos/bin/rlogin.original
然后用which命令查看更改是否成功:
# which rsh /usr/bin/rsh
第四步,进行手动测试,在两个节点上分别用oracle用户测试信任建立是否成功:
# su – oracle $ rsh ora01 ls -l / $ rsh ora02 ls -l / $ rsh int-ora01 ls -l / $ rsh int-ora02 ls -l /
如果都不需要验证密码,则信任关系已经建立。12、在启动安装程序前,再一次验证上述的配置是否已经设置成功!这很重要! 三、准备共享磁盘 这个留待明天吧!!
Oracle Database 10g R2/11g R2 Win/Linux 版本迅雷下载【中转】 Asianux 3.0 安装Oracle 11g R2界面失去响应的问题 本地终端无法登陆系统故障 红旗十周年用户大会——广州站(邀请函) 在Windows下使用红旗HA Cluster 配置工具
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/113773.html