#
!/bin/bash
#############################################################
#时间:2016/12/01 by
pjwonline@qq.com该文档为脚本性质,可以直接复制使用 #
#该文档测试环境 SUSE.LES.11.SP4 & ORACLE.11G.RAC & SINGLE.DATAGUARD #
#RHEL 与 SLES 的重大区别如下:(官方只支持四种发行版,其他三种和RHEL相同)#
#1.软件包 RHEL:yum SLES:zypper #
#2.MAC系统 RHEL:SELINUX SLES:
Apparmor #
#3.时间服务 RHEL:/etc/sysconfig/ntpd SLES:/etc/sysconfig/ntp #
#4.主机名 RHEL:/etc/sysconfig/network SLES:/etc/HOSTNAME #
#5.环境变量 RHEL:/home/oracle/.bash_profile SLES:/home/oracle/.profile #
#6.UDEV RHEL:/etc/udev/rules.d/ SLES:/lib/udev/rules.d/ #
#7.裸设备 RHEL:service rawdevices SLES:service raw #
#8.启动文件 RHEL:/etc/rc.local SLES:/etc/init.d/boot.local #
#############################################################
#安装系统时需要安装 C/C++ 编译器和工具,并选择使用 gnome,为了
节省资源
将终端运行等级改为3(/etc/inittable)
#开启 gnome
远程桌面,为了实现后面的图形化安装,本教程
必须开启远程桌面(仅适用SLES,RHEL略)
#vim /etc/sysconfig/displaymanager
#DISPLAYMANAGER_REMOTE_ACCESS=
yes
#DISPLAYMANAGER_ROOT_LOGIN_REMOTE=
yes
#
方法一:(手动连接远程桌面,本教程推荐 静默 安装方式)
# gdm
#用xmanager的XDMCP连接
#
方法二:(传送 gnome 窗口至客户端,不推荐)
# xhost + &&export LANG=zh_CN.UTF-8 &&gnome
# ctrl + c 退出
#
查看系统版本
uname -a
cat/etc/issue
#干扰因素
#
禁用MAC(强制访问控制)系统(安装系统时
不要装)
#RHEL:
setenforce 0
#SLES:
#ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
ln -s
#/etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/
#apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
#apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper
#
禁用防火墙(安装系统时不要装)
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
#
关闭 NTP网络时间协议(重要!如果使用 NTP 做时间同步可以跳过该步骤)
#关闭 NTP 才能让 Oracle 集群
时间同步服务 CTSS 正常启动
# ORACLE 检测到 NTP 的配置文件都无法启动 CTSS(必须
清理干净)
service ntp stop
chkconfig ntp off
mv /etc/sysconfig/ntp /etc/sysconfig/ntp.bak
mv /etc/ntp.conf /etc/ntp.conf.bak
mv /var/run/ntpd.pid /var/run/ntpd.pid.bak
#
磁盘空间规划
#系统一般需要空间(/boot 引导空间需要 200M,系统文件需要 4G,交换空间设置为 4G)
#主节点需要至少 19G 的 Avail 剩余空间,其他节点剩余空间 ORACLE 要求: CRS 7.5G + DB 4.8G
#物理内存 8G(涉及 shm),装完后磁盘用量: CRS 3.9G,DB 4.3G
,+CRS 263M
, +DATA 2G
#
检查剩余磁盘空间
df -Th
#
检测 Swap 分区(
ORACLE 要求和物理内存大小相同,一般安装系统时习惯设置为内存的1.5倍或2倍大小)
#这里为了节省设备资源,这里暂时设置为
4096000 4G,请按需修改,关系后期 DBCA -totalMemory 参数
free
#扩展 Swap 分区
#swapoff /swap
#rm -f /swap
#dd if=/dev/zero of=/swap bs=1024 count=4096000
#mkswap /swap
#swapon /swap
#
解决环境依赖(上面 yum 是RHEL,下面是 SLES zypper,请插入系统光盘)
#yum -y install --skip-broken binutils compat-libstdc++-33 compat-libstdc++ elfutils-libelf
elfutils-libelf-devel gcc gcc-c++ glibc glibc glibc-common glibc-devel glibc-devel glibc-
headers ksh libaio libaio libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++
libstdc++-devel numactl-devel make sysstat unixODBC unixODBC unixODBC-devel unixODBC-devel
libaio-devel sysstat java firefox
zypper --non-interactive install sysstat* libgcc* libstdc* libaio* glibc* gcc* ksh* make* libcap* lrzsz
#检查包命令
#rpm -qa | grep rzsz
#zypper search rzsz
# 下载地址(http://download.csdn.net/detail/pjwonline1/9700939)
# ldconfig -p | grep libreadline
tar -zxvf readline-7.0.tar.gz &&cdreadline-7.0
&&./configure
&&make install
&& cd ..
&&
tar -zxvf rlwrap-0.42.tar.gz
&&cdrlwrap-0.42 &&./configure &&make install
&&cd .. &&rm -rf rlwrap* &&
rm -rf readline* && ldconfig && rlwrap
#rsqlplus
#rrman
#rasmcmd
#
内核参数
#查看
内核参数,现有系统参数大于要修改参数的不要改(也可以跳过,先决检查时可以用修复脚本调整)
sysctl -a | grep
XXX
#修改内核参数
cat>>/etc/sysctl.conf<<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall = 2097152
#kernel.shmmax = 2147483648
#kernel.shmmni = 4096
kernel.sem = 250 256000 100 1024
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
#立即应用内核参数
sysctl -p
#
新建组与用户
groupadd -g 500 dba
groupadd -g 501 oper
groupadd -g 502 oinstall
groupadd -g 503 asmdba
groupadd -g 504 asmoper
groupadd -g 505 asmadmin
useradd -m -u 600 -g oinstall -G dba,asmdba,asmadmin,asmoperoracle
useradd -m -u 601 -g oinstall -G dba
,oper,asmdba,asmadmin grid
echo
oracle|passwd--stdinoracle
echo
grid|passwd--stdingrid
#验证用户
idoracle&&idgrid
#
优化资源限制
cat >>/etc/security/limits.conf<<EOF
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
echo '
session required pam_limits.so
' >> /etc/pam.d/login
cat >> /etc/profile <<EOF
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
EOF
#
目录 及 权限
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
#mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
#IP规划 (需要设置 Public IP 和Private IP,其他 IP 都是由 ORACLE 设置的)
mv /etc/hosts /etc/hosts.bak
cat > /etc/hosts <<EOF
127.0.0.1 localhost
# Public IP(eth0)
192.168.1.91
rac1
192.168.1.92
rac2
#PublicVirtual IP(eth
0:
1)
192.168.1.93
rac1-vip
192.168.1.94
rac2-vip
# Private IP(eth1)
192.168.99.1
rac1-priv
192.168.99.2
rac2-priv
# Single Client Access NameVirtuaIP(eth0:2)
192.168.1.95
rac-cluster-scan
EOF
#测试 hosts 文件是否生效(这里因为还没有其他节点设备,可以跳过,后面建立对等性时会测试)
#ping -c3 rac1 && ping
-c3rac2 && ping
-c3
rac1-priv && ping
-c3
rac2-priv
echo '
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_TERM=xterm
export THREADS_FLAG=native
export ORACLE_SID=rac
1
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=
$ORACLE_BASE/product/11.2.0/db_1
export PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
#export DISPLAY=:0.0
export LANG=zh_CN.UTF-8
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.
AL32UTF8"
alias rrman="rlwrap rman target /"
'
>/home/oracle/.bash_profile
echo '
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_TERM=xterm
export THREADS_FLAG=native
export ORACLE_SID=+ASM
1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORA_CRS_HOME=$ORACLE_HOME
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS11=$ORACLE_HOME/nls/data
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:$ORACLE_HOME/network/jlib
#export DISPLAY=:0.0
export LANG=zh_CN.UTF-8
export CVUQDISK GRP=oinstall
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA
.
AL32UTF8"
alias rasmcmd="rlwrap asmcmd"
'>/home/grid/.bash_profile