Redhat 5.4 Oracle 10g RAC 添加节点

本文详细介绍如何将一个新节点加入已有的Oracle RAC集群中。包括安装前的准备工作、配置Clusterware、安装Oracle软件、创建监听、配置ASM实例及验证新节点等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle RAC添加节点,操作也简单。官网的操作说明如下:

http://www.oracle.com/technology/global/cn/pub/articles/vallath-nodes.html

假设已经有了2个节点的RAC,节点分别为rac1和rac2,其平台是raw + ASM + Oracle 10g +redhat 5.4 ,我们现在在这个集群上添加一个节点rac3.步骤和2个节点的RAC安装差不多。

2个节点的RAC安装,参考:

Redhat 5.4 + ASM + RAW+ Oracle 10g RAC安装文档

http://blog.youkuaiyun.com/xujinyang/article/details/6837265

Rac1 , rac2和rac3节点的信息规划如下:

服务器主机名

rac1

rac2

rac3

公共IP地址(eth0)

10.85.10.1

10.85.10.2

10.85.10.5

虚拟IP地址(eth0)

10.85.10.3

10.85.10.4

10.85.10.6

私有IP地址(eth1)

192.168.1.200

192.168.1.201

192.168.1.202

ORACLE RAC SID

rac1

rac2

Rac3

集群实例名称

Rac

OCR(oracle集群注册表)

/dev/raw/raw1/dev/sdb1200M

/dev/raw/raw2/dev/sdb2200M

表决磁盘(voting disk)

/dev/raw/raw3/dev/sdc1200M

/dev/raw/raw4/dev/sdc2200M

/dev/raw/raw5/dev/sdc3200M

ASM

/dev/sdd110GVOL1for Oracle Data

/dev/sdd15GVOL2for flash_recovery_area

数据库备份

/dev/sde110G(mkfs -t ext3 /dev/sde1)

一.安装前准备及OS安装配置

同2个节点的类似,装好虚拟操作系统,配置好硬盘,网关,IP地址,建立用户等效性,建立用户并创建相关目录,修改linux参数等。

1.1安装好虚拟机,并在配置文件里添加如下信息:

ethernet1.present = "TRUE"

ethernet1.allowGuestConnectionControl = "FALSE"

ethernet1.features = "1"

ethernet1.wakeOnPcktRcv = "FALSE"

ethernet1.networkName = "Bridged"

ethernet1.addressType = "generated"

scsi1.present = "TRUE"

scsi1.virtualDev = "lsilogic"

scsi1.sharedBus = "virtual"

scsi1:1.present = "TRUE"

scsi1:1.mode = "independent-persistent"

scsi1:1.filename = "F:/VM/racshare/ocr.vmdk"

scsi1:1.deviceType = "disk"

scsi1:2.present = "TRUE"

scsi1:2.mode = "independent-persistent"

scsi1:2.filename = "F:/VM/racshare/votingdisk.vmdk"

scsi1:2.deviceType = "disk"

scsi1:3.present = "TRUE"

scsi1:3.mode = "independent-persistent"

scsi1:3.filename = "F:/VM/racshare/asm4data.vmdk"

scsi1:3.deviceType = "disk"

scsi1:4.present = "TRUE"

scsi1:4.mode = "independent-persistent"

scsi1:4.filename = "F:/VM/racshare/backup.vmdk"

scsi1:4.deviceType = "disk"

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

1.2配置raw3的2个网卡的固定IP,hostname, gateway,也可以在安装系统时指定。

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

/etc/sysconfig/network

[root@rac3 network-scripts]# more /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=10.85.10.5

NETMASK=255.255.255.0

NETWORK=10.85.10.253

ONBOOT=yes

TYPE=Ethernet

[root@rac3 network-scripts]# more /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=static

IPADDR=192.168.1.202

NETMASK=255.255.255.0

NETWORK=192.168.1.1

ONBOOT=yes

TYPE=Ethernet

--修改主机名

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=rac3

注:需要重启才能生效

修改完之后重启生效:

/etc/rc.d/init.d/network restart重新启动

1.3同步时间:

在rac3上添加任务,每一分钟和rac1进行一次时间同步。

[root@rac3~]# crontab -l

*/1 * * * * rdate -s 10.85.10.1

rac对节点间时间较敏感,如果不同步在安装clusterware时后会报错,而且在安装vipca的时候也会报错。具体时间同步参考我的blog:

Linux时间同步配置

http://blog.youkuaiyun.com/xujinyang/article/details/6924299

linux下修改日期和时间

http://blog.youkuaiyun.com/xujinyang/article/details/6925658

1.4.修改解析文件:/etc/hosts

每个节点都要设置成如下模式:

[root@rac3 network-scripts]# more /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1localhost

10.85.10.1 rac1

10.85.10.2 rac2

10.85.10.5 rac3

192.168.1.200 rac1-priv

192.168.1.201 rac2-priv

192.168.1.202 rac3-priv

10.85.10.3 rac1-vip

10.85.10.4 rac2-vip

10.85.10.6 rac3-vip

1.5建立用户及用户等效性

--建立用户和相关组

[root@rac3 ~]# groupadd oinstall

[root@rac3 ~]# groupadd dba

[root@rac3 ~]# useradd -g oinstall -G dba oracle

[root@rac3 ~]# passwd oracle

--建立用户等效性

[root@rac3 /]# su - oracle

[oracle@rac3 ~]$ mkdir ~/.ssh

[oracle@rac3 ~]$ chmod 700 ~/.ssh

[oracle@rac3 ~]$ ssh-keygen -t rsa

[oracle@rac3 ~]$ ssh-keygen -t dsa

--将rac1上将authorized_keys文件copy到raw3

[oracle@rac3 ~]$ scp rac1:~/.ssh/authorized_keys ~/.ssh/authorized_keys

--将rac3的id_rsa.pub和id_dsa.pub写入authorized_keys

[oracle@rac3 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[oracle@rac3 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

--将rac3上最新的authorized_keys文件copy到rac1和rac2上

[oracle@rac3 ~]$ scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys

[oracle@rac3 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

--在三个节点上用Oracle用户分别ssh所有节点

[oracle@rac3 ~]$ ssh rac1 date

[oracle@rac3 ~]$ ssh rac1-priv date

[oracle@rac3 ~]$ ssh rac2 date

[oracle@rac3 ~]$ ssh rac2-priv date

[oracle@rac3 ~]$ ssh rac3 date

[oracle@rac3 ~]$ ssh rac3-priv date

1.6创建目录结构

[root@rac3 ~]#mkdir -p /u01/app/oracle

[root@rac3 ~]# chown -R oracle:oinstall /u01

[root@rac3 ~]# chmod -R 777 /u01

1.7修改linux系统参数

[root@rac3 ~]# more /etc/sysctl.conf

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.core.rmem_default=262144

net.core.wmem_default=262144

net.core.rmem_max=262144

net.core.wmem_max=262144

kernel.shmall = 78643200

kernel.shmmax = 314572800

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

# sysctl -p立刻生效

vi /etc/sysconfig/limits.conf

--使用HugePage内存技术,添加下面2行

Oracle soft memlock 5242880

Oracle hard memlock 524280

--进程句柄数量

oracle soft nproc 2047

oracle hard nproc 16384

--文件句柄

oracle soft nofile 65536

oracle hard nofile 65536

将下面一行添加到/etc/pam.d/login文件中:

session required /lib/security/pam_limits.so

1.8配置hangcheck-timer模块

--查看模块位置

[root@rac3 ~]# find /lib/modules -name "hangcheck-timer.ko"

/lib/modules/2.6.9-78.EL/kernel/drivers/char/hangcheck-timer.ko

/lib/modules/2.6.9-78.ELsmp/kernel/drivers/char/hangcheck-timer.ko

--配置系统启动时自动加载模块,在/etc/rc.d/rc.local中添加如下内容

[root@rac3 ~]# modprobe hangcheck-timer

[root@rac3 ~]# more /etc/rc.d/rc.local

touch /var/lock/subsys/local

modprobe hangcheck-timer

--配置hangcheck-timer参数,在/etc/modprobe.conf中添加如下内容:

[root@rac3 ~]# more /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

--确认模块加载成功:

[root@rac3 ~]# grep Hangcheck /var/log/messages | tail -2

Sep9 02:09:08 rac3 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).

Sep9 02:09:08 rac3 kernel: Hangcheck: Using monotonic_clock().

1.9配置raw设备

因为是添加节点,所以这些设备都是已经分配好的,我们只需要把他们添加到参数中即可。操作系统是redhat 5.4,在raw的配置和redhat 4有点区别。

1)修改/etc/udev/rules.d/60-raw.rules文件

添加如下内容:

ACTION=="add", KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="sdc2",RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="sdc3",RUN+="/bin/raw /dev/raw/raw5 %N"

ACTION=="add",KERNEL=="raw[1-5]", OWNER="oracle", GROUP="oinstall", MODE="660"

2)重启服务:

