第9课_1_cluster安装
1. 配置网络
vi ifcfg-eth0
ifup ifcfg-eth0
[root@localhost init.d]# ./network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Setting network parameters: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
[root@localhost init.d]# pwd
/etc/init.d
[root@localhost init.d]#
一 RAC安装注意事项
0.oracle用户下配置好.bash_profile环境变量,全程图形化安装
第一台机器环境变量
vi /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export CRS_HOME=/u01/crs
export ORA_CRS_HOME=/u01/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_SID=racjch1
. .bash_profile
第二台机器环境变量
vi /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export CRS_HOME=/u01/crs
export ORA_CRS_HOME=/u01/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_SID=racjch2
第一台机器网络环境
hostname:rac1
192.168.153.101 rac1 eth0 共有网卡
192.168.111.101 rac1-priv eth1 私有网卡
192.168.153.201 rac1-vip eth0 虚拟ip 作用:第一时间诊断网络故障的不是对外提供服务的.复用eth0
step:
先处理网络配置文件:/etc/host.conf
order bind,hosts
第二台机器网络环境
hostname:rac2
192.168.153.102 rac2 eth0 共有网卡
192.168.111.102 rac2-priv eth1 私有网卡
192.168.153.202 rac2-vip eth0 虚拟ip 作用:第一时间诊断网络故障的不是对外提供服务的
1.建立信任关系
(1)两个节点分别执行
ssh-keygen -t rsa 指定秘钥的加密类型 rsa或者dsa。
Generating public/private rsa key pair. 生成一对密钥【公钥/私钥】
Enter file in which to save the key (/home/oracle/.ssh/id_rsa): 输入保存密钥的路径(默认/home/oracle/.ssh/id_rsa)
Created directory '/home/oracle/.ssh'. 创建默认路径
Enter passphrase (empty for no passphrase): 输入密码(默认没有密码)
Enter same passphrase again: 再次输入密码
Your identification has been saved in /home/oracle/.ssh/id_rsa. 你的私钥被保存在/home/oracle/.ssh/id_rsa
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. 你的公钥被保存在/home/oracle/.ssh/id_rsa.pub
The key fingerprint is: 密钥指纹
00:92:9c:13:f0:94:63:ab:b2:6a:b2:5b:3a:14:e2:f3 oracle@rac1
/oracle/.ssh 进入目录
touch authorized_keys 创建一个空授权文件
cat id_rsa.pub > authorized_keys 把刚刚生成的公钥写入授权文件
vi authorized_keys 检查是否写入
ssh rac1 测试互信
exit
scp authorized_keys rac2:~/.ssh/ 把授权文件传到rac2:~/.ssh/目录下
ssh rac2 从rac1连rac2,成功,因为rac2中有rac1公钥
永远都是私钥找公钥,如果私钥丢失了,就不能和公钥匹配了(只有原配才能匹配成功否则只能输入密码),私钥放在服务端,公钥放在客户端
在第二个节点上
ssh-keygen -t rsa 指定密钥的加密类型 RSA
Generating public/private rsa key pair. 生成一对密钥【公钥/私钥】
Enter file in which to save the key (/home/oracle/.ssh/id_rsa): 输入保存密钥的路径(默认/home/oracle/.ssh/id_ssa)Enter passphrase (empty for no passphrase): 输入密码(默认没有密码)
Enter same passphrase again: 再次输入密码
Your identification has been saved in /home/oracle/.ssh/id_rsa. 你的私钥被保存在/home/oracle/.ssh/id_rsa
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. 你的公钥被保存在/home/oracle/.ssh/id_rsa.pub
The key fingerprint is: 密钥指纹
eb:e8:48:43:8b:33:9b:d6:a2:d4:2a:6c:25:bf:0f:0c oracle@rac2
cd /home/oracle/.ssh/
cat id_rsa.pub >> authorized_keys 把第二个节点的rsa公钥追加到授权文件
vim authorized_keys 检查是否写入
scp authorized_keys rac1:~/.ssh/authorized_keys 把完整的授权文件复制给第一个节点
(2)测试两个节点的连通性
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
oracle
配置硬盘:
二 安装Clusterware集群软件,集群软件提供的是连接实例与存储的纽带
注意事项:保证两个节点时间一致,可做NTP同步服务
1.准备工作
上传10201_clusterware_linux32.zip集群软件到虚拟机
unzip 10201_clusterware_linux32.zip
chown -R oracle:oinstall clusterware 设置属主与属组
chmod -R 777 clusterware 授予绿色权限
clusterware 集群软件目录
database 数据库软件目录
2.使用oracle用户身份登录进行安装
cd clusterware
3.启动图形化安装功能
xhost +
access control disabled, clients can connect from any host 访问控制已经禁用,客户端可以连接任何主机
4.在安装之前oracle用户可以检查RAC安装先决条件,一些软件包缺失可以忽略掉
cd clusterware/cluvfy
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
把出错的东西全部修改正确
Suitable interfaces for the private interconnect on subnet "192.168.153.0":
rac2 eth0:192.168.153.102
rac1 eth0:192.168.153.101
Suitable interfaces for the private interconnect on subnet "192.168.111.0":
rac2 eth1:192.168.111.102
rac1 eth1:192.168.111.101
ERROR:
Could not find a suitable set of interfaces for VIPs.
Result: Node connectivity check failed.
http://hi.baidu.com/george_gly/item/62dccad67d8bea32e2108f69
这是一个bug,Metalink中有详细说明,doc.id:338924.1,如说明中所述,可以忽略该错误,没什么问题
5.oracle用户进入到clusterware目录,使用忽略系统环境检查的方式运行runInstaller,因为默认redhat5不在clusterware的安装列表中
官方发布的支持版本:redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1,asianux-2
./runInstaller -ignoreSysPreReqs
6.稍微等几秒钟,便可看见弹出的clusterware安装界面,点击“Next”
安装oracle clusterware 10.2.0.1.0开始,进入欢迎界面点击“Next”
7.将oraInventory目录安装到/u01/app/oraInventory下,点击“Next”
指定操作系统组:oinstall组
8.定义clusterware的安装路径,点击“Next”
Name:OraCrs10g_home
Path:/u01/crs
9.先决条件prerequisite检查
安装前期的环境检查,这里需要把握的就是凡是系统检查没有报告failed那么就不用管
warning或者not executed都没有关系,只要我们在对应的小方框里面打勾就可以了,一共打3个勾,如图所示
10.指定集群节点rac1 rac2 Specify Cluster Configuration 这个地方系统默认只显示一个节点,另一个节点需要手动添加
点击“Add…”-> Public Node Name:rac2 -> Private Node Name:rac2-priv -> virtual Host Name: rac2-vip
11.指定网卡接口用途,系统把所有网卡都扫描进来
点击“Edit”修改
eth0设置为public网卡
eth1设置为private网卡
eth2设置为Do not use不使用
12.指定“OCR 集群注册表”所对应裸设备路径,点击“Next”
OCR:oracle cluster register集群注册表文件,这个文件中记录了oracle RAC的所有可用资源例如 实例 数据库 监听 节点 ASM 磁盘组 service服务等资源,只有把新资源注册到OCR才能被RAC调配使用。例如 新加入一个节点到RAC架构,就需要把新节点注册到OCR,由于OCR文件非常重要因此需要我们拥有冗余方案。
选择“External Redundancy 外部冗余”【你将用磁盘管理系统提供OCR冗余】
Specify OCR Location:/dev/raw/raw1
13.指定“Voting Disk 表决磁盘”所对应裸设备路径,点击“Next”
Voting Disk:表决磁盘是用于防止脑裂现象的一种判断机制,一般为单数个磁盘,当某个节点发生通信故障或不能继续扮演RAC角色时需要表决磁盘来判断是否剔除它。
选择“External Redundancy 外部冗余”
Specify Voting Disk Location:/dev/raw/raw2
14.当上述属性设置完之后,下面开始正式的安装过程,点击“Install”,主节点安装完成后,系统会自动往rac2对应目录下推送clusterware的所有文件
15.安装完成之后,需要分别在两个节点以root身份运行两个脚本
第一个脚本在所有节点上都执行 /u01/app/oraInventory/orainstRoot.sh
第二个脚本在所有节点上都执行 /u01/crs/root.sh
请按顺序执行
su - root
/u01/app/oraInventory/orainstRoot.sh 在rac1 rac2都执行
下面在rac1上执行/u01/crs/root.sh
Run root.sh on remaining nodes to start CRS daemons.
下面我们在rac2上执行root.sh脚本之前需要先编辑两个文件,使用root用户修改
第一个文件/u01/crs/bin/vipca
vi /u01/crs/bin/vipca
搜索/LD_ASSUME_KERNEL
119 if [ "$arch" = "i686" -o "$arch" = "ia64" ]
120 then
121 LD_ASSUME_KERNEL=2.4.19
122 export LD_ASSUME_KERNEL
123 fi
124 unset LD_ASSUME_KERNEL 添加一行:清除环境变量
第二个文件/u01/crs/bin/srvctl
vi /u01/crs/bin/srvctl
166 LD_ASSUME_KERNEL=2.4.19
167 export LD_ASSUME_KERNEL
168 unset LD_ASSUME_KERNEL 添加一行:清除环境变量
16.然后在rac2节点下用root身份执行/u01/crs/root.sh
上面这个错误是我重装的时候,没有修改那两个文件
1)这里会报错
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps 运行vipca配置节点
Error 0(Native: listNetInterfaces:[3]) 本地网卡错误
[Error 0(Native: listNetInterfaces:[3])] 本地网卡错误
cd /u01/crs/bin
./oifcfg 这是oracle网卡配置工具,我们可以使用这个工具来检查网卡配置是否正确
oifcfg iflist 检查网卡配置
./oifcfg setif -global eth0/192.168.153.0:public 指定全局公有网卡
./oifcfg setif -global eth1/192.168.111.0:cluster_interconnect 指定全局私有网卡
oifcfg getif 获取配置结果,当rac2配置好后rac1自动生成vipca文件,oifcfg getif
2)使用root用户配置虚拟ip
此步骤在rac1和rac2节点上都可操作
自动弹出图形化界面我们可以使用vipca来创建和配置VIP GSD ONS 资源
/u01/crs/bin/vipca
打开欢迎界面,点击“Next”
3)系统自动找到public的eth0,点击“Next”,【虚拟ip是基于共有网卡eth0】
4)补填各节点对应的vip名称和ip地址 mask地址,点击“Next”
Node name IP Alias Name IP address Subnet Mask
rac1 rac1-vip 192.168.1.201 255.255.255.0
rac2 rac2-vip 192.168.1.201 255.255.255.0
5)检查概述信息,点击“Finish”开始安装,重点检查返填出来的IP地址是否正确千万不能错
6)安装完之后就可以点击“ok”查看结果,点击“Exit”退出vipca
修改/etc/hosts
加上localhosts:
检查vip服务 gsd ons vip 包含三个进程
crs_stat -t 全是ONLINE才算正常,在所有节点上都相同
target是希望的最终状态,state是当前状态
介绍几个集群服务命令
我们要使用集群服务命令的前提是启动其守护进程
启动CRS守护进程crsctl start crs【root用户】
停止CRS守护进程crsctl stop crs【root用户】,停掉守护进程后就无法查看状态了
检查CRS资源状态crsctl check crs
CSS appears healthy 负责节点间通信的
CRS appears healthy 管理crs资源,如listener,vip,ons,gsn等
EVM appears healthy 事件监控进程
crs_stat 查看服务全名
crs_stop -f ora.rac2.vip 停掉某个服务 -f 强制停掉
crs_stop -all 停掉全部集群服务
crs_start -f ora.rac2.vip 启动某个服务 -f 强制启动
crs_start -all 启动全部集群服务
crs_stat -t 检查状态简写方式
ocrcheck 检查oracle集群注册表
crsctl query css votedisk 检查表决磁盘信息
启动vip服务之后就能看见vip了【vip要与共有网卡在一个网段】
ifconfig