Oracle RAC部署过程
部署环境如下:
VMware version:Workstation 12.0.0 build-2985596
Oracle版本:11G R2 grid/oracle 64位 11.2.0.1.0 for linux
Linux操作系统:Centos 6.5 64bit
lsb_release -a 查看下系统版本信息
在window系统cmd下执行如下命令,磁盘大小参数自己可以根据需求更改配置:
vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\ocr.vmdk
vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\ocr2.vmdk
vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\votingdisk.vmdk
vmware-vdiskmanager.exe -c -s 30000Mb -a lsilogic -t 2 D:\Oracle_RAC\data.vmdk
vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 D:\Oracle_RAC\backup.vmdk
RAC1
-----------------------------------------------
配置虚拟机RAC1 RAC2目录下的vmx虚拟机配置文件,在行最后添加如下:
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"
scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "D:\Oracle_RAC\ocr.vmdk"
scsi1:1.deviceType = "plainDisk"
scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "D:\Oracle_RAC\votingdisk.vmdk"
scsi1:2.deviceType = "plainDisk"
scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "D:\Oracle_RAC\data.vmdk"
scsi1:3.deviceType = "plainDisk"
scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "D:\Oracle_RAC\backup.vmdk"
scsi1:4.deviceType = "plainDisk"
scsi1:5.present = "TRUE"
scsi1:5.mode = "independent-persistent"
scsi1:5.filename = "D:\Oracle_RAC\ocr2.vmdk"
scsi1:5.deviceType = "plainDisk"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
-----------------------------------------------
关闭selinux
setenforce 0
[root@rac1 ~]# vi /etc/selinux/config
SELINUX=disabled
关闭防火墙
service iptables stop
chkconfig iptables off
卸载NTP服务
[root@rac2 ~]# rpm -qa |grep ntp
[root@rac2 ~]# rpm -e --nodeps ntp-4.2.6p5-1.el6.centos.x86_64
[root@rac2 ~]# rpm -e --nodeps ntpdate-4.2.6p5-1.el6.centos.x86_64
[root@rac2 ~]#mv /etc/ntp.conf /etc/ntp.conf.bak
---------------------------------------------------
hostname rac1
hostname rac2
RAC1
eth0 192.168.100.103
eht1 10.10.10.100
RAC2
eth0 192.168.100.104
eth1 10.10.10.101
vi /etc/sysconfig/network
------------------------------------
vi /etc/hosts
192.168.100.103 rac1
192.168.100.104 rac2
192.168.100.105 rac1-vip
192.168.100.108 rac2-vip
10.10.10.100 rac1-priv
10.10.10.101 rac2-priv
192.168.100.88 scan-ip
----------------------------------
创建相关用户:
groupadd -g 1300 dba
groupadd -g 1301 oper
groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -s /bin/bash grid
useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -s /bin/bash oracle
设置相关账户密码:
passwd oracle passwd grid
RAC1 RAC2相互配置ssh免秘钥登陆
在用户root oracle grid执行以下2行命令:
RAC1、RAC2:
ssh-keygen -t rsa
ssh-keygen -t dsa
切换用户配置以下ssh命令:
su - oracle
su - grid
RAC1
[oracle@RAC1 ~]$
ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
[oracle@RAC1 .ssh]$ scp authorized_keys rac2:~/.ssh/
[oracle@RAC1 .ssh]$ chmod 600 authorized_keys
RAC2:
[oracle@RAC2 ~]$
ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
[oracle@RAC2 .ssh]$ scp authorized_keys rac1:~/.ssh/
[oracle@RAC2 .ssh]$ chmod 600 authorized_keys
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
---------------------------------------------------
配置目录
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown grid:oinstall /u01/app/11.2.0/grid
chown grid:oinstall /u01/app/grid
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
--------------------------------------------------
设置内核文件:
vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4398046511104
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 =1054472192 (参考值)
sysctl -p 立即生效
----------------------------------------------
配置系统文件
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
-------------------------------------------------
配置grid和oracle用户环境变量
su - oracle
ORACLE环境变量
vi .bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=orcl1 # RAC1
export ORACLE_SID=orcl2 # RAC2
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
使配置文件生效 source .bash_profile
GRID环境变量
su - grid
vi .bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1 # RAC1
# export ORACLE_SID=+ASM2 # RAC2 配置一个即可
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
使配置文件生效 source .bash_profile
配置login
[root@rac1 ~]# vi /etc/pam.d/login
session required pam_limits.so
-------------------------------------
配置裸盘:
查看未格式化的磁盘
fdisk -l
ls /dev/sd*
fdisk格式化命令:
fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
最后 w 命令保存更改
Command (m for help): w
依次执行:
fdisk /dev/sdb
fdisk /dev/sdd
fdisk /dev/sdc
fdisk /dev/sdf
fdisk /dev/sde
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add",KERNEL=="/dev/sdb1",RUN+='/bin/raw /dev/raw/raw1 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add",KERNEL=="/dev/sdc1",RUN+='/bin/raw /dev/raw/raw2 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"
ACTION=="add",KERNEL=="/dev/sdd1",RUN+='/bin/raw /dev/raw/raw3 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw /dev/raw/raw3 %M %m"
ACTION=="add",KERNEL=="/dev/sde1",RUN+='/bin/raw /dev/raw/raw4 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw /dev/raw/raw4 %M %m"
ACTION=="add",KERNEL=="/dev/sdf1",RUN+='/bin/raw /dev/raw/raw5 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="81",RUN+="/bin/raw /dev/raw/raw5 %M %m"
ACTION=="add",KERNEL=="raw[1-5]",OWNER="grid",GROUP="asmadmin",MODE="660"
在RAC1和RAC2执行下同步命令:partprobe
执行这个命令查看下:ll /dev/raw/raw*
查看裸盘信息:
[root@rac2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
├─sda2 8:2 0 3.9G 0 part [SWAP]
└─sda3 8:3 0 35.1G 0 part /
sdb 8:16 0 19.5G 0 disk
└─sdb1 8:17 0 19.5G 0 part
sdc 8:32 0 19.5G 0 disk
└─sdc1 8:33 0 19.5G 0 part
sdd 8:48 0 29.3G 0 disk
└─sdd1 8:49 0 29.3G 0 part
sde 8:64 0 19.5G 0 disk
└─sde1 8:65 0 19.5G 0 part
sdf 8:80 0 19.5G 0 disk
└─sdf1 8:81 0 19.5G 0 part
sr0 11:0 1 4.2G 0 rom
挂载光驱
mount /dev/sr0 /media/CentOS_6.5_Final (参考命令:mount /dev/cdrom /mnt/cdrom/ )
vi /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///media/CentOS_6.5_Final
gpgcheck=0
enabled=1
:wq!
安装依赖包:
[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
yum install binutils-2* compat-libcap1-1* compat-libstdc* gcc-4* gcc-c++-4* glibc-2* glibc-devel-2* libgcc-4* libstdc++-4* libstdc++-devel-4* libaio-0* libaio-devel-0* make-3* sysstat-9* -y
mv /etc/yum.repos.d/CentOS-Base.repo /root
mv /etc/yum.repos.d/CentOS-Debuginfo.repo /root
mv /etc/yum.repos.d/CentOS-Media.repo /root
mv /etc/yum.repos.d/CentOS-Vault.repo /root
cp /root/CentOS-Base.repo /etc/yum.repos.d
cp /root/CentOS-Debuginfo.rep /etc/yum.repos.d
cp /root/CentOS-Media.repo /etc/yum.repos.d
cp /root/CentOS-Vault.repo /etc/yum.repos.d
yum install -y glibc-devel-2.12-1.209.el6_9.2.i686
yum install -y libstdc++-4.4.7-18.el6.i686
yum install -y glibc.i686 glibc.x86_64
yum install -y elfutils-libelf-devel.i686
yum install -y elfutils-libelf*
进grid下面安装
cvuqdisk包
xhost + #使所有用户都能访问图形桌面,这步需要在图形界面操作
date -s 18:00:00
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
---------------------------------------------------------
/u01/app/11.2.0/grid/crs/install/crsconfig_params
[root@rac1 grid]# /u01/app/11.2.0/grid/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/11.2.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
y Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2017-08-03 18:31:49: Parsing the host name
2017-08-03 18:31:49: Checking for super user privileges
2017-08-03 18:31:49: User has super user privileges
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
CRS is already configured on this node for crshome=0
Cannot configure two CRS instances on the same cluster.
Please deconfigure before proceeding with the configuration of new home.
[root@rac1 grid]#
卸载命令
$GRID_HOME/crs/install/roothas.pl -delete -force -verbose
/u01/app/11.2.0/grid/crs/install/rootcrs.pl -delete -force -verbose
Existing OCR configuration found, aborting the configuration. Rerun configuration setup after deinstall at /u01/app/11.2.0/grid/crs/install/crsconfig_lib.pm line 10302.
确定RAC是否OK
su - grid
crsctl status resource -t