[root@rac3 ~]# start_udev

Starting udev:[OK]

3)查看raw设备:

[root@rac3 ~]# ls -lrt /dev/raw

total 0

crw-rw---- 1 oracle oinstall 162, 2 Sep9 02:15 raw2

crw-rw---- 1 oracle oinstall 162, 1 Sep9 02:15 raw1

crw-rw---- 1 oracle oinstall 162, 5 Sep9 02:15 raw5

crw-rw---- 1 oracle oinstall 162, 4 Sep9 02:15 raw4

crw-rw---- 1 oracle oinstall 162, 3 Sep9 02:15 raw3

1.10安装ASM包,配置ASM,并搜索ASM

--在rac3上安装ASMLibs, tools, support三个rpm文件

# rpm -ivh *.rpm --nodeps --force

--运行/etc/init.d/oracleasm configure

回答oracle , dba, y, y就可以了

-- linux挂在windows共享的盘

1.启动nfs服务:service nfs start

2. mount -o username=share,password=share //10.85.10.80/RAC /mnt

--查看ASM磁盘

[root@rac3 asm]# /etc/init.d/oracleasm listdisks

VOL1

VOL2

1.11用oracle用户,修改ORACLE参数文件/home/oracle/.bash_profile,添加以下内容:

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_SID=rac3

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

二.安装Clusterware

Oracle集群件已经安装在集群上;这里的任务是将新节点添加到集群配置中。要执行该任务,需要执行Oracle提供的名为addnode的实用程序,该工具位于Clusterware的主oui/bin目录中。Oracle集群件有两个文件(Oracle集群信息库(OCR)和Oracle集群同步服务(CSS)表决磁盘),它们包含有关该集群以及由Oracle集群件管理的应用程序的信息。这些文件需要使用关于新节点的信息进行更新。集群件安装过程的第一步是验证新节点是否准备好进行安装。

2.1验证硬件和操作系统配置已经完成

[oracle@rac1 bin]$ pwd

/u01/app/oracle/product/crs/bin

[oracle@rac1 bin]$ ./cluvfy stage -post hwos -n rac1,rac3

2.2在安装集群之前检查节点列表中的所有节点

[oracle@rac1 bin]$ ./cluvfy stage -pre crsinst -n rac1,rac3

这里会检查相关的包,如果有缺少的,到这个网站搜索,下载后打上即可:

http://rpm.pbone.net/

2.3用Xmanager连接到rac1,用Oracle用户运行$ORA_CRS_HOME/oui/bin/addNode.sh命令。运行命令之前先指定export DISPLAY=10.85.10.80:0.0

若在此处报错:

