RAC节点操作系统:Linux 6.4 x8664
Cluster software:Oracle Grid Infrastructure 11gr2(11.2.0.4)
Oracle Database software:Oracle11gr2(11.2.0.4)
共享存储:ASM
成都创新互联公司是一家专业提供如东企业网站建设,专注与成都网站建设、成都做网站、HTML5、小程序制作等业务。10年已为如东众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
节点名称 Public IP Private IP Virtual IP SCAN 名称 SCAN IP
注意:Oracle11g新增SCAN-IP,为VIP的一个池概念
以administrator用户登录虚拟化主机:
对主机右键点击“新建虚拟机”
选择自定义配置,下一步
给虚拟机命名 rac1,下一步
选择虚拟机存放位置,下一步
选择虚拟机文件存放位置(尽量放于共享存储上,空间大且防止数据丢失),下一步
选择高版本,下一步
选择操作系统为Linux,版本为Red Hat Enterprise Linux 6(64位),下一步
配置CPU、内存,下一步
选择网卡,配置两块网卡,一块作为Public,另一块作为Private,下一步
选择SCSI驱动器类型:LSI Logic并行,下一步
选择创建新磁盘,下一步
配置磁盘大小,下一步
上述三个选项的解释:
选择虚拟设备节点,默认为SCSI(0:0),选择模式为非独立,下一步
选择在虚拟机创建之前编辑选项,继续
编辑光驱设备,选择ISO文件,完成
查看新建虚拟机配置
以相同方式创建另一个节点rac2。
新建虚拟机rac1,选择自定义,下一步
选择安装操作系统ISO,下一步
命名虚拟机,选择存放位置,下一步
配置内存大小,下一步
选择网络类型为桥接网络,下一步
选择I/O控制器类型为LSI Logic,下一步
选择磁盘类型为SCSI,下一步
配置磁盘大小,并选择将虚拟磁盘拆分多个文件,下一步
指定磁盘文件,下一步
以相同方式创建另一个节点rac2。
新建虚拟机rac1,命名虚拟机,选择系统类型为Linux,版本为Red Hat (64bit),下一步
配置内存大小,下一步
创建虚拟硬盘,创建
选择虚拟磁盘文件类型,下一步
选择动态分配,下一步
选择文件位置和大小,下一步
创建完成
设置虚拟机参数
选择存储,在右侧属性,点击分配光驱右边的 ,选择安装操作系统ISO文件
以相同方式创建另一个节点rac2。
系统安装过程都是一致,因此不予详述。本文只针对安装过程中部分容易出错的地方简述
选择基本存储设备
提示是否丢弃所有的数据,yes,discard any data
选择自定义分区,Create Custom Layout
进入分区界面
选择标准分区模式,Standard Partition
分别创建虚拟内存(swap)、boot分区、/分区
分区结果
选择确定格式化
选择写入磁盘
选择默认即可
选择系统模式,Software Development Workstation,Customize Later,其他默认
开始安装系统
安装后,提示重启系统,并有一系列配置,其中启动Kdump
根据提示,再次重启系统,系统安装完毕!
此步骤,需要虚拟机有两块网卡,分别为Public和Private网卡。
使用root用户登录虚拟机,右键,选择Edit Connection
按以下步骤操作,分别配置两块网卡IP为上表对应项
所谓虚拟网卡,即执行 ifconfig命令列出的virbr0,如图
执行以下命令来删除该虚拟网卡
virsh net-list
virsh net-destroy default
virsh net-undefine default
service libvirtd restart
再次使用ifconfig命令查看,该虚拟网卡已不存在
1、物理机ping两台虚拟机rac1、rac2的Public IP
2、rac1节点 ping rac2节点的Public IP和Private IP
3、rac2节点 ping rac1节点的Public IP和Private IP
以上三步完全可以ping通即可。
关闭rac1节点,右键rac1节点选择编辑设置,进入配置界面,点击添加
选择硬盘,下一步
创建新的虚拟磁盘
配置磁盘大小,选择厚置备置零(集群专用),指定磁盘的存放位置,下一步
驱动器设备选择SCSI 1:0,模式选择独立(集群必须选择此项),下一步
在虚拟机属性中,选择刚添加的SCSI controller 1 驱动器,配置其为物理模式(用于支持共享),以保证rac1、rac2节点的共享访问
重复执行上述步骤,添加另外两块磁盘,将其驱动器设备选择为SCSI 1:1;SCSI 1:2。
添加3块共享磁盘的rac1节点配置信息如下:
关闭rac2节点,右键rac2节点选择编辑设置,进入配置界面,点击添加
选择硬盘,下一步
选择已有虚拟磁盘,下一步
选择指定的存储设备,此处需要注意:选择在rac1节点中创建的第一块磁盘
驱动器设备选择SCSI 1:0,模式选择独立,下一步
同rac1节点一样,在rac2节点属性中,选择刚添加的SCSI controller 1驱动器,配置其为物理模式用于共享
重复执行以上步骤,添加剩余的2块磁盘。注意,驱动器编号要依次选择SCSI 1:1、SCSI 1:2。
添加3块共享磁盘的rac2节点配置信息如下:
vmware-vdiskmanager.exe -c -s 5G -a lsilogic -t 2 "d:\Virtual Machines\RAC\shared"\asm1.vmdk
vmware-vdiskmanager.exe -c -s 5G -a lsilogic -t 2 "d:\Virtual Machines\RAC\shared"\asm2.vmdk
vmware-vdiskmanager.exe -c -s 20G -a lsilogic -t 2 "d:\Virtual Machines\RAC\shared"\asm3.vmdk
注意:-a 指定磁盘类型 –t 2表示直接划分一个预分配空间的文件。
添加如下内容:
#shared disks configure
disk.EnableUUID = "TRUE"
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.maxUnsyncedWrites = "0"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsil.sharedBus = "VIRTUAL"
scsi1:0.present = "TRUE"
scsi1:0.mode = "independent-persistent"
scsi1:0.fileName = "D:\Virtual Machines\RAC\shared\asm1.vmdk"
scsi1:0.deviceType = "disk"
scsi1:0.redo = ""
scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.fileName = "D:\Virtual Machines\RAC\shared\asm2.vmdk"
scsi1:1.deviceType = "disk"
scsi1:1.redo = ""
scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.fileName = "D:\Virtual Machines\RAC\shared\asm3.vmdk"
scsi1:2.deviceType = "disk"
scsi1:2.redo = ""
注意:
1、 此处添加了3块共享盘,因此添加3段内容scsi1:0,scsi1:1,scsi1:2,也即要增加几块盘,就要增加相应段数的内容
2、 scsi 1:.fileName=后面的内容要与你在物理主机使用vmware-vdiskmanager.exe创建的磁盘存储位置一致
3、 重启两节点,查看虚拟机配置,确认共享磁盘文件加载成功(不重启系统可能不能识别出磁盘)
方法1:
rac1节点的配置也中,选择存储,选择"SATA 控制器",然单击"添加硬盘"图标
创建新的磁盘,create new disk
选择默认VDI磁盘模式
选择固定大小(共享磁盘必须选择此选项),下一步
配置共享磁盘存储路径及大小
新建的磁盘,已经连接到rac1虚拟机
选择此新磁盘。
单击"修改(modify)"图标并选择"Shareable"
重复以上步骤,创建另外2块磁盘。
最后,增加磁盘后的配置信息
方法2:
1、在物理主机命令行中执行以下语句,创建磁盘
VBoxManage.exe createhd -filename asm1.vdi -size 5120 -format VDI -variant Fixed
VBoxManage.exe createhd -filename asm2.vdi -size 5120 -format VDI -variant Fixed
VBoxManage.exe createhd -filename asm3.vdi -size 204800 -format VDI -variant Fixed
2、连接rac1虚拟机
VBoxManage.exe storageattach rac1 --storagectl "SATA 控制器" --port 1 --device 0 --type hdd --medium asm1.vdi --mtype shareable
VBoxManage.exe storageattach rac1 --storagectl "SATA 控制器" --port 2 --device 0 --type hdd --medium asm2.vdi --mtype shareable
VBoxManage.exe storageattach rac1 --storagectl "SATA 控制器" --port 3 --device 0 --type hdd --medium asm3.vdi --mtype shareable
3、设置磁盘共享
VBoxManage.exe modifyhd asm1.vdi --type shareable
VBoxManage.exe modifyhd asm2.vdi --type shareable
VBoxManage.exe modifyhd asm3.vdi --type shareable
4、查看rac1配置信息
rac2节点只需配置磁盘驱动器与虚拟机的连接即可,如下:
VBoxManage.exe storageattach rac2 --storagectl "SATA 控制器" --port 1 --device 0 --type hdd --medium asm1.vdi --mtype shareable
VBoxManage.exe storageattach rac2 --storagectl "SATA 控制器" --port 2 --device 0 --type hdd --medium asm2.vdi --mtype shareable
VBoxManage.exe storageattach rac2 --storagectl "SATA 控制器" --port 3 --device 0 --type hdd --medium asm3.vdi --mtype shareable
fdisk –l
三个分区作用解释:
fdisk /dev/sdb --作为ocr和voting disk存放文件
fdisk /dev/sdc --存放快速恢复区文件
fdisk /dev/sdd --存放数据库文件
fdisk /dev/sdb[c|d]
依次n → p → 1 → Enter → Enter → w,实现分区
fdisk –l --再次查看并在rac2节点查看,确保与rac1完全一致
分区完毕,不要对新加磁盘进行格式化,保持裸设备。
使用udev管理配置磁盘方式
rpm -qa|grep udev --查看是否安装udev
执行以下命令,获取scsi id信息
scsiid -g -u -d /dev/sdb [c|d]
36000c292f99f2349911c3766f3cc53d7
36000c293f4c9f2c1fdd38a63e5861ad3
36000c2994d5eda8fbefc5922b14ab651
编辑udev配置文件,添加rules文件(/etc/udev/rules.d/)并授权添加以下参数。
方法1:
vi /etc/udev/rules.d/99-x-asmdisk.rules
KERNEL=="sdb1", BUS=="scsi", PROGRAM="scsiid -g -u -d /dev/$parent",RESULT=="36000c292f99f2349911c3766f3cc53d7", NAME="asmdiskOCR", OWNER:="grid", GROUP:="dba",MODE="0660"
KERNEL=="sdc1", BUS=="scsi", PROGRAM="scsiid -g -u -d /dev/$parent",RESULT=="36000c293f4c9f2c1fdd38a63e5861ad3", NAME="asmdiskDATA", OWNER:="grid", GROUP:="dba",MODE="0660"
KERNEL=="sdd1", BUS=="scsi", PROGRAM="scsiid -g -u -d /dev/$parent",RESULT=="36000c2994d5eda8fbefc5922b14ab651", NAME="asmdiskFRA", OWNER:="grid", GROUP:="dba",MODE="0660"
注意:
1、 一行为一条规则
2、 , 与下一个关键词要有空格
3、 GROUP:=后面不确定值,dba与asmadmin都可以
启动udev
startudev
ls /dev/asmdisk
方法2:
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
直接在命令行下输入并执行以下循环
for i in b c d;
do
echo "KERNEL==\"sd\", BUS==\"scsi\", PROGRAM==\"/sbin/scsiid --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"/sbin/scsiid --whitelisted --replace-whitespace --device=/dev/sd$i
\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevives.rules
done
注意:此处的b、c、d是sdb、sdc、sdd去掉sd
启动udev
startudev
ls /dev/asm
groupadd -g 601 oinstall
groupadd -g 602 dba
groupadd -g 603 oper
groupadd -g 604 asmadmin
groupadd -g 605 asmdba
groupadd -g 606 asmoper
useradd -u 601 -g oinstall -G asmadmin,asmdba,asmoper grid
useradd -u 602 -g oinstall -G dba,oper,asmdba oracle
passwd grid
passwd oracle
vi /etc/hosts --加入以下内容
#public:
192.168.2.231 rac1
192.168.2.232 rac2
#vip:
192.168.2.233 rac1-vip
192.168.2.234 rac2-vip
#priv
1.1.6.231 rac1-priv
1.1.6.232 rac2-priv
#SCAN
192.168.2.235 rac-scan
vi /etc/sysctl.conf --加入以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.iplocalportrange = 9000 65500
net.core.rmemdefault = 262144
net.core.rmemmax = 4194304
net.core.wmemdefault = 262144
net.core.wmemmax = 1048576
sysctl –p --使以上设置生效
vi /etc/security/limits.conf --加入以下内容
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
vi /etc/pam.d/login --加入以下内容
session required pamlimits.so
mkdir -p /u01/app/oraInventory
chown -R grid.oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
mkdir -p /u01/app/grid
mkdir -p /u01/app/grid/crs
mkdir -p /u01/app/grid/11.2.0
chown -R grid.oinstall /u01/app/grid
chmod -R 775 /u01/app/grid
mkdir -p /u01/app/oracle
chown -R oracle.oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0/db1
chown -R oracle.oinstall /u01/app/oracle/product/11.2.0/db1
chmod -R 775 /u01/app/oracle/product/11.2.0/db1
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
gcc gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
ksh
libaio
libaio-devel
libgcc
libstdc++
libstdc++-devel
make
numactl-devel
sysstat
unixODBC
unixODBC-devel
方法1:
拷贝系统光盘内容到本地目录
mkdir /yum/
cp /media/ /yum/
删除/etc/yum.repos.d/下内容并创建yum.repo
vi /etc/yum.repos.d/yum.repo
[yum]
name=yum
baseurl=file:///yum/
enabled=1
方法2:
rpm –ivh –nodeps –force rpm
Su – grid --切换到grid用户,修改环境变量
Vi .bashprofile --删除重复内容,加入以下内容
export ORACLEHOSTNAME=rac1(rac2)
export ORACLEUNQNAME=rac
export ORACLEBASE=/u01/app/grid/crs
export ORACLEHOME=/u01/app/grid/11.2.0
export ORACLESID=+ASM1(+ASM2)
export ORACLETERM=xterm
export PATH=$ORACLEHOME/bin:/usr/sbin:$PATH
export LDLIBRARYPATH=$ORACLEHOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLEHOME/JRE:$ORACLEHOME/jlib:$ORACLEHOME/rdbms/jlib
export TMP=/tmp
export TMPDIR=$TMP
Su – oracle --切换到oracle用户,修改环境变量
Vi .bashprofile --删除重复内容,加入以下内容
export ORACLEHOSTNAME=rac1(rac2)
export ORACLEUNQNAME=rac
export ORACLEBASE=/u01/app/oracle
export ORACLEHOME=$ORACLEBASE/product/11.2.0/db1
export ORACLESID=rac1(rac2)
export ORACLETERM=xterm
export PATH=$ORACLEHOME/bin:/usr/sbin:$PATH
export LDLIBRARYPATH=$ORACLEHOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLEHOME/JRE:$ORACLEHOME/jlib:$ORACLEHOME/rdbms/jlib
export TMP=/tmp
export TMPDIR=$TMP
1、立即生效
setenforce 0 --立即关闭SELinux
getenforce --查看SELinux状态
2、永久生效
vi /etc/selinux/config --关闭selinux
替换SELinux=enforcing为SELinux=disabled
service iptables save
service iptables stop --关闭iptables
chkconfig iptables off --设置iptables不随系统启动
chkconfig --list iptables --查看防火墙状态列表
ssh等效性操作过程一样,因此只需切换到相应用户执行即可
su – grid --两节点
cd /home/grid
rm -rf ~/.ssh
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
配置同步
rac1节点
cat ~/.ssh/idrsa.pub >> ~/.ssh/authorizedkeys
cat ~/.ssh/iddsa.pub >> ~/.ssh/authorizedkeys
scp ~/.ssh/authorizedkeys rac2:~/.ssh/authorizedkeys
rac2节点
cat ~/.ssh/idrsa.pub >> ~/.ssh/authorizedkeys
cat ~/.ssh/iddsa.pub >> ~/.ssh/authorizedkeys
scp ~/.ssh/authorizedkeys rac1:~/.ssh/authorizedkeys
检测连通性 --两节点
ssh racdb1 date
ssh racdb2 date
ssh racdb1-priv date
ssh racdb2-priv date
注意:第一次询问是否要连接,输入yes即可。
vi /etc/ntp.conf --主节点rac1加入以下内容
Server 127.127.1.0
Fudge 127.127.1.0 stratum 11
Broadcastdelay 0.008
vi /etc/ntp.conf --其他节点rac2加入以下内容
Server 192.168.2.231 prefer
Driftfile /var/lib/ntp/drift
Broadcastdelay 0.008
vi /etc/sysconfig/ntpd --配置NTP服务
SYNCHWCLOCK=yes
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
/etc/init.d/ntpd restart --启动NTP服务
chkconfig ntpd on --设置NTP服务随系统启动
netstat -an |grep 123 --确保该端口以udp方式开放
ntpstat --查看NTP服务状态
11G R2 默认有自己的时间同步机制,没有NTP也是可以的。有NTP的话ctss应该一直运行观察模式的。使用集群时间同步服务在集群中提供同步服务,需要卸载网络时间协议 (NTP) 及其配置。
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.original --有/etc/ntp.conf这个文件,ctss是不会启用的
rm /var/run/ntpd.pid --此文件保存NTP后台程序的pid
本操作需要两节点分别执行!!
上传安装文件,本次安装的是Oracle 11.2.0.4版本,共3个安装包,其中1、2是database包,3是grid包。
分别解压3个包,解压后产生两个目录/setup/database、/setup/grid
注意:rac2节点只上传grid包,解压即可。
在两个rac节点上安装操作系统程序包cvuqdisk(安装包在/setup/grid/下)。如果没有cvuqdisk,集群验证实用程序就无法发现共享磁盘(/dev/asm),且在安装后期会收到”Package cvuqdisk not installed”的错误。
root用户下安装cvuqdisk-1.0.9-1.rpm包
export CVUQDISKGRP=oinstall
cd /setup/grid/rpm
rpm –ivh cvuqdisk-1.0.9-1.rpm
su – grid --切换到grid用户
cd /setup/grid
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose > 1.log --输入1.log,方便查看
如有报错,则执行下面命令后再次执行此命令
/tmp/CVU11.2.0.1.0grid/runfixup.sh
rm -rf /tmp/bootstrap
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose
注意:以上命令执行结果中,提示网络问题、时间同步、DNS问题可忽略!!!
./runcluvfy.sh stage –post hwos –n rac1,rac2 –verbose
注意:
1、 两条CVU检查命令的结果均为passed才能继续安装(网络、时间、DNS问题可忽略)。
2、 此时要保证两节点4个IP(Public、Private)可以互相ping通
本操作只需在一个节点分别执行!!
图形界面安装需要在root用户执行如下命令
xhost +
出现如上输出,即可继续进行图形安装。
su – grid
cd /setup/grid
./runInstaller
跳过更新
选择安装选项
选择高级安装(方便设置参数)
Cluster Name可以随意命名;SCAN Name需要与/etc/hosts中配置一致;端口默认1521。不配置GNS
添加节点2信息
网络信息
采用ASM存储管理
配置ocr及voting disk存储磁盘组,此处为磁盘组名为CRS
更改发现路径/dev/asm,以找到共享磁盘
选择规划好的磁盘加入CRS组
设置ASM管理密码(为了方便采用统一设置密码)
密码不符合oracle规则警告,选择yes继续
不适用IPMI
选择grid软件ORACLEBASE及ORACLEHOME(事先配置了.bashprofile,这里会自动找到路径)
选择oraInventory目录(该目录主要存放安装日志等)
安装预检。
如果两节点ll /dev/asm,可以查看到一致内容,则Device Checks for ASM警告可以忽略;
如果使用Linux系统NTP服务,则出现Network Time Protocol警告(使用ctss则不会报警)
可能还会有一些关于DNS、网络的警告,忽略即可
略过警告提醒,选择yes继续
安装概览
安装
提示以root用户分别在两节点执行root.sh脚本。注意最后的提示,需要在安装节点先执行root.sh完毕后,再在其他节点执行(此时可以并行执行)!!!
rac1节点执行完毕
接下来在其他节点执行root.sh
INS-20802是监听错误。其原因是/etc/hosts中配置了SCAN的地址,此步如果可以ping通SCAN-IP,那么忽略此错误即可。点击OK继续,安装grid完成。
su – grid
检查CRS状态
crsctl check crs
检查Cluster资源
crsstat –t
检查CRS节点信息
olsnodes –n
检查两节点Oracle TNS监听进程
ps -ef|grep lsnr |grep -v 'grep'|grep -v 'ocfs'|awk '{print$9}'
确认针对Oracle Cluster文件的Oracle ASM功能:
su – grid
srvctl status asm –a
grid用户下,执行asmca,添加物理盘到ASM磁盘组
创建Oracle数据存放盘
配置oracle数据盘完成
重复以上操作,创建闪回盘。
最后配置结果:
本操作只需在一个节点分别执行!!
图形界面安装需要在root用户执行如下命令
xhost +
出现如上输出,即可继续进行图形安装。
su – oracle
cd /setup/database
./runInstaller