Oracle19C静默安装on CentOS8
<p>Oracle19C下载URL:<a href="https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html">https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html</a></p>
<p>目录
1.在CentOS8下静默安装Oracle19C 脚本Oracle19C_silent_installation_LINUX.X64_193000_db_home.sh
2.Oracle19C 响应文件 easytongDB_dbca.rsp
3.随机启动脚本oracle</p>
<h3>1.在CentOS8下静默安装Oracle19C 脚本</h3>
<pre><code class="language-bash">#! /bin/bash
HTNAME=ora19Cdb.Svc
##
##
##############################################################################
## ##
## 说明: ##
## 1、上传安装文件到指定目录 ##
## 2、运行脚本即可完成Oracle19C数据库安装、建库等配置操作。 ##
## ##
##############################################################################
##
##
## Oracle Database 19c Installation On CentOS 8
##
## 目录:安装步骤
##
##----------------------------------------------------------------------------
## 1.上传安装包等文件至/opt目录
## 2.修改主机名和IP
## 3.编辑内核参数
## 3.1.编辑 vim /etc/sysctl.conf 添加以下行
## 3.2.执行命令 sysctl -p 刷新
## 4.资源限制limits.conf
## 5.定义本地YUM源
## 6.升级系统、安装unzip、安装依赖包
## 7.用户与组/文件夹及权限
## 8.Oracle环境变量
## 9.解压文件
## 10.数据库软件安装
## 10.1图形安装
## 10.1.数据库软件安装
## 10.2.静默安装
## 10.3.安装完成最后,以root去执行脚本
## 11.创建监听
## 11.1.图形创建
## 11.2.静默创建监听
## 12.创建数据库
## 12.1.图形创建
## 12.2.静默创建数据库
## 13.PLSQL连接时提示:协议不存在
## 14.修改oracle启动配置文件
## 15.修改oracle管理员密码
## 16.设置随机启动
## 17.配置防火墙允许放行1521端口
## 18. Oracle基本操作说明
## 18.1 登录数据库 提醒:切换至oracle用户
## 18.2 Oracle数据库操作
## 19.Oracle数据库启停等操作
##*****************************************************************************************##
## 1.上传安装包等文件至/opt目录
## 上传Oracle 19C安装包LINUX.X64_193000_db_home.zip,随机启动文件oracle和响应文件easytongDB_dbca.rsp及安装脚本文件
## Oracle19C_silent_installation_LINUX.X64_193000_db_home-CentOS7.sh至/opt目录下,并给脚本添加执行权限。
## 如果服务器不能上网,离线安装的话,还需要上传CentOS7的ISO配置本地源进行安装。
## 2.修改主机名和IP
## 只适合单网卡
echo `ifconfig | grep 'inet' | awk '{print $2}' | head -1` $HTNAME >> /etc/hosts
hostnamectl set-hostname $HTNAME
echo 'Successfully set hostname & IP !!!'
## 3.编辑内核参数
## 3.1.编辑 vim /etc/sysctl.conf 添加以下行
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.shmall = 1887436" >> /etc/sysctl.conf
echo "kernel.shmmax = 7730941132" >> /etc/sysctl.conf
echo "kernel.panic_on_oops = 1" >> /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 = 1048576" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.rp_filter = 2" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.rp_filter = 2" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo 'Successfully set sysctl.conf !!!'
## 3.2.执行命令 sysctl -p 刷新
sysctl -p
## 4.资源限制
## 编辑文件 vim /etc/security/limits.conf 添加以下行
echo "oracle soft nofile 1024" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
echo "oracle soft nproc 16384" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "oracle soft stack 10240" >> /etc/security/limits.conf
echo "oracle hard stack 32768" >> /etc/security/limits.conf
echo "oracle hard memlock 7549747" >> /etc/security/limits.conf
echo "oracle soft memlock 7549747" >> /etc/security/limits.conf
echo 'Successfully set limits.conf !!!'
## 5.定义本地YUM源
## mount /opt/CentOS-8-x86_64-1905-dvd1.iso /mnt
### 或加载光驱,VM上光驱设备状态勾选已连接+打开电源时连接
# mount /dev/cdrom /mnt
# mkdir /repobak
# mv /etc/yum.repos.d/* /repobak
# echo "[ora19c_baseos]" >> /etc/yum.repos.d/ora19c.repo
# echo "name=19cbaseos" >> /etc/yum.repos.d/ora19c.repo
# echo "baseurl=file:///mnt/BaseOS/" >> /etc/yum.repos.d/ora19c.repo
# echo "enabled=1" >> /etc/yum.repos.d/ora19c.repo
# echo "gpgcheck=0" >> /etc/yum.repos.d/ora19c.repo
# echo "[henry_appstream]" >> /etc/yum.repos.d/ora19c.repo
# echo "name=19cappstream" >> /etc/yum.repos.d/ora19c.repo
# echo "baseurl=file:///mnt/AppStream/" >> /etc/yum.repos.d/ora19c.repo
# echo "enabled=1" >> /etc/yum.repos.d/ora19c.repo
# echo "gpgcheck=0" >> /etc/yum.repos.d/ora19c.repo
# yum repolist all
## 6.升级系统、安装unzip、安装依赖包
dnf update -y
dnf install -y unzip
dnf install -y bc
dnf install -y binutils
dnf install -y compat-libstdc++-33
dnf install -y elfutils-libelf
dnf install -y elfutils-libelf-devel
dnf install -y fontconfig-devel
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libaio-devel
dnf install -y libXrender
dnf install -y libXrender-devel
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXtst
dnf install -y libgcc
dnf install -y librdmacm-devel
dnf install -y libstdc++
dnf install -y libstdc++-devel
dnf install -y libxcb
dnf install -y make
dnf install -y net-tools # Clusterware
dnf install -y nfs-utils # ACFS
dnf install -y python # ACFS
dnf install -y python-configshell # ACFS
dnf install -y python-rtslib # ACFS
dnf install -y python-six # ACFS
dnf install -y targetcli # ACFS
dnf install -y smartmontools
dnf install -y sysstat
dnf install -y unixODBC
dnf install -y libnsl2
dnf install -y libnsl2.i686
dnf install -y tigervnc*
dnf install -y libnsl*
echo 'Successfully set dnf Dependency package !!!'
## 7.用户与组/文件夹及权限
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
echo 'oracle' | passwd --stdin oracle
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01
echo 'Successfully add user & group !!!'
## 8. Oracle环境变量
mkdir /home/oracle/scripts
cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=`hostname`
export ORACLE_UNQNAME=easytongDB
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=easytongDB
export PDB_NAME=ORDERS
export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
chown -R oracle:oinstall /home/oracle/scripts/setEnv.sh
echo 'Successfully set oracle Environment variable !!!'
## 9.解压文件
chown -R oracle:oinstall /opt/*
chmod -R 775 /opt/*
su - oracle << EOF
#cd $ORACLE_HOME
cd /u01/app/oracle/product/19.0.0/dbhome_1
echo 'unziping LINUX.X64_193000_db_home.zip......'
unzip -oq /opt/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1/
export CV_ASSUME_DISTID=RHEL7.6
echo 'Successfully unzip LINUX.X64_193000_db_home.zip !!!'
## 10.数据库软件安装
## 10.1图形安装
## ./runInstaller
## 10.2.静默安装
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=henry \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
SELECTED_LANGUAGES=en,en_GB \
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=dba \
oracle.install.db.OSDGDBA_GROUP=dba \
oracle.install.db.OSKMDBA_GROUP=dba \
oracle.install.db.OSRACDBA_GROUP=dba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
EOF
echo 'Successfully Install Oracle Software !!!'
## 10.3.安装完成最后,以root去执行脚本
/u01/app/oraInventory/orainstRoot.sh
echo '/u01/app/oraInventory/orainstRoot.sh Execute Complete !!!'
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh
echo '/u01/app/oracle/product/19.0.0/dbhome_1/root.sh Execute Complete !!!'
## 11.创建监听
## 11.1.图形创建
## netca
## 11.2.静默创建监听
su - oracle <<EOF
# cd /u01/app/oracle/product/19.0.0/dbhome_1
export CV_ASSUME_DISTID=RHEL7.6
netca -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp
echo 'netca.rps Execute complete !!!'
## 12.创建数据库
## 12.1.图形创建
##dbca
## 12.2.静默创建数据库
## 根据响应文件创建数据库
#chown -R oracle:oinstall /opt/2easytongDB_dbca
#dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/2easytongDB_dbca.rsp
dbca -silent -createDatabase -responseFile /opt/easytongDB_dbca.rsp
echo 'easytongDB_dbca.rsp Successfully Execute !!!'
EOF
## 13.PLSQL连接时提示:协议不存在
echo 'SQLNET.ALLOWED_LOGON_VERSION=8' >> /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora
##echo 'SQLNET.ALLOWED_LOGON_CLIENT=8' >> /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora
echo 'Successfully Setup sqlnet.ora !!!'
## 14.修改oracle启动配置文件
sed -i 's/easytongDB:\/u01\/app\/oracle\/product\/19.0.0\/dbhome_1:N/easytongDB:\/u01\/app\/oracle\/product\/19.0.0\/dbhome_1:Y/g' /etc/oratab
echo 'Successfully Setup /etc/oratab !!!'
## 15.修改oracle管理员密码
su - oracle <<EOF
sqlplus / as sysdba
alter user system identified by hz310012;
alter user sys identified by hz310012;
EOF
## 16.设置随机启动
echo 'su oracle -lc "/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start"' >> /etc/rc.d/rc.local
echo 'su oracle -lc "/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart"' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
cp /opt/oracle /etc/init.d/
chmod +x /etc/init.d/oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle
echo 'Set random boot to complete !!!'
## 17.配置防火墙允许放行1521端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
echo 'Oracle19C successfully installed and set all configuration items !!!'
## 18. Oracle基本操作说明
## 18.1 登录数据库 提醒:切换至oracle用户
## su - oracle
## sqlplus / as sysdba
## SQL> select open_mode from v$database;
## SQL> select status from v$instance;
##
## 18.2 Oracle数据库操作
## sqlplus / as sysdba //登录数据库
## alter user sys identified by oracle; //改sys超级管理员密码
## alter user system identified by oracle; //改system管理员密码
## exit //退出数据库
## sqlplus sys/oracle as sysdba //使用sys超级管理员登录数据库
## startup //启动数据库
## Select name from v$database; //查看数据库
## Shutdown abort //关闭数据库
## Conn system/oracle //切换用户conn后面直接跟用户名和密码就可以
##
## 19.Oracle数据库启停等操作
## service oracle start
## service oracle stop
## service oracle reload
##
</code></pre>
<h3>2.Oracle19C 响应文件 easytongDB_dbca.rsp</h3>
<pre><code class="language-bash">responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=easytongDB
sid=easytongDB
databaseConfigType=SI
policyManaged=false
createServerPool=false
createAsContainerDatabase=false
numberOfPDBs=1
pdbName=
useLocalUndoForPDBs=true
pdbAdminPassword=hz310012
templateName=/u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
sysPassword=Hz310012
systemPassword=Hz310012
emExpressPort=5500
runCVUChecks=false
omsPort=0
dvConfiguration=false
olsConfiguration=false
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates
datafileDestination={ORACLE_HOME}/oradata/{DB_UNIQUE_NAME}
recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}
storageType=FS
characterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
registerWithDirService=false
listeners=LISTENER
variables=DB_UNIQUE_NAME=easytongDB,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=easytongDB,ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1,SID=easytongDB
sampleSchema=false
memoryPercentage=40
databaseType=DATA_WAREHOUSING
automaticMemoryManagement=
totalMemory=2048</code></pre>
<h3>3.随机启动脚本oracle</h3>
<pre><code class="language-bash">#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=EasyTongDB
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
#exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0</code></pre>