Exception java.lang.NullPointerException occurred..
java.lang.NullPointerException
at oracle.sysman.oii.oiic.OiicAddNodeSession.initialize(OiicAddNodeSession.java:564)
at oracle.sysman.oii.oiic.OiicAddNodeSession.<init>(OiicAddNodeSession.java:135)
at oracle.sysman.oii.oiic.OiicSessionWrapper.createNewSession(OiicSessionWrapper.java:860)
at oracle.sysman.oii.oiic.OiicSessionWrapper.<init>(OiicSessionWrapper.java:186)
at oracle.sysman.oii.oiic.OiicInstaller.init(OiicInstaller.java:481)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:928)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)

这个错误是由于/etc/oraInst.loc的权限问题造成,切换root用户,给777权限即可:

[root@rac2 oraInventory]# ls -al /etc/oraInst.loc

-rwxr-x---1 root root 63 Aug5 19:34 /etc/oraInst.loc

[root@rac2 oraInventory]# chmod 777 /etc/oraInst.loc

[root@rac2 oraInventory]# ls -alrt /etc/oraInst.loc

-rwxrwxrwx1 root root 63 Aug5 19:34 /etc/oraInst.loc

2.4在界面上下一步,会提示输入新节点的名称。填写完之后进入安装。

2.5当需要的所有集群件组件从orc1复制到orc3之后,OUI将提示用root用户在对应的节点上执行三个文件

/u01/app/oracle/oraInventory/orainstRoot.sh-- >rac3

/u01/app/oracle/product/crs/install/rootaddnode.shàrac1

/u01/app/oracle/product/crs/root.shàrac3


在执行root.sh脚本的时候,最后会调用vipca命令。提示如下:

Running vipca(silent) for configuring nodeapps

IP address "rac2-vip" has already been used. Enter an unused IP address.

产生错误“rac2-vip’ has already been used”,因为VIP已经在所有节点(而非rac3)上进行了配置。我们手动执行VIPCA(虚拟IP配置助手)即可。用Xmanager工具连到新节点,在root用户下执行vipca。

[root@rac3 ~]# cd /u01/app/oracle/product/crs/bin/

[root@rac3 bin]# ./vipca

完成Oracle集群件安装后,将在其各自目录中创建下列文件。

集群件文件:

[root@rac3 /]# ls -ltr /etc/init.d/init.*

-r-xr-xr-x 1 root root3190 Sep9 03:52 /etc/init.d/init.evmd

-r-xr-xr-x 1 root root 35394 Sep9 03:52 /etc/init.d/init.cssd

-r-xr-xr-x 1 root root4714 Sep9 03:52 /etc/init.d/init.crsd

-r-xr-xr-x 1 root root1951 Sep9 03:52 /etc/init.d/init.crs

使用以下条目更新了操作系统提供的inittab文件。

[root@rac3 /]# tail -5 /etc/inittab

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm -nodaemon

h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null

h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null

h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

使用olsnodes命令验证集群件是否注册了所有节点

[oracle@rac3 bin]$ olsnodes

rac2

rac1

rac3

使用crs_stat命令验证是否启动了集群服务。

[oracle@rac3 bin]$ crs_stat -t

NameTypeTargetStateHost

------------------------------------------------------------

ora.rac.dbapplicationONLINEONLINErac1

ora....oltp.cs applicationONLINEONLINErac2

ora....ac1.srv applicationONLINEONLINErac2

ora....ac2.srv applicationONLINEONLINErac1

ora....c1.inst applicationONLINEONLINErac2

ora....c2.inst applicationONLINEONLINErac1

ora....SM2.asm applicationONLINEONLINErac1

ora....C1.lsnr applicationONLINEONLINErac1

ora.rac1.gsdapplicationONLINEONLINErac1

ora.rac1.onsapplicationONLINEONLINErac1

ora.rac1.vipapplicationONLINEONLINErac1

ora....SM1.asm applicationONLINEONLINErac2

ora....C2.lsnr applicationONLINEONLINErac2

ora.rac2.gsdapplicationONLINEONLINErac2

ora.rac2.onsapplicationONLINEONLINErac2

ora.rac2.vipapplicationONLINEONLINErac2

ora.rac3.gsdapplicationONLINEONLINErac3

ora.rac3.onsapplicationONLINEONLINErac3

ora.rac3.vipapplicationONLINEONLINErac3

三.安装Oracle软件

Oracle已经提供了一个新的称为addNode.sh的可执行文件,它位于$ORACLE_HOME/oui/bin目录。用Oracle用户执行该脚本。

我们用x manager连接上rac1,在运行这个脚本。运行脚本之前不要忘记指定DISPLAY变量

[oracle@rac1 bin]$ export DISPLAY=10.85.10.80:0.0

在安装窗口上选中要安装的节点,然后安装即可。

安装最后会提示执行如下脚本:

/u01/app/oracle/product/10.2.0/db_1/root.shàrac3

执行后,确定,安装结束。

四.netca创建监听

注:创建数据库过程应该遵循这个顺序:先配置监听,再配置ASM实例,最后创建数据库实例,这样可以减少出错的概率。

1. oracle rac3上运行netca

2选择Listener configuration,只选择rac3这个节点,创建监听

3.添加一个LISTEN, 1521 port ,然后结束配置,监听配置成功后,添加结点上的Listener Application Resource注册到CRS中,这样CRS就可以监控Listener的运行状态。我们可以通过crs_stat -t -v查看Listener状态。

五.创建ASM实例

1.用Xmanager连上rac1或者rac2上,运行DBCA命令

2.选择configure Automatic Storage Management,

3.选择rac1和rac3结点,这里rac1是必选的,作为父节点,然后向rac3进行extend。在rac3上安装asm实例。

4.输入之前asm实例的密码。

5.创建完成。

ASM的相关信息参考blog:

Oracle ASM详解

http://blog.youkuaiyun.com/xujinyang/article/details/6837288

六.用DBCA添加新实例

在rac1上,用Oracle用户连接Xmanager。进入$ORACLE_HOME/bin目录,运行DBCA。记得指定DISPLAY变量。

Oracle Real Application Cluster databaseàInstance ManagementàAdd an Instance –>下一步,选择实例名。

然后就是下一步,TAF Policy选择Basic。这个服务在RAC的Failover中会用到,如果在这里没有配置,也可以通过dbca命令,选择Services Management来进行配置。

Oracle RAC Failover详解

http://blog.youkuaiyun.com/xujinyang/article/details/6829647

然后开始创建数据库。

七.验证添加的节点

[root@rac2 bin]# ./crs_stat -t

NameTypeTargetStateHost

------------------------------------------------------------

ora.rac.dbapplicationONLINEONLINErac1

ora....oltp.cs applicationONLINEONLINErac1

ora....ac1.srv applicationONLINEONLINErac2

ora....ac2.srv applicationONLINEONLINErac1

ora....ac3.srv applicationONLINEONLINErac3

ora....c1.inst applicationONLINEONLINErac2

ora....c2.inst applicationONLINEONLINErac1

ora....c3.inst applicationONLINEONLINErac3

ora....SM2.asm applicationONLINEONLINErac1

ora....C1.lsnr applicationONLINEONLINErac1

ora.rac1.gsdapplicationONLINEONLINErac1

ora.rac1.onsapplicationONLINEONLINErac1

ora.rac1.vipapplicationONLINEONLINErac1

ora....SM1.asm applicationONLINEONLINErac2

ora....C2.lsnr applicationONLINEONLINErac2

ora.rac2.gsdapplicationONLINEONLINErac2

ora.rac2.onsapplicationONLINEONLINErac2

ora.rac2.vipapplicationONLINEONLINErac2

ora....SM3.asm applicationONLINEONLINErac3

ora....C3.lsnr applicationONLINEONLINErac3

ora.rac3.gsdapplicationONLINEONLINErac3

ora.rac3.onsapplicationONLINEONLINErac3

ora.rac3.vipapplicationONLINEONLINErac3

------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值