每次安装oracle11g前期重复的工作让我十分讨厌,所以编写了一个前期准备工作的脚本,跑完此脚本后,直接就可以安装oracle介质了!!
注意:
此脚本是在redhat6.4下编写的,脚本中标红的地方,可根据自己的环境修改,依赖包是通过本地yum安装的!
—————————————脚本开始—————————————
#!/bin/sh
cat <<EOF > /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=DB88
EOF
hostname DB88
cat <<EOF > /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.88 DB88
EOF
`sed -i ‘s/ONBOOT=no/ONBOOT=yes/g‘ /etc/sysconfig/network-scripts/ifcfg-eth0`
service iptables stop
setenforce 0
`sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config`
mount -o loop /dev/cdrom /mnt
rm -rf /etc/yum.repos.d/*
cat <<EOF > /etc/yum.repos.d/server.repo
[server]
name=server
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF
yum -y install binutils-* \
compat-libstdc++-* \
compat-libcap1-* \
elfutils-libelf-* \
elfutils-libelf-devel-* \
gcc* \
gcc-c++-* \
glibc* \
glibc-common-* \
glibc-devel-* \
glibc-headers-* \
ksh-* \
libaio-* \
libaio-devel-* \
libgcc-* \
libstdc++-* \
libstdc++-devel* \
make-* \
sysstat-* \
unixODBC-* \
unixODBC-devel-* \
numactl-devel-* \
pdksh-* \
kernel-headers* \
wget
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "oracle" | passwd --stdin oracle
echo "umask 022" >>/home/oracle/.bash_profile
echo "stty erase ^H" >>/home/oracle/.bash_profile
echo "PATH=\$PATH:\$HOME/bin" >>/home/oracle/.bash_profile
echo "TMP=/tmp" >>/home/oracle/.bash_profile
echo "TMPDIR=\$TMP" >>/home/oracle/.bash_profile
echo "ORACLE_BASE=/home/oracle/app/oracle" >>/home/oracle/.bash_profile
echo "ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db_1" >>/home/oracle/.bash_profile
echo "ORACLE_SID=ecom" >>/home/oracle/.bash_profile
echo "ORACLE_TERM=xterm" >>/home/oracle/.bash_profile
echo "PATH=\$PATH:\$HOME/bin:\$ORACLE_HOME/bin" >>/home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib" >>/home/oracle/.bash_profile
echo "CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib" >>/home/oracle/.bash_profile
echo ‘NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"‘>>/home/oracle/.bash_profile
echo "NLS_LANG=AMERICAN_AMERICA.ZHS16GBK" >>/home/oracle/.bash_profile
echo "export EDITOR=vi" >>/home/oracle/.bash_profile
echo "export TMP TMPDIR ORACLE_TERM CLASSPATH NLS_DATE_FORMAT ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH NLS_LANG EDITOR" >>/home/oracle/.bash_profile
mkdir -p /home/oracle/app/oracle
chmod -R 777 /home/oracle/app/oracle
chown -R oracle.oinstall /home/oracle
cd /tmp
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip
rm -rf p10404530_112030_Linux-x86-64_1of7.zip p10404530_112030_Linux-x86-64_2of7.zip
chmod -R 777 /tmp/database
chown -R oracle.oinstall /tmp/database
echo "Now modify the /etc/security/limits.conf,but backup it named /etc/security/limits.conf.bak before"
cp /etc/security/limits.conf /etc/security/limits.conf.bak
echo "oracle soft nproc 2047" >>/etc/security/limits.conf
echo "oracle hard nproc 16384" >>/etc/security/limits.conf
echo "oracle soft nofile 1024" >>/etc/security/limits.conf
echo "oracle hard nofile 65536" >>/etc/security/limits.conf
echo "grid soft nproc 2047" >>/etc/security/limits.conf
echo "grid hard nproc 16384" >>/etc/security/limits.conf
echo "grid soft nofile 1024" >>/etc/security/limits.conf
echo "grid hard nofile 65536" >>/etc/security/limits.conf
echo "Modifing the /etc/security/limits.conf has been succeed."
echo "Now modify the /etc/pam.d/login,but with a backup named /etc/pam.d/login.bak"
cp /etc/pam.d/login /etc/pam.d/login.bak
echo "session required /lib/security/pam_limits.so" >>/etc/pam.d/login
echo "session required pam_limits.so" >>/etc/pam.d/login
echo "Modifing the /etc/pam.d/login has been succeed."
echo "Now modify the /etc/profile,but with a backup named /etc/profile.bak"
cp /etc/profile /etc/profile.bak
echo ‘if [ $USER = "oracle" ]||[ $USER = "grid" ]; then‘ >> /etc/profile
echo ‘if [ $SHELL = "/bin/ksh" ]; then‘ >> /etc/profile
echo ‘ulimit -p 16384‘ >> /etc/profile
echo ‘ulimit -n 65536‘ >> /etc/profile
echo ‘else‘ >> /etc/profile
echo ‘ulimit -u 16384 -n 65536‘ >> /etc/profile
echo ‘fi‘ >> /etc/profile
echo ‘fi‘ >> /etc/profile
echo "Modifing the /etc/profile has been succeed."
echo "Now modify the /etc/sysctl.conf,but with a backup named /etc/sysctl.bak"
cp /etc/sysctl.conf /etc/sysctl.conf.bak
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
echo "kernel.shmmax = 1054472192" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 262144 262144 262144" >> /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4194304 4194304 4194304" >> /etc/sysctl.conf
echo "Modifing the /etc/sysctl.conf has been succeed."
echo "Now make the changes take effect....."
sysctl -p