虚拟机环境下RAC加入节点

本文详细介绍在Linux环境下为Oracle RAC集群增加新节点的具体步骤,包括网络配置、系统参数调整、软件安装、OCFS2配置及集群软件的扩展等。


备注: 以下是虚拟机环境下的配置,某些配置可能不同与实际的RAC环境。


1. 环境 Linux AS5.3 64bit, Oracle10.2.0.4, 2个节点加入第三个RAC03 。

2. Linux已经安装完毕,准备配置网卡(public及private网卡)。 
-- public网卡配置 
[root@localhost network-scripts]# vi ifcfg-eth0  -- public网卡配置
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0C:29:BF:4A:77
ONBOOT=yes
IPADDR=10.13.67.83
GATEWAY=10.13.67.1
TYPE=Ethernet
USERCTL=no

[root@localhost network-scripts]# ifdown eth0
[root@localhost network-scripts]# ifup eth0 
[root@localhost network-scripts]# ifconfig

-- private网卡配置 
关闭新节点的Linux系统,关闭新节点RAC03的虚拟机,准备加入配置private 网卡,
点击上面的 “Edit virtual machine settings” ,开始配置网卡。
Add一块网卡,由于是用于心跳线,所以可以选用Host-only(当然其实也可以用Bridged).
完成后重新开启新节点RAC03的虚拟机。


[root@rac01 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:bf:4a:81
IPADDR=192.168.1.13 
TYPE=Ethernet
USERCTL=no

[root@localhost pam.d]# ifdown eth1
[root@localhost pam.d]# ifup  eth1

确认这两个网卡与其他两台RAC机的IP可以通信。

 

3. 这时可以使用ssh 登入系统,开始配置系统。

4. 修改hostname , /etc/sysconfig/network 中的hostname 修改为rac03 .

5. 修改核心参数等。

# vi  /etc/sysctl.conf

# Added by DBA for Oracle DB
kernel.shmall = 2097152
kernel.shmmax = 1230708000
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

# vi /etc/security/limits.conf

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


# vi  /etc/pam.d/login
加入
session    required     pam_limits.so

 


6. # setup disable 去掉一些不需要的服务或防火墙,SELinux等。
开启ftp, 关闭sendmail等; 还有时区,注意设置正确,

 

7. 重新启动一下新节点Server, 让Hostname生效。


8. 调整新节点RAC03的/etc/hosts. 加入1,2,3的

[root@rac03 etc]# cat hosts

127.0.0.1     localhost.localdomain    localhost
10.13.67.81     rac01
192.168.1.11    pri01
10.13.67.91     vip01

10.13.67.82     rac02
192.168.1.12    pri02
10.13.67.92     vip02

10.13.67.83     rac02
192.168.1.13    pri02
10.13.67.93     vip02

 

9. 建立oracle用户及相关组。

# groupadd  dba 
# groupadd  oper
# useradd  -g dba -G oper oracle
# passwd  oracle

 

10. 设置oracle用户的.bash_profile环境变量。


11. 创建一些目录用于安装oracle软件及一些软件放置的地方。

[root@rac03 /]# mkdir -p /u01
[root@rac03 /]# chown -R oracle.dba  /u01

rac03$mkdir -p packages
rac03$ls
packages
rac03$ls -alh
total 16K
drwxr-xr-x  3 oracle dba  4.0K Jan  3 16:00 .
drwxr-xr-x 25 root   root 4.0K Jan  3 15:59 ..
drwxr-xr-x  2 oracle dba  4.0K Jan  3 16:00 packages
rac03$

 

11. 开始准备需要的Linux Packages及OCFS2软件。这里假设
这些软件都已经传输到/u01/packages 下面。其实加入新节点RAC03,
新节点上不需要安装db software及clusterware的,一般都是从其他
存在的节点add ,然后远程拷贝到新节点,但是ocfs2软件及linux package
还是需要安装。

 

12. 在新节点查看linux packages,没有的进行安装。
[root@rac03 ~]# rpm -q glibc
glibc-2.5-34

[root@rac03 ~]# rpm -q glibc-common
glibc-common-2.5-34

[root@rac03 ~]# rpm -q glibc-devel
glibc-devel-2.5-34

[root@rac03 ~]# rpm -q libXp
package libXp is not installed

需要安装
[root@rac03 ~]# cd /u01/packages/

[root@rac03 packages]# rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm
warning: libXp-1.0.0-8.1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:libXp                  ########################################### [100%]

[root@rac03 packages]# rpm -q binutils
binutils-2.17.50.0.6-9.el5

[root@rac03 packages]# rpm -q compat-db
package compat-db is not installed
[root@rac03 packages]# rpm -ivh compat-db-4.2.52-5.1.i386.rpm
warning: compat-db-4.2.52-5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:compat-db              ########################################### [100%]

[root@rac03 packages]# rpm -q control-center
control-center-2.16.0-16.el5

[root@rac03 packages]# rpm -q  gcc
gcc-4.1.2-44.el5

[root@rac03 packages]# rpm -q  gcc-c++
gcc-c++-4.1.2-44.el5

[root@rac03 packages]# rpm -q  libstdc++
libstdc++-4.1.2-44.el5

[root@rac03 packages]# rpm -q  make
make-3.81-3.el5

[root@rac03 packages]# rpm -q  ksh
ksh-20080202-2.el5

[root@rac03 packages]# rpm -q  sysstat
package sysstat is not installed

[root@rac03 packages]# rpm -ivh sysstat-7.0.2-3.el5.i386.rpm
sysstat-7.0.2-3.el5.i386.rpm: not an rpm package (or package manifest):
拷贝过来的sysstat 包可能会有问题。
我们直接连接到mount的DVD-ROM安装这个包。

[root@rac03 Server]# pwd
/media/RHEL_5.3 i386 DVD/Server
[root@rac03 Server]#
[root@rac03 Server]# rpm -ivh sysstat-7.0.2-3.el5.i386.rpm
warning: sysstat-7.0.2-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:sysstat                ########################################### [100%]

[root@rac03 Server]# rpm -q gnome-screensaver
gnome-screensaver-2.16.1-8.el5

[root@rac03 Server]# rpm -q  libaio-devel
package libaio-devel is not installed

[root@rac03 Server]# rpm -ivh libaio-devel-0.3.106-3.2.i386.rpm 
warning: libaio-devel-0.3.106-3.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:libaio-devel           ########################################### [100%]

[root@rac03 Server]# rpm -q  libaio
libaio-0.3.106-3.2

 


13. 在节点RAC03安装OCFS2文件系统软件 。

[root@rac03 packages]# rpm -ivh ocfs2-tools-1.4.1-1.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:ocfs2-tools            ########################################### [100%]

[root@rac03 packages]# rpm -ivh ocfs2-2.6.18-128.el5-1.4.1-1.el5.i686.rpm
Preparing...                ########################################### [100%]
   1:ocfs2-2.6.18-128.el5   ########################################### [100%]

[root@rac03 packages]# rpm -ivh ocfs2console-1.4.1-1.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:ocfs2console           ########################################### [100%]

 


14.  开始修改其他两个已经存在的节点1,2 的 /etc/hosts .

10.13.67.81     rac01
192.168.1.11    pri01
10.13.67.91     vip01

10.13.67.82     rac02
192.168.1.12    pri02
10.13.67.92     vip02

10.13.67.83     rac03
192.168.1.13    pri03
10.13.67.93     vip03

 

15. 开始设置远程拷贝的ssh 。


在新节点3上配置ssh密钥认证:

# su - oracle
$ cd  /home/oracle
rac03$mkdir -p  .ssh
rac03$chmod 700  .ssh
rac03$ssh-keygen-t rsa 
rac03$ssh-keygen-t dsa  


16. 然后转到已经存在的节点比如RAC01上以oracle身份操作(执行过程中,
当访问远端节点时可能需要输入目标节点的密码):

rac01$ssh rac03 cat /home/oracle/.ssh/id_rsa.pub >>authorized_keys
The authenticity of host 'rac03 (10.13.67.83)' can't be established.
RSA key fingerprint is cb:5e:c3:42:8f:0c:6d:d3:50:9a:1a:be:d3:c8:43:7d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac03,10.13.67.83' (RSA) to the list of known hosts.
oracle@rac03's password:

rac01$ssh rac03 cat /home/oracle/.ssh/id_dsa.pub >>authorized_keys
oracle@rac03's password:


17. 然后在存在的节点1上传输配置好的认证密钥信息到节点2及新加入的节点3 。

rac01$scp /home/oracle/.ssh/authorized_keys  rac02:/home/oracle/.ssh/
authorized_keys                                                        100% 2988     2.9KB/s   00:00   
rac01$scp /home/oracle/.ssh/authorized_keys  rac03:/home/oracle/.ssh/ 
oracle@rac03's password:
authorized_keys                                                        100% 2988     2.9KB/s   00:00   
rac01$

18. 然后在3个节点上执行下面的命令,测试ssh, 并生成know_hosts文件,某些节点第一次执行上述某些命令时可
能会提示输入目标节点的密码,没有关系,输入就是。不过执行过一次之后,应该就不会再需要输入密码了

rac01$ssh rac01 date
Sat Jan  2 08:01:26 MST 2010
rac01$ssh rac02 date
Sat Jan  2 12:46:57 MST 2010
rac01$ssh rac03 date
Sun Jan  3 16:33:42 MST 2010
rac01$


rac02$ssh rac01 date
Sat Jan  2 08:02:13 MST 2010
rac02$ssh rac02 date
Sat Jan  2 12:49:11 MST 2010
rac02$ssh rac03 date
The authenticity of host 'rac03 (10.13.67.83)' can't be established.
RSA key fingerprint is cb:5e:c3:42:8f:0c:6d:d3:50:9a:1a:be:d3:c8:43:7d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac03,10.13.67.83' (RSA) to the list of known hosts.
Sun Jan  3 16:35:36 MST 2010

同样在rac03 上执行这些命令。 确认都不需要输入密码了就表示ssh 可以远程拷贝文件了。

 

19. 开始配置OCFS2 文件系统 。

要加入这个节点的ocfs configure 信息到 /etc/ocfs2/cluster.conf
我们VNC图形界面在已经存在的节点1上 # ocfs2console
在弹出的画面中选择cluster -> Node configuration
ADD 加入节点3的信息,然后apply . 这时候进入节点1的/etc/ocfs2/cluster.conf可以
看到配置信息改变了,变成3个节点。

然后再次 # ocfs2console , cluster -> Propagate Configuration 将配置文件cluster.conf
自动传输到节点2及新节点3 上,我们可以到节点2,3 上同样目录下查看。
下面在新节点3上操作:

[root@rac03 /]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Loading filesystem "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading filesystem "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Starting O2CB cluster ocfs2: OK


[root@rac03 /]# /etc/init.d/o2cb configure
Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot.  The current values will be shown in brackets ('[]').  Hitting
without typing an answer will keep that current value.  Ctrl-C
will abort.

Load O2CB driver on boot (y/n) [y]: y
Cluster stack backing O2CB [o2cb]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [31]: 61
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
Cluster ocfs2 already online
[root@rac03 /]# /etc/init.d/o2cb  stop
Stopping O2CB cluster ocfs2: OK
Unmounting ocfs2_dlmfs filesystem: OK
Unloading module "ocfs2_dlmfs": OK
Unmounting configfs filesystem: OK
Unloading module "configfs": OK


[root@rac03 /]# /etc/init.d/o2cb  stop
Stopping O2CB cluster ocfs2: OK
Unmounting ocfs2_dlmfs filesystem: OK
Unloading module "ocfs2_dlmfs": OK
Unmounting configfs filesystem: OK
Unloading module "configfs": OK


[root@rac03 /]# /etc/init.d/o2cb  start
Loading filesystem "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading filesystem "ocfs2_dlmfs": OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Starting O2CB cluster ocfs2: OK

 

20. 开始配置共享磁盘 (这里是虚拟机共享磁盘设置方式,和实体SAN不一样) 。

建立一个文件夹(这里节点1,2共享的磁盘即是节点3要挂载的,所以不用新建): 
E:\VitrualMachine\ShareDisks

E:\Program Files\VMware\VMware Workstation>vmware-vdiskmanager.exe -c -s 10Gb -a
 lsilogic  -t  2   "E:\VitrualMachine\ShareDisks"\ShareDisk1.vmdk

E:\VitrualMachine\ShareDisks 下会生成两个文件。


關閉新节点所在Linux系統及所在的虛擬機(如果有其他linux系统也最好一并关闭),关闭虚拟机程序 :

到虛擬機目錄比如 E:\VitrualMachine\RAC03, 直接编辑新节点的*.vmx文件, 加上语句(所有虛擬機都要做).

disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "E:\VitrualMachine\ShareDisks\ShareDisk1.vmdk"
scsi1:1.deviceType = "disk"


然後開啟虛擬機程序,查看每個節點虛擬機Devices部分。


在新节点上 [root@rac03 ~]# fdisk -l 可以看到共享磁盘,我们需要到新节点上/etc/fstab
中加入挂载脚本。

先在新节点上建立挂载的目录 :
[root@rac03 ~]# mkdir -p  /ocfs_data  /ocfs_index  /ocfs_ctrl_redo
[root@rac03 ~]# chown -R oracle.dba  /ocfs_data  /ocfs_index  /ocfs_ctrl_redo 

在新节点/etc/fstab中加入:
/dev/sdb1              /ocfs_data            ocfs2  _netdev,datavolume,nointr  0 0
/dev/sdb2              /ocfs_index           ocfs2  _netdev,datavolume,nointr  0 0
/dev/sdb3              /ocfs_ctrl_redo       ocfs2  _netdev,datavolume,nointr  0 0

 

21. 重新启动三个节点,查看三个节点共享磁盘的挂载情况。


22. 添加clusterware到新节点,在节点1上执行:

rac01$/u01/packages/clusterware/cluvfy/runcluvfy.sh  stage -pre crsinst -n rac03 -verbose

如果返回信息中提示“Could not find a suitable set of interfaces for VIPs.”,可以忽略该错误
信息,这是一个bug,Metalink中有详细说明,doc.id:338924.1。 
参考  http://space.itpub.net/7607759/viewspace-620131 

 

23. 在节点1上使用vnc图形界面,准备安装clusterware到新节点3上。

$ cd  /u01/product/crs/oui/bin 
$ ./addNode.sh   界面中加入节点3的一些信息,然后安装(其实主要是从节点1拷贝文件到远端新
节点),然后按顺序执行以下脚本(root):


节点3上执行orainstRoot.sh;
节点1上执行rootaddnode.sh;
节点3上执行root.sh;  --  注意:执行这个脚本之前需要更改vip中的代码 (对应一个bug:3937317)


修改VIP文件: # vi /u01/product/crs/bin/vipca  在fi后面加入  unset LD_ASSUME_KERNEL
注意scrctl也需要更改一下:   # vi /u01/product/crs/bin/srvctl  在export后面加入
 unset LD_ASSUME_KERNEL , 然后应该是VIPCA的配置画面(如果没有出现,需要手工在新节点执行
vipca:  到/u01/product/crs/bin下#./vipca), 完成后回去clusterware安装界面点击OK . 

24. 接下来需要将新节点的ONS(Oracle Notification Services)配置信息写入OCR(Oracle Cluster Register),
在节点1执行脚本如下:

rac01$/u01/product/crs/bin/racgons add_config  rac03:6200

25. 至此,新节点的CLUSTERWARE配置完成,要检查安装的结果,可以在新节点中调用cluvfy命令进行验证

rac03$/u01/product/crs/bin/cluvfy stage -post crsinst -n rac03 -verbose

参考:   http://space.itpub.net/7607759/viewspace-620131

如果报错
ERROR:  CRS is not installed on any of the nodes.
Verification cannot proceed.
需要在新节点上改权限:
# chmod 644 /etc/oraInst.loc
# ls -l /etc/oraInst.loc

26.  复制oracle软件到新节点,我们选择在节点1上操作(VNC xwindows界面):

[oracle@rac01]$ cd   /u01/product/oracle/oui/bin 
$ ./addNode.sh    界面中选择要加入的节点3 ,点击安装后ORACLE 自动开始复制文
件到新节点中, 复制操作完成后,提示在新节点即mxrac04 执行脚本,注意要以root身份进行,
上述脚本成功执行后,返回窗口界面点击OK,提示安装成功,点击exit退出界面即可。

27. 配置监听服务到新节点, 在新节点4上 以ORACLE身份登陆到linux系统,执行$ORACLE_HOME/bin
目录中的netca命令即可, 配置前注意备份原节点1,2的listener.ora及tnsnames.ora 文件。

如果提示监听名称存在,不能建立,可以先删除所有节点的监听,然后重新建立一个。


28.  最后还要从节点1  tnsnames.ora中拷贝local_listener.ora 到新节点3中。 设置为:

LOCAL_ORCL =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.67.83)(PORT = 1521))
  )
配置好所有节点的listener.ora , tnsnames.ora 文件


29.  添加实例到新节点3 ,我们选择在节点1上执行dbca (VNC XWINDOWS界面),千万注意
其中redo log thread的问题。

选择"Instance Management”, 选择"Add an instance“, 然后选择一个RAC数据库(如果当
前存在多个RAC环境的话),再一个就是指定一个具有SYSDBA权限的用户及密码; 弹出界面显示
当前RAC配置中拥有的实例,直接点击下一步即可; 为新节点上的实例命名(orcl3)

接下来,需要定义一些与实例相关的文件,比较UNDO、REDOLOG等,想省事的话此处保持默认即可,
因为这些信息如果发现不合适,后期也都是可调的。确认无误后,点击FINISH按钮 ; 在此期间,
ORACLE开始自动在新节点上创建实例


30. 截止到目前,新节点已经是这个RAC配置中的一员了,使用crs_stat -t 命令查看 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-624301/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-624301/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值