共计 8538 个字符,预计需要花费 22 分钟才能阅读完成。
这篇文章主要介绍“Oracle11R2 RAC 的搭建过程”,在日常操作中,相信很多人在 Oracle11R2 RAC 的搭建过程问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle11R2 RAC 的搭建过程”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
一:禁用 selinux
vi /etc/sysconfig/selinux
SELINUX=enforcing # 将此处修改为 SELINUX=disabled
二:关闭防火墙
# /etc/rc.d/init.d/iptables stop
Flushing firewall rules: [OK]
Setting chains to policy ACCEPT: filter [OK]
Unloading iptables modules: [OK]
然后,针对下一次服务器重新引导关闭 UDP ICMP 拒绝(应该始终被关闭):
# chkconfig iptables off
重新启动操作系统
# init 6
验证结果
# /etc/rc.d/init.d/iptables status
Firewall is stopped.
# getenforce
Disabled
cd /etc/sysconfig/network-script/
vi ifcfg-eth0
IPADDR=192.168.56.120
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
vi ifcfg-eth2
IPADDR=192.168.0.110
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
三:编辑 HOSTS
#public ip
192.168.56.120 linux1
192.168.56.123 linux2
#virtual ip
192.168.56.121 linux1-vip
192.168.56.124 linux2-vip
#private ip
192.168.0.110 linux1-priv
192.168.0.111 linux2-priv
#scan ip
192.168.56.125 linux-scan
四:挂载 yum 源
mount /dev/cdrom /media
[rhe16]
name=rhe16
baseurl=file:///media/Server
enabled=1
gpgcheck=0
gpgkey-file:///media/RPM-GPG-KEY-redhat-release
五:安装依赖包
yum install compat-libstdc++-33 glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-devel gcc-c++
yum install binutils compat-db compat-libstdc++-296 control-center gcc gcc-c++ glibc glibc-common libstdc++ libstdc++-devel make sysstat setarch glibc-devel libaio ksh glibc-headers libgnome libgcc libgnomeui libgomp openmotif libXp
六:创建用户和组
groupadd -g 500 oinstall
groupadd -g 501 dba
groupadd -g 503 asmadmin
groupadd -g 504 asmoper
groupadd -g 505 asmdba
useradd -u 500 -g oinstall -G dba,asmdba oracle
useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
七:创建文件路径
(1) 创建 inventor 路径
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app
(2) 创建 GI 主目录
mkdir -p /u01/11.2.0/grid
mkdir -p /u01/grid/11.2.0/crs_1
chown -R grid:oinstall /u01/11.2.0
chmod -R 775 /u01/11.2.0
(3) 创建数据库主目录
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/cfgtoollogs
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
(4) 创建数据库软件主目录
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle/product
chmod -R 775 /u01/app/oracle/product
八:创建用户环境变量
修改 gird 和 Oracle 用户的.bash_profile 文件
oracle:
# Oracle DB 11g Environment
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl1
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA. AL32UTF8
export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/RDBMS/lib:/lib:/usr/lib
export ORACLE_DOC=$ORACLE_HOME/doc
export SQLPATH=$ORACLE_HOME/dbs
export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH:/usr/vacpp/bin:/usr/ccs/bin
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export TMP=/tmp
export TMPDIR=$TMP
export NLS_DATE_FORMAT= yyyy-mm-dd hh34:mi:ss
export NLS_TIMESTAMP_FORMAT= yyyy-mm-dd hh34:mi:ss.ff
export NLS_TIMESTAMP_TZ_FORMAT= yyyy-mm-dd hh34:mi:ss.ff
export EDITOR=vi
grid:
# Oracle DB 11g Environment
export ORACLE_BASE=/u01/11.2.0/grid
export ORACLE_HOME=/u01/grid/11.2.0/crs_1
export ORACLE_SID=+ASM1
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA. AL32UTF8
export ORA_NLS10=$ORACLE_HOME/nls/data
export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/RDBMS/lib:/lib:/usr/lib
export ORACLE_DOC=$ORACLE_HOME/doc
export SQLPATH=$ORACLE_HOME/dbs
export PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH:/usr/vacpp/bin:/usr/ccs/bin
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export TMP=/tmp
export TMPDIR=$TMP
export NLS_DATE_FORMAT= yyyy-mm-dd hh34:mi:ss
export NLS_TIMESTAMP_FORMAT= yyyy-mm-dd hh34:mi:ss.ff
export NLS_TIMESTAMP_TZ_FORMAT= yyyy-mm-dd hh34:mi:ss.ff
export EDITOR=vi
九:修改参数
修改内核参数 /etc/sysctl.conf
sed -i s/kernel.shmmax/#kernel.shmmax/g /etc/sysctl.conf
sed -i s/kernel.shmall/#kernel.shmall/g /etc/sysctl.conf
cat /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
EOF
修改 oracle 用户限制
cat /etc/security/limits.conf oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
EOF
修改 vi /etc/pam.d/login
session required /lib/security/pam_limits.so
(pam.d 指的是验证登陆配置,login 是登陆配置文件。)
配置 /etc/profile
if [$USER = oracle]||[$USER = grid]; then
if [$SHELL = /bin/ksh]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
十:增加 swap 空间
1. 检查 swap 大小和硬盘空间 free - m 查看内存和 swap | df - h 查看硬盘空间,得有 2.7G 的空间才可以
2. 添加交换文件
mkdir -p /opt/temp
dd if=/dev/zero of=/opt/temp/swap bs=1024 count=2048000 – 这个是 2G
3. 创建交换空间
mkswap /opt/temp/swap
4. 启动新增加的 2G 交换空间
swapon /opt/temp/swap
5. 修改 /etc/fstab, 使新加的 2G 交换空间在系统重新启动后自动生效
echo /opt/temp/swap swap swap defaults 0 0 /etc/fstab
十二:建立信任机制 (两个节点操作)
在 oracle 和 grid 用户下建立.ssh 文件夹
生成密钥对
mkdir .ssh
chmod 755 .ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
全部回车键
cat .ssh/*.pub .ssh/authorized_keys
ssh oracle@lzl cat ~/.ssh/*.pub ~/.ssh/authorized_keys
ssh oracle@yq cat ~/.ssh/*.pub ~/.ssh/authorized_keys
ssh grid@lzl cat ~/.ssh/*.pub ~/.ssh/authorized_keys
ssh grid@yq cat ~/.ssh/*.pub ~/.ssh/authorized_keys
exec ssh-agent $SHELL
ssh-add
验证是否成功
相互 ssh node1 date
相互 ssh node2 date
相互 ssh node1-priv date
相互 ssh node2-priv date
十三:UDEV 共享存储
1.
# 首先确认是 Linux 6.0 以上版本
[root@vrh7 dev]# cat /etc/issue
Oracle Linux Server release 6.2
Kernel \r on an \m
2.
# 添加记录到 /etc/scsi_id.config
echo options=–whitelisted –replace-whitespace /etc/scsi_id.config
3.
# 确认哪些块设备需要 udev 绑定
[root@vrh7 dev]# ls -l sd*
brw-rw—-. 1 root disk 8, 0 Jun 30 09:29 sda
brw-rw—-. 1 root disk 8, 1 Jun 30 09:29 sda1
brw-rw—-. 1 root disk 8, 2 Jun 30 09:29 sda2
brw-rw—-. 1 root disk 8, 16 Jun 30 09:29 sdb
brw-rw—-. 1 root disk 8, 32 Jun 30 09:29 sdc
brw-rw—-. 1 root disk 8, 48 Jun 30 09:29 sdd
brw-rw—-. 1 root disk 8, 64 Jun 30 09:29 sde
brw-rw—-. 1 root disk 8, 80 Jun 30 09:29 sdf
例如在本实例中 sdb- sdf 的块设备需要绑定
4. 将 b- f 的编号放入 for 循环中,例如:
# AUTO UDEV RULE BY Maclean Liu 2012/06/30
for i in b c d e ;
do
echo KERNEL==\ sd*\ , BUS==\ scsi\ , PROGRAM==\ /sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/\$name\ , RESULT==\ `/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sd$i`\ , NAME=\ asm-disk$i\ , OWNER=\ grid\ , GROUP=\ asmadmin\ , MODE=\ 0660\
done
就会生成 sdb- sdf 设备绑定的 RULE,在将这些 RULE 写入到 /etc/udev/rules.d/99-oracle-asmdevices.rules 中
也可以直接利用以下脚本,写出 RULE 到 99-oracle-asmdevices.rules
# AUTO UDEV RULE BY Maclean Liu 2012/06/30
for i in f g h;
do
echo KERNEL==\ sd*\ , BUS==\ scsi\ , PROGRAM==\ /sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/\$name\ , RESULT==\ `/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sd$i`\ , NAME=\ asm-disk$i\ , OWNER=\ grid\ , GROUP=\ asmadmin\ , MODE=\ 0660\ /etc/udev/rules.d/99-oracle-asmdevices.rules
done
5. 之后运行用 root 运行 /sbin/start_udev 即可
十四:安装 cvuqdisk 软件包
rpm -ivh cvuqdisk-1.0.7-1.rpm
cat /etc/ntp.conf EOF
restrict 0.0.0.0 mask 0.0.0.0 nomodify
server 127.127.1.0
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
EOF
十五:安装前检查
1、安装前检查
./runcluvfy.sh stage -pre crsinst -n linux1,linux2 -verbose
2、检查网络和等效性
./runcluvfy.sh comp nodecon -n rac1,rac2 -verbose
3、安装
./runInstaller
到此,关于“Oracle11R2 RAC 的搭建过程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!