VMware下Oracle 11g RAC环境搭建
Oracle 11g RAC搭建(VMware环境)
- Oracle 11g RAC搭建VMware环境
- 安装环境与网络规划
- 安装环境
- 网络规划
- 环境配置
- 通过SecureCRT建立命令行连接
- 关闭防火墙
- 创建必要的用户组和目录并授权
- 节点配置检查
- 系统文件设置
- 配置IP和hostshostname
- 配置grid和oracle用户环境变量
- 配置oracle用户ssh互信
- 配置裸盘
- 配置grid用户ssh互信
- 挂载安装软件文件夹
- 安装用于Linux的cvuqdisk
- 手动运行cvu使用验证程序验证Oracle集群件要求所有节点都执行
- 安装Grid Infrastructure
- 安装流程
- 安装grid后的资源检查
- 为数据和快速恢复去创建ASM磁盘组
- 安装Oracle database软件RAC
- 安装流程
- 创建集群数据库
- RAC维护
- 查看服务状态
- 检查CRS状态
- 查看集群中节点配置信息
- 查看集群件的表决磁盘信息
- 查看集群SCAN VIP信息
- 启停集群数据库
- EM管理
- 本地sqlplus连接
- 安装环境与网络规划
安装环境与网络规划
安装环境
主机操作系统:windows 10
虚拟机VMware12:两台Oracle Linux R6 U5 x86_64
Oracle Database software: Oracle11gR2
Cluster software: Oracle grid infrastructure 11gR2
共享存储:ASM
[root@rac1 ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: OracleServer Description: Oracle Linux Server release 6.5 Release: 6.5 Codename: n/a [root@rac1 ~]# uname -r 3.8.13-16.2.1.el6uek.x86_64
细节说明:
1. 安装Oracle Linux时,注意分配两个网卡,一个网卡为Host Only方式,用于两台虚拟机节点的通讯,另一个网卡为Nat方式,用于连接外网,后面再手动分配静态IP。每台主机的内存和swap规划为至少2.5G。硬盘规划为:boot 500M,其他空间分配为LVM方式管理,LVM划分2.5G为swap,其他为/。
两台Oracle Linux主机名为rac1、rac2
注意这里安装的两个操作系统最好在不同的硬盘中,否则I/O会很吃力。
2. 由于采用的是共享存储ASM,而且搭建集群需要共享空间作注册盘(OCR)和投票盘(votingdisk)。VMware创建共享存储方式:
进入VMware安装目录,cmd命令下:
C:\Program Files (x86)\VMware\VMware Workstation> vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\ocr.vmdk vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\ocr2.vmdk vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\votingdisk.vmdk vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\data.vmdk vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\backup.vmdk
这里创建了两个1G的ocr盘,一个1G的投票盘,一个20G的数据盘,一个10G的备份盘。
修改RAC1虚拟机目录下的vmx配置文件:
scsi1.present = "TRUE" scsi1.virtualDev = "lsilogic" scsi1.sharedBus = "virtual" scsi1:1.present = "TRUE" scsi1:1.mode = "independent-persistent" scsi1:1.filename = "F:\VMware\RAC\Sharedisk\ocr.vmdk" scsi1:1.deviceType = "plainDisk" scsi1:2.present = "TRUE" scsi1:2.mode = "independent-persistent" scsi1:2.filename = "F:\VMware\RAC\Sharedisk\votingdisk.vmdk" scsi1:2.deviceType = "plainDisk" scsi1:3.present = "TRUE" scsi1:3.mode = "independent-persistent" scsi1:3.filename = "F:\VMware\RAC\Sharedisk\data.vmdk" scsi1:3.deviceType = "plainDisk" scsi1:4.present = "TRUE" scsi1:4.mode = "independent-persistent" scsi1:4.filename = "F:\VMware\RAC\Sharedisk\backup.vmdk" scsi1:4.deviceType = "plainDisk" scsi1:5.present = "TRUE" scsi1:5.mode = "independent-persistent" scsi1:5.filename = "F:\VMware\RAC\Sharedisk\ocr2.vmdk" scsi1:5.deviceType = "plainDisk" disk.locking = "false" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.DataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize = "4096" diskLib.maxUnsyncedWrites = "0"
修改RAC2的vmx配置文件:
scsi1.sharedBus = "virtual" disk.locking = "false" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.DataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize = "4096" diskLib.maxUnsyncedWrites = "0" gui.lastPoweredViewMode = "fullscreen" checkpoint.vmState = "" usb:0.present = "TRUE" usb:0.deviceType = "hid" usb:0.port = "0" usb:0.parent = "-1"
这里就在RAC2的虚拟机设置中手动添加创建好的五个虚拟硬盘,要求是独立永久属性。
网络规划
硬件配置要求:
- 每个服务器节点至少需要2块网卡,一个对外网络接口,一个私有网路接口(心跳)。
- 如果你通过OUI安装Oracle集群软件,需要保证每个节点用于外网或私网接口(网卡名)保证一致。比如,node1使用eth0作为对外接口,node2就不能使用eth1作为对外接口。
IP配置要求:
这里不采用DHCP方式,指定静态的scan ip(scan ip可以实现集群的负载均衡,由集群软件按情况分配给某一节点)。
每个节点分配一个ip、一个虚拟ip、一个私有ip。
其中ip、vip和scan-ip需要在同一个网段。
非GNS下手动配置IP实例:
Identity | Home Node | Host Node | Given Name | Type | Address |
---|---|---|---|---|---|
RAC1 Public | RAC1 | RAC1 | rac1 | Public | 192.168.248.101 |
RAC1 VIP | RAC1 | RAC1 | rac1-vip | Public | 192.168.248.201 |
RAC1 Private | RAC1 | RAC1 | rac1-priv | Private | 192.168.109.101 |
RAC2 | RAC2 | RAC2 | rac2 | Public | 192.168.248.102 |
RAC2 VIP | RAC2 | RAC2 | rac2-vip | Public | 192.168.248.202 |
RAC2 Private | RAC2 | RAC2 | rac2-priv | Private | 192.168.109.102 |
SCAN IP | none | Selected by Oracle Clusterware | scan-ip | virtual | 192.168.248.110 |
环境配置
默认情况下,下面操作在每个节点下均要进行,密码均设置oracle
1. 通过SecureCRT建立命令行连接
sqlplus中Backspace出现^H的乱码
Options->Session Options->Terminal->Emulation->Mapped Keys->Other mappings
勾选Backspace sends deletevi中不能使用delete和home
Options->Session Options->Terminal->Emulation
设置Terminal为Linux
勾选Select an alternate keyboard emulation为Linux
2. 关闭防火墙
[root@rac1 ~]# setenforce 0 setenforce: SELinux is disabled [root@rac1 ~]# vi /etc/sysconfig/selinux SELINUX=disabled [root@rac1 ~]# service iptables stop [root@rac1 ~]# chkconfig iptables off
3. 创建必要的用户、组和目录,并授权
/usr/sbin/groupadd -g 1000 oinstall /usr/sbin/groupadd -g 1020 asmadmin /usr/sbin/groupadd -g 1021 asmdba /usr/sbin/groupadd -g 1022 asmoper /usr/sbin/groupadd -g 1031 dba /usr/sbin/groupadd -g 1032 oper useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle mkdir -p /u01/app/11.2.0/grid mkdir -p /u01/app/grid mkdir /u01/app/oracle chown -R grid:oinstall /u01 chown oracle:oinstall /u01/app/oracle chmod -R 775 /u01/
参照官方文档,采用GI与DB分开安装和权限的策略,对于多实例管理有利。
4. 节点配置检查
内存大小:至少2.5GB
Swap大小:
当内存为2.5GB-16GB时,Swap需要大于等于系统内存。
当内存大于16GB时,Swap等于16GB即可。
查看内存和swap大小:
[root@rac1 ~]# grep MemTotal /proc/meminfo MemTotal: 2552560 kB [root@rac1 ~]# grep SwapTotal /proc/meminfo SwapTotal: 2621436 kB
如果swap太小,swap调整方法:
通过此种方式进行swap 的扩展,首先要计算出block的数目。具体为根据需要扩展的swapfile的大小,以M为单位。block=swap分区大小*1024, 例如,需要扩展64M的swapfile,则:block=64*1024=65536.
然后做如下步骤:
#dd if=/dev/zero of=/swapfile bs=1024 count=65536
#mkswap /swapfile
#swapon /swapfile
#vi /etc/fstab
增加/swapf swap swap defaults 0 0 # cat /proc/swaps 或者# free –m //查看swap分区大小
# swapoff /swapf //关闭扩展的swap分区
5. 系统文件设置
(1)内核参数设置:
[root@rac1 ~]# vi /etc/sysctl.conf
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1306910720
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
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
这里后面检测要改
kernel.shmmax = 68719476736
确认修改内核
[root@rac1 ~]# sysctl -p
也可以采用Oracle Linux光盘中的相关安装包来调整
[root@rac1 Packages]# pwd
/mnt/cdrom/Packages
[root@rac1 Packages]# ll | grep preinstall
-rw-r–r– 1 root root 15524 Dec 25 2012 oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
(2)配置oracle、grid用户的shell限制
[root@rac1 ~]# vi /etc/security/limits.conf
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
(3)配置login
[root@rac1 ~]# vi /etc/pam.d/login
session required pam_limits.so
安装需要的软件包
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)这里使用的是配置本地源的方式,自己先进行配置:
[root@rac1 ~]# mount /dev/cdrom /mnt/cdrom/
[root@rac1 ~]# vi /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
[root@rac1 ~]# yum clean all
[root@rac1 ~]# yum makecache
[root@rac1 ~]# yum install gcc gcc-c++ glibc* glibc-devel* ksh libgcc* libstdc++* libstdc++-devel* make sysstat