VMware Oracle 11g RAC 环境简单搭建

      VMware Oracle 11g RAC 环境搭建

1、安装环境
操作系统版本:
oracle linux 6.4 (64位)
安装所需依赖包:
配置好 yum 源后采用yum 方式安装(解决安装依赖问题)
yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 libXext libXext.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 make sysstat unixODBC unixODBC-devel
注:以上 yum 可以参考

2、配置网络(至少需要两块网卡)
在每个节点的 hosts 文件记录当前节点的IP地址信息(信息保持一致)重启网络服务使每块网卡生效。
验证是否配置成功,可以通过 ping 检查。
hosts 文件配置
vi /etc/hosts 
VIP 和 SCAN IP 可以通过 DNS 解析或是通过 oracle 提供的 GNS 解析,为了简化配置,我采用的是 hosts 文件配置网络环境解析:
#public ip
192.168.93.131 rac01
192.168.93.132 rac02
#virtual ip
192.168.93.168  rac01-vip
192.168.93.169  rac02-vip
#private ip
192.168.0.131  rac01-priv 
192.168.0.132  rac02-priv 
#scan ip
192.168.93.170  rac.cluster.scan.com
#single client access name
注:#scan IP 和 VIP 不需要指定到某块具体网卡,随着集群相关服务的启动,这些地址将自动被指定到各个节点的公共网卡上(如果使用GNS解析虚拟IP既可以不需要再hosts配置虚拟IP)
   
3、共享存储配置
在每个节点虚拟机添加配置共享磁盘(每个节点都应该有读写权限),配置方式如下
a.先在你本机的vmware安装目录上找到 vmware-vdiskmanager.exe 执行文件
我的目录是(D:\Program Files (x86)\VMware Workstation\vmware-vdiskmanager.exe)
VMware创建共享存储方式: 进入VMware安装目录,用cmd终端(用管理员身体执行)执行该文件创建磁盘并指定存放的目录
cmd 如下:
C:\Program Files (x86)\VMware\VMware Workstation>
vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 "D:\虚拟机\SharedDisk\SharedDiskOCR101.vmdk"

vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 "D:\虚拟机\SharedDisk\SharedDiskOCR102.vmdk"

vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 "D:\虚拟机\SharedDisk\SharedDiskOCR103.vmdk"

vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 "D:\虚拟机\SharedDisk\SharedDiskOCR104.vmdk"

这里创建了四块10G的作为共享盘
打开虚拟机,添加刚创建好的磁盘,并修改共享磁盘所有生成文件的权限,设置为任意用户都可以进行读写操作
在虚拟机设置中手动添加创建好的虚拟硬盘,属性设置为独立永久,到此硬盘已经添加成功。

b.接下来配置共享
在RAC1虚拟机目录下的 vmx 文件添加如下配置:
scsi0.sharedBus = "virtual"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

RAC2的vmx添加下面配置:
scsi0.sharedBus = "virtual" 
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
gui.lastPoweredViewMode = "windowed"
checkpoint.vmState = ""

注意:这里有些具体配置应根据自己虚拟机的实际配置稍加调整

c.启动虚拟机验证磁盘是否配置成功
这时就已经实现了双机同时共享刚刚创建的两块磁盘。然后保存,这时就可以开机了,共通这个磁盘的容量。

d.在每个节点的 60-raw.rules 文件添加如下内容(具体根据自己挂载的磁盘名称做适当修改)
# vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw5 %N"
KERNEL=="raw*", OWNER="grid" GROUP="asmadmin", MODE="0660"
  
启动 UDEV 服务生效并验证配置是否成功
# start_udev
# raw -qa
# ls /dev/raw/


4、添加用户与组
在每个节点创建相应的操作系统组和用户并为用户设置密码
groupadd -g 500 oinstall
groupadd -g 501 dba
groupadd -g 502 asmdba
groupadd -g 503 asmadmin
groupadd -g 504 asmoper
useradd -u 600 -g oinstall -G dba,asmdba oracle
useradd -u 601 -g oinstall -G dba,asmdba,asmadmin,asmoper grid

