Created
January 20, 2014 02:51
-
-
Save kevinbin/8514110 to your computer and use it in GitHub Desktop.
oracle install script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
#set -x | |
#define oracle install dir | |
oracle_dir="" | |
if [ -z $oracle_dir ];then | |
echo "your need define oracle install PATH,please open this setting oracle_dir variables" | |
exit 0 | |
fi | |
[ -d $oracle_dir/app ] || mkdir -p /$oracle_dir/app | |
[ -d $oracle_dir/tmp ] || mkdir -p /$oracle_dir/tmp | |
echo "Create dir $oracle_dir/app $oracle_dir/tmp" | |
#Echo text color | |
function cecho () | |
{ | |
export red='\E[31m\c' | |
export green='\E[32m\c' | |
export white='\E[37m\c' | |
message=$1 | |
color=${2:-$white} | |
echo -e "$color" | |
echo -e "$message" | |
tput sgr0 | |
echo -e "$white" | |
return | |
} | |
#Check rpm package installed | |
rpm -q ksh compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel | grep "not installed" | |
if [ $? -eq 0 ];then | |
exit 0 | |
fi | |
#Add system variables in the /etc/sysctl.conf | |
cat /etc/sysctl.conf | grep "^kernel.shmall" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^kernel.shmall = .*/kernel.shmall = 2097152/' /etc/sysctl.conf | |
else | |
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^kernel.shmmax" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^kernel.shmmax = .*/kernel.shmmax = 2147483648/' /etc/sysctl.conf | |
else | |
echo "kernel.shmmax = 2147483648" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^kernel.shmmni" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^kernel.shmmni = .*/kernel.shmmni = 4096/' /etc/sysctl.conf | |
else | |
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^kernel.sem" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^kernel.sem = .*/kernel.sem = 250 32000 100 128/' /etc/sysctl.conf | |
else | |
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^fs.file-max" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^fs.file-max = .*/fs.file-max = 65536/' /etc/sysctl.conf | |
else | |
echo "fs.file-max = 65536" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^net.ipv4.ip_local_port_range" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^net.ipv4.ip_local_port_range = .*/net.ipv4.ip_local_port_range = 1024 65000/' /etc/sysctl.conf | |
else | |
echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^net.core.rmem_default" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^net.core.rmem_default = .*/net.core.rmem_default = 4194304/' /etc/sysctl.conf | |
else | |
echo "net.core.rmem_default = 4194304" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^net.core.rmem_max" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^net.core.rmem_max = .*/net.core.rmem_max = 4194304/' /etc/sysctl.conf | |
else | |
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^net.core.wmem_default" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^net.core.wmem_default = .*/net.core.wmem_default = 262144/' /etc/sysctl.conf | |
else | |
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf | |
fi | |
cat /etc/sysctl.conf | grep "^net.core.wmem_max" > /dev/null | |
if [ $? -eq 0 ];then | |
sed -i 's/^net.core.wmem_max = .*/net.core.wmem_max = 262144/' /etc/sysctl.conf | |
else | |
echo "net.core.wmem_max = 262144" >> /etc/sysctl.conf | |
fi | |
/sbin/sysctl -p > /dev/null | |
if [ $? -ne 0 ];then | |
cecho "\c" | |
cecho "Edir sysctl.conf failure" $red | |
cecho "\c" | |
exit 0 | |
else | |
cecho "\c" | |
cecho "Edir sysctl.conf sucessfull" $green | |
cecho "\c" | |
fi | |
#Create user and group | |
cat /etc/group | grep oinstall > /dev/null | |
if [ $? -ne 0 ];then | |
groupadd oinstall | |
cecho "\c" | |
cecho "add group oinstall" $green | |
cecho "\c" | |
fi | |
cat /etc/group | grep dba > /dev/null | |
if [ $? -ne 0 ];then | |
groupadd dba | |
cecho "\c" | |
cecho "add group dba" $green | |
cecho "\c" | |
fi | |
cat /etc/passwd | grep oracle > /dev/null | |
if [ $? -ne 0 ];then | |
useradd -g oinstall -G dba oracle > /dev/null 2>&1 | |
cecho "\c" | |
cecho "add user oracle" $green | |
cecho "\c" | |
fi | |
passwd oracle | |
chown -R oracle:oinstall $oracle_dir/app/ | |
chown -R oracle:oinstall $oracle_dir | |
chmod -R 775 $oracle_dir/app/ | |
chmod a+wr $oracle_dir/tmp | |
#Add variables in the /etc/security/limits.conf | |
cat /etc/security/limits.conf | grep "oracle soft nproc 2047" > /dev/null 2>&1 | |
if [ $? -ne 0 ];then | |
echo "oracle soft nproc 2047" >> /etc/security/limits.conf | |
fi | |
cat /etc/security/limits.conf | grep "oracle hard nproc 16384" > /dev/null 2>&1 | |
if [ $? -ne 0 ];then | |
echo "oracle hard nproc 16384" >> /etc/security/limits.conf | |
fi | |
cat /etc/security/limits.conf | grep "oracle soft nofile 1024" > /dev/null 2>&1 | |
if [ $? -ne 0 ];then | |
echo "oracle soft nofile 1024" >> /etc/security/limits.conf | |
fi | |
cat /etc/security/limits.conf | grep "oracle hard nofile 65536" > /dev/null 2>&1 | |
if [ $? -ne 0 ];then | |
echo "oracle hard nofile 65536" >> /etc/security/limits.conf | |
fi | |
cat /etc/security/limits.conf | grep "nofile" > /dev/null | |
if [ $? -eq 0 ];then | |
cecho "\c" | |
cecho "Add variables in the /etc/security/limits.conf " $green | |
cecho "\c" | |
fi | |
#Add variables in the /etc/profile | |
cat /etc/profile | grep oracle > /dev/null | |
if [ $? -ne 0 ];then | |
echo " if [ \$USER = "oracle" ];then " >> /etc/profile | |
echo " if [ \$SHELL = "/bin/ksh" ];then" >> /etc/profile | |
echo " ulimit -p 16384" >> /etc/profile | |
echo " ulimit -p 65536" >> /etc/profile | |
echo " else" >> /etc/profile | |
echo " ulimit -u 16384 -n 65536" >> /etc/profile | |
echo "fi" >> /etc/profile | |
echo "fi" >> /etc/profile | |
fi | |
cecho "\c" | |
cecho "Add variables in the /etc/profile " $green | |
cecho "\c" | |
#Add env variables in the /home/oracle/.bash_profile | |
sed -i '2i\umask 022' /home/oracle/.bash_profile | |
sed -i "3i\TMP=$oracle_dir/tmp" /home/oracle/.bash_profile | |
sed -i "4i\TMPDIR=$oracle_dir/tmp" /home/oracle/.bash_profile | |
sed -i '5i\export TMP TMPDIR' /home/oracle/.bash_profile | |
echo "export ORACLE_BASE=$oracle_dir/app/oracle" >> /home/oracle/.bash_profile | |
echo "export ORACLE_HOME=\$ORACLE_BASE/product/11.1.0/db_1" >> /home/oracle/.bash_profile | |
echo "export ORA_CRS_HOME=\$ORACLE_BASE/crs" >> /home/oracle/.bash_profile | |
echo "export ORACLE_PATH=\$ORALCE_BASE/common/oracle/sql:.:\$ORACLE_HOME/rdbms/admin" >> /home/oracle/.bash_profile | |
echo "export ORACLE_SID=orcl" >> /home/oracle/.bash_profile #输入你的实例名 | |
echo "export PATH=\$ORACLE_HOME/bin:\$ORA_CRS_HOME/bin:\${PATH}:\$HOME/bin" >> /home/oracle/.bash_profile | |
echo "export PATH=\${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin" >> /home/oracle/.bash_profile | |
echo "export PATH=\${PATH}:\$ORACLE-BASE/common/oracle/bin" >> /home/oracle/.bash_profile | |
echo "export ORACLE_TERM=xterm" >> /home/oracle/.bash_profile | |
echo "export TNS_ADMIN=\$ORACLE_HOME/network/admin" >> /home/oracle/.bash_profile | |
echo "export ORA_NLS10=\$ORACLE_HOME/nls/data" >> /home/oracle/.bash_profile | |
echo "export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib:\$ORACLE_HOME/oracm/lib:/\$ORACLE_HOME/lib" >> /home/oracle/.bash_profile | |
echo "export LIBPATH=\$LIBPATH:\$ORA_CRS_HOME/lib:/\$ORACLE_HOME/lib" >> /home/oracle/.bash_profile | |
echo "export CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/rdbms/jlib:\$ORACLE_HOME/jlib:\$ORACLE_HOME/network/jlib:\$ORACLE_HOME/JRE" >> /home/oracle/.bash_profile | |
echo "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK" >> /home/oracle/.bash_profile | |
echo "export LANG=AMERICAN_AMERICA.ZHS16GBK" >> /home/oracle/.bash_profile | |
echo "export DISPLAY=:0.0" >> /home/oracle/.bash_profile |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment