Oracle19C单机静默安装脚本

安装前准备工作:
1.挂载系统镜像、或者将镜像文件上传到系统,将系统镜像挂载到/mnt/cdrom目录。
2.上传安装脚本和数据库安装包LINUX.X64_193000_db_home.zip到“当前目录”(只要是空的目录都可以作为当前目录,注意,系统镜像不要和脚本还有安装包放在一起)
3.给脚本执行权限,然后运行脚本,剩下的就是等待脚本运行完成。

脚本内容:

#!/bin/bash
hostnamectl set-hostname myoracle
public_ip=$(hostname -I| grep -o -e '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}' |head -n 1)
node_name=$(hostname)
echo -e "${public_ip} ${node_name}">> /etc/hosts
cat /etc/hosts
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
current_dir=$(pwd)
echo "Current directory: $current_dir"
target_dir="/soft"
if [ ! -d "$target_dir" ]; then
    mkdir -p "$target_dir"
    echo "Target directory: $target_dir"
fi
mv $current_dir/* $target_dir
echo "File copying completed!"
mkdir -p /etc/yum.repos.d/bak
mv -f /etc/yum.repos.d/* /etc/yum.repos.d/bak
echo "
[ISO-DVD]
name=Red Hat Enterprise Linux $releasever - \$basearch - Source
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
"  >>/etc/yum.repos.d/Centos-Base.repo
yum -y install bc gcc gcc-c++ binutils make gdb cmake glibc ksh xterm \
elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc-devel \
libaio libaio-devel libXrender libXrender-devel libX11 libXau sysstat \
libXi libXtst libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb \
net-tools nfs-utils compat-libcap1 compat-libstdc++ smartmontools targetcli \
python python-configshell python-rtslib python-six unixODBC unixODBC-devel unzip wget \
device-mapper device-mapper-multipath
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
useradd  -u 54321 -g oinstall -G dba,backupdba,dgdba,kmdba,oper oracle
echo "oracle" | passwd --stdin oracle
id oracle
chmod 644 /etc/sysctl.conf
cat <<EOF >>/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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
kernel.panic_on_oops = 1
kernel.shmmax = 2684354560
kernel.shmall = 655360
kernel.shmmni = 4096
vm.swappiness=10
vm.vfs_cache_pressure=200
EOF
sysctl -p
chmod 644 /etc/security/limits.conf
cat <<EOF >>/etc/security/limits.conf
#ORACLE SETTING
oracle soft nproc 16384
oracle hard nproc 65536
oracle soft nofile 32768
oracle hard nofile 65536
oracle soft stack 32768
oracle hard stack 65536
oracle soft memlock -1
oracle hard memlock -1
EOF
echo "none /dev/shm tmpfs defaults,size=2048m 0 0" >> /etc/fstab 
mount -o remount /dev/shm
chmod 644 /etc/profile
cat <<EOF >>/etc/profile
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
       ulimit -p 16384
       ulimit -n 65536
    else
       ulimit -u 16384 -n 65536
   fi
fi
EOF
source /etc/profile
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /soft
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /soft
chmod -R 775 /u01
chmod -R 775 /soft
cat <<EOF >>/home/oracle/.bash_profile
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$GRID_HOME/bin:\$PATH
export LANG=en_US
EOF
source /home/oracle/.bash_profile
mv /soft/*.zip  /u01/app/oracle/product/19.0.0/dbhome_1 
cd /u01/app/oracle/product/19.0.0/dbhome_1
unzip LINUX.X64_193000_db_home.zip
mkdir -p /home/oracle/etc
chown -R oracle.oinstall /home/oracle/etc
cp  /u01/app/oracle/product/19.0.0/dbhome_1/install/response/* /soft/
chmod 777 /soft/*.rsp
chown -R  oracle:oinstall /soft
cat <<EOF >/soft/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dgdba
EOF
chown -R  oracle:oinstall /soft/db_install.rsp
chmod 660 /soft/db_install.rsp
chown -R  oracle:oinstall /u01/app/oracle/product/19.0.0/dbhome_1
su - oracle -c "/u01/app/oracle/product/19.0.0/dbhome_1/runInstaller -silent -responseFile /soft/db_install.rsp"
sleep 200
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh
echo -e "\n\n****** start listener config  ******\n\n" 
cp /u01/app/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp /soft/
chmod 644 /soft/netca.rsp
cat <<EOF >>/soft/netca.rsp
[GENERAL]
RESPONSEFILE_VERSION="19.0"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
EOF
sleep 60
su - oracle -c "/u01/app/oracle/product/19.0.0/dbhome_1/bin/netca -silent -responsefile /soft/netca.rsp"
echo -e "\n\n****** listener config completed ******\n\n"
cp /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp /soft
chmod 644 /soft/dbca.rsp
cat <<EOF >>/soft/dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
templateName=General_Purpose.dbc
gdbName=orcl
sid=orcl
databaseConfigType=SI
sysPassword=password
systemPassword=password
characterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
listeners=LISTENER
memoryPercentage=70
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=2867
initParams=processes=8000,sga_max_size=2800MB,sga_target=2800MB,pga_aggregate_target=700MB
EOF
sleep 60
echo -e "\n\n****** start db instance create ******\n\n" 
su - oracle -c "/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbca -silent -createDatabase -templateName /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc \
-gdbname orcl -sid orcl -syspassword password -systempassword password \
-emConfiguration NONE -characterSet ZHS16GBK"
echo -e "\n\n****** db instance create complete ******\n\n"

这个脚本我也是抄其他博主的,脚本中的定制参数内容还是需要根据实际需求进行修改,比如limits.conf、sysctl.conf。

脚本不足之处:一些关键数据库参数无法在静默安装时成功设置,比如processes参数,这个参数在安装完的值是300,显然300不能满足日常生产库使用需求,还有就是就是内存设置,脚本中设置了automaticMemoryManagement=false参数,可是安装完成,还是自动管理内存。这些问题暂时不知道怎么处理,如果有同学知道怎么改可以评论告诉我,感谢!

安装完成后数据库还需要进行优化的地方:大页、processes、内存、numa、归档等一些数据库参数优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值