echo "oracle" | passwd --stdin oracle /dev/null
echo "oracle" | passwd --stdin grid /dev/null

5、创建软件安装目录(在每个节点创建相应的安装目录并改变相应属主或权限) 
mkdir -p /u01/app
mkdir -p /u01/app/grid
mkdir -p /u01/app/gi_product/gi_home
mkdir -p /u01/app/oracle/product/db_home_1
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/gi_product
chown -R oracle:oinstall /u01/app/oracle
chown -R grid:oinstall /u01/app/oraInventory
chmod -R g+w 


6、修改操作系统参数(在所有节点完成)
vi /etc/security/limits.conf
grid soft nofile 1024
grid hard nofile 65536
grid soft nproc 2048
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft stack 10240

oracle hard stack 32768

修改 sysctl.conf 配置文件
# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

让配置生效:
#/sbin/sysctl -p

修改/etc/pam.d/login 登录配置文件
vi /etc/pam.d/login
#ORACLE SETTING
session required pam_limits.so

修改/etc/security/limits.d/90-nproc.conf 文件内容
Amend the "/etc/security/limits.d/90-nproc.conf" file as described below. See MOS Note
[ID 1487773.1]
# Change this
* soft nproc 1024
# To this
* - nproc 16384

禁用 SELINUX (可选)
SELINUX=disable

为配置时间同步 禁用NTP
# service ntpd stop
# chkconfig ntpd off
# mv /etc/ntp.conf /etc/ntp.conf.org
# rm /etc/ntp.conf
# rm /var/run/ntpd.pid


7、配置 grid 和 oracle 用户的环境变量(在所有节点完成,注意SID的配置)
grid 用户的环境变量如下:
export LANG=en_US   
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/gi_product/gi_home
export ORACLE_SID=+ASM1/+ASM2
export PATH=$ORACLE_HOME/bin:$PATH


oracle 用户的环境变量如下:
export LANG=en_US 
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/db_home_1
export ORACLE_SID=orcl1/orcl2
export PATH=$ORACLE_HOME/bin:$PATH


8、配置 SSH 用户对等关系
配置用户间信任对等关系,首先要保证 openssl 和 openssh 软件已经安装到 linux 系统
通过如下命令查看软件是否安装:
# pgrep -l sshd
设置 SSH
# mkdir -p /usr/local/bin
# cp /usr/bin/scp /usr/local/bin
# cp /usr/bin/ssh /usr/local/bin
# cd /usr/local/bin 


然后进入到 grid 或者 oracle 用户下面执行下面步骤操作。
在主节点 RAC1 以 grid,oracle 用户身份生成用户的公匙和私匙
# su - oracle (su - grid)
$ cd
$ mkdir .ssh
$ chmod 700 .ssh


$ ssh-keygen -t rsa   
$ ssh-keygen -t dsa  
$ cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys  
$ cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys


接下来需要把 authorized_keys 文件复制到其他节点中同名用户主目录下的 .ssh 子目录下:
$ scp authorized_keys grid(oracle)@192.168.93.132:/home/grid(oracle)/.ssh/authorized_keys 
复制到其他所有节点之后,就可以在这些节点间建立用户对等关系了。
测试用户对等关系是否建立成功,命令如下:
$ ssh rac01 date    --当前节点
$ ssh rac02 date    --远程节点
$ ssh rac01-priv date  --当前节点
$ ssh rac02-priv date  --远程节点

打开终端执行下面命令即可以建立对等:
$ exec /usr/bin/ssh-agent $SHELL 
$ /usr/bin/ssh-add

注意:
如果希望在RAC任何一个节点都能完成RAC的安装和配置任务,那么需要在每个节点都为软件安装者产生秘钥,然后将其传输到其他所有节点上,做法重复上述步骤即可。


9、如果linux没有安装配置桌面则可以使用 Xmanager 把安装界面映射到本地 windows 系统。
这一步骤不做具体说明,相信大家只是模拟安装都会在linux下安装桌面环境,我既是如此。

10、设置防火墙或者关闭防火墙,这里我直接选择关闭防火墙并防止防火墙自启
# service ipchains stop
# chkconfig iptables off


11、安装 11g Grid Infrastructure 组件
解压安装文件上传安装介质到节点操作系统上,包括 gird,database
开始安装 GRID
在第一个节点执行:
root xhost+
su – grid
安装前校验(runcluvfy.sh, cluvfy)
在安装前先以安装用户进入系统,打开shell窗口执行下面命令建立对等关系:
$ exec /usr/bin/ssh-agent $SHELL 
$ /usr/bin/ssh-add

然后在该窗口执行下面命令对每个节点进行安装前校验:
$ ./runcluvfy.sh stage -pre crsinst -n RAC01,RAC02 -fixup -verbose 
$ ./runcluvfy.sh comp ssa -n RAC01,RAC02 -s /dev/shairdisk1,/dev/shairdisk2
--验证共享磁盘
可以使用下面命令获取帮助:
$ ./runcluvfy.sh -help
$ ./runcluvfy.sh stage -help
$ ./runcluvfy.sh comp -help

上述检验成功以安装者身份登录系统建立用户对等关系后进入到安装介质路径然后运行 ./runInstaller
后续步骤就是漫长的等待。。。
然后在root用户下为每个节点执行安装时提示的脚本
脚本在每个节点执行成功后,GI就安装成功。
安装成功后执行 asmca 添加所需磁盘组。

12、安装 ORACLE 11g RAC 数据库软件
运行安装命令
xhost +
su - oracle
$ ./cluvfy stage -pre dbinst -fixup -n RAC01,RAC02 -osdba dba -verbose 
-- 检查先决条件
建立对等关系:
$ exec /usr/bin/ssh-agent $SHELL 
$ /usr/bin/ssh-add
./runInstaller

配置安装选项,选择 install database software only
安装完成后,主机运行 root.sh 文件
然后创建 Oracle RAC 集群数据库
xhost +
su - oracle
如果在新的窗口则需要重新执行下面命令建立对等关系:
$ exec /usr/bin/ssh-agent $SHELL 
$ /usr/bin/ssh-add

然后执行cluvfy脚本对多个节点进行校验看是否满足集群数据库创建的条件:
$ ./cluvfy stage -pre dbcfg -n RAC1,RAC2 -d $ORACLE_HOME -verbose
如果发现有不满足集群数据库创建的条件,应该在操作系统解决问题后在执行下面语句创建数据库,如果是新的shell窗口也需要先建立对等关系:
$ dbca
选择“Cluster database”
到此 RAC 安装大功告成。

附:卸载 rac 后删除残留配置等信息(安装失败如找不到失败原因亦可选择卸载后一步一步重新检查环境后再安装)
rm /etc/oracle/*
rm -rf /etc/init.d/init.cssd
rm -rf /etc/init.d/init.crs
rm -rf /etc/init.d/init.crsd
rm -rf /etc/init.d/init.evmd
rm -rf /etc/rc2.d/K96init.crs
rm -rf /etc/rc2.d/S96init.crs
rm -rf /etc/rc3.d/K96init.crs
rm -rf /etc/rc3.d/S96init.crs
rm -rf /etc/rc5.d/K96init.crs
rm -rf /etc/rc5.d/S96init.crs
rm -rf /etc/oracle/scls_scr
rm -rf /etc/inittab.crs

rm -rf /tmp/.oracle
rm -rf /var/tmp/.oracle
rm -rf /etc/init/oracle-ohasd.conf
rm -rf /etc/init.d/ohasd
rm -rf /etc/init.d/init.ohasd
rm -rf /etc/oraInst.loc
rm -rf /etc/oratab
rm -rf /etc/oracle
rm -rf /u01/app/

find / -name oracle

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ahern_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值