oracle静默安装脚本

oracle一键安装脚本
#创建脚本
[root@oracledb ~]# vim oracle_install.sh
#!/bin/bash
#linux无图形化一键安装脚本 -ne:不等于

$#表示所有参数的个数

if [ $# -ne 1 ]
then
echo “usage:$0 主机名,如:$0 oracledb”
exit 2
fi

echo “#######################”
echo “# 自动安装部署oracle #”
echo “#######################”

#检测oracle11g安装包位置
echo “正在查询oracle安装包路径…”
file1=linux.x64_11gR2_database_1of2.zip
file2=linux.x64_11gR2_database_2of2.zip

file1_path=
find / -type f -name $file1 -size +1G

if [ $? -ne 0 ]
then
echo “未找到oracle安装包linux.x64_11gR2_database_1of2.zip”
exit 1
fi
file2_path=
find / -type f -name $file2 -size +1G

if [ $? -ne 0 ]
then
echo “未找到oracle安装包linux.x64_11gR2_database_2of2.zip”
exit 1
fi
echo “查找安装包成功”

file1_dir=KaTeX parse error: Expected '}', got 'EOF' at end of input: …64*}
file2_dir={file2_path%linux.x64*}
echo $file1_dir
echo $file2_dir

#修改主机名
myhostname=$1
hostnamectl set-hostname myhostnameecho”主机名已修改为:myhostname
echo “主机名已修改为:myhostnameecho”主机名已修改为:myhostname”

#修改hosts文件
#<<:输入;>>:输出 。 << EOF >> /etc/hosts 即把 << 输入的结果传给 >> 输出到 hosts文件中
cat << EOF >> /etc/hosts
127.0.0.1 $myhostname
EOF

#关闭selinux
sed -i “s/SELINUX=enforcing/SELINUX=disabled/” /etc/selinux/config
setenforce 0

echo “已关闭selinux”

#创建用户和组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo ‘oracle’ | passwd –stdin oracle
usermod -a -G wheel oracle
id oracle

#创建相应安装目录
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/recovery_data
chown -R oracle:oinstall /u01/app/
chmod -R 755 /u01/app/

#修改系统内核参数
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat << EOF >> /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100128
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 = 1048576
EOF

sysctl -p

#调整会话限制
cp /etc/pam.d/login /etc/pam.d/login.bak
cat << EOF >> /etc/pam.d/login
session required pam_limits.so
EOF

#调整进程数与最大文件句柄数
cp /etc/security/limits.conf /etc/security/limits.conf.bak
cat << EOF >> /etc/security/limits.conf
oracle soft nproc 10000
oracle hard nproc 16384
oracle soft nofile 52768
oracle hard nofile 6553
root soft nproc 2047
root hard nproc 16384
root soft nofile 1024
root hard nofile 65536
EOF

#oracle用户变量
cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
cat << EOF >> /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=dg1
export LANG=en_US.UTF-8
EOF

#添加全局变量
cp /etc/profile /etc/profile.bak
cat << EOF >> /etc/profile
export PATH=$PATH:/u01/app/oracle/product/11.2.0/db_1/bin
EOF

source /etc/profile
source /home/oracle/.bash_profile

#安装依赖包
yum -y install gcc gcc-c++ make binutils compat-libcap1 compat-libstdc+±33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc+±devel unixODBC unixODBC-devel ksh

#解压oracle11g
mkdir /oracle_software
unzip file1dir/file1_dir/file1d​ir/file1 -d /oracle_software
unzip file2dir/file2_dir/file2d​ir/file2 -d /oracle_software
oracle_unzip_dir=/oracle_software/database

#修改KaTeX parse error: Expected 'EOF', got '#' at position 42: …db_install.rsp
#̲修改oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.option=./oracle.install.option=INSTALL_DB_SWONLY/g’ oracleunzipdir/response/dbinstall.rspsed−i”s/ORACLEHOSTNAME=.∗/ORACLEHOSTNAME=oracle_unzip_dir/response/db_install.rsp
sed -i “s/ORACLE_HOSTNAME=.*/ORACLE_HOSTNAME=oracleu​nzipd​ir/response/dbi​nstall.rspsed−i”s/ORACLEH​OSTNAME=.∗/ORACLEH​OSTNAME=(hostname)/g” $oracle_unzip_dir/response/db_install.rsp
sed -i 's/UNIX_GROUP_NAME=.
/UNIX_GROUP_NAME=oinstall/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/INVENTORY_LOCATION=./INVENTORY_LOCATION=/u01/app/oraInventory/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/SELECTED_LANGUAGES=.
/SELECTED_LANGUAGES=en,zh_CN/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/ORACLE_HOME=./ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/ORACLE_BASE=.
/ORACLE_BASE=/u01/app/oracle/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.db.InstallEdition=./oracle.install.db.InstallEdition=EE/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/oracle.install.db.isCustomInstall=.
/oracle.install.db.isCustomInstall=true/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.db.DBA_GROUP=./oracle.install.db.DBA_GROUP=dba/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/oracle.install.db.OPER_GROUP=.
/oracle.install.db.OPER_GROUP=oinstall/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.db.config.starterdb.type=./oracle.install.db.config.starterdb.type=GENERAL_PURPOSE/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/oracle.install.db.config.starterdb.globalDBName=.
/oracle.install.db.config.starterdb.globalDBName=dg1/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.db.config.starterdb.SID=./oracle.install.db.config.starterdb.SID=dg1/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/oracle.install.db.config.starterdb.characterSet=.
/oracle.install.db.config.starterdb.characterSet=AL32UTF8/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.db.config.starterdb.memoryOption=./oracle.install.db.config.starterdb.memoryOption=true/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/oracle.install.db.config.starterdb.password.ALL=.
/oracle.install.db.config.starterdb.password.ALL=sys/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.db.config.starterdb.control=./oracle.install.db.config.starterdb.control=DB_CONTROL/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=.
/oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=true/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i ‘s/oracle.install.db.config.starterdb.dbcontrol.emailAddress=./oracle.install.db.config.starterdb.dbcontrol.emailAddress=test@test.com/g’ $oracle_unzip_dir/response/db_install.rsp
sed -i 's/DECLINE_SECURITY_UPDATES=.
/DECLINE_SECURITY_UPDATES=true/g’ $oracle_unzip_dir/response/db_install.rsp

#创建oralnst.loc
cat << EOF >> /home/oracle/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall
EOF
chown oracle:oinstall /home/oracle/oraInst.loc
chmod 664 /home/oracle/oraInst.loc

#开始静默安装oracle数据库
cd $oracle_unzip_dir
su oracle -l -c “cd $oracle_unzip_dir; ./runInstaller -silent -responseFile $oracle_unzip_dir/response/db_install.rsp -invPtrLoc /home/oracle/oraInst.loc -ignorePrereq”
echo ” “
echo “oracle安装程序正在后台进行,请不要关闭”
stime=0

while (( 1 ))
do
echo -ne “oracle安装程序已耗时:$stime 秒

let stime+=1
OraInstall_Pid=
ps -ef | grep OraInstall | grep -v 'grep' | awk '{print $2}'

if test -z $OraInstall_Pid
then
echo ” “
echo “oracle安装程序已完成!!!!”
sudo sh /u01/app/oracle/product/11.2.0/db_1/root.sh
echo “安装oracle成功”
exit 0
fi
sleep 1
done

#给脚本添加执行权限
[root@localhost soft]# chmod 777 一键安装脚本-oracle_install.sh

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容