备注: 以下是虚拟机环境下的配置,某些配置可能不同与实际的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/
本文详细介绍在Linux环境下为Oracle RAC集群增加新节点的具体步骤,包括网络配置、系统参数调整、软件安装、OCFS2配置及集群软件的扩展等。
2841

被折叠的 条评论
为什么被折叠?



