Oracle11g静默安装
<p>在CentOS7下静默安装Oracle11g,步骤如下:</p>
<h3>1、修改主机配置</h3>
<p>安装前先配置IP、主机名等相关信息。Oracle默认会自动安装在/data目录。请保持 / 目录空间足够。</p>
<pre><code class="language-bash">cat /etc/hosts
172.16.3.59 AutomtcTs.localdomain
cat /etc/hostname
AutomtcTs.localdomain</code></pre>
<h3>2.更新系统</h3>
<pre><code class="language-bash">yum update -y</code></pre>
<h3>3.Oracle静默安装前依赖包安装及配置</h3>
<pre><code class="language-bash">source ./orainstall-data.sh</code></pre>
<pre><code class="language-bash">#!/bin/bash
## DB: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
## OS: CentOS7.6
## 如何执行这个脚本: source orainstall-data.sh
yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /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 = 1048576" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
sysctl -p
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 "session required pam_limits.so" >>/etc/pam.d/login
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo 'oracle' | passwd --stdin oracle
mkdir -pv /data/app/oracle
mkdir -pv /data/app/oraInventory
chown -R oracle:oinstall /data/app
chown -R oracle:oinstall /opt/database
mkdir /oradata
chown -R oracle:oinstall /oradata
cp /home/oracle/.bash_profile /home/oracle/.bash_profile.org
echo "ORACLE_SID=easytongdb; export ORACLE_SID" >> /home/oracle/.bash_profile
echo "ORACLE_BASE=/data/app/oracle; export ORACLE_BASE" >> /home/oracle/.bash_profile
echo "ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/dbhome_1;export ORACLE_HOME " >> /home/oracle/.bash_profile
echo "ORACLE_PATH=/data/app/common/oracle/sql;export ORACLE_PATH" >> /home/oracle/.bash_profile
echo "ORACLE_TERM=xterm; export ORACLE_TERM" >> /home/oracle/.bash_profile
echo "TNS_ADMIN=\$ORACLE_HOME/network/admin; export TNS_ADMIN" >> /home/oracle/.bash_profile
echo "ORA_NLS11=\$ORACLE_HOME/nls/data; export ORA_NLS11" >> /home/oracle/.bash_profile
echo "PATH=.:\${JAVA_HOME}/bin:\${PATH}:\$ORACLE_HOME/bin" >> /home/oracle/.bash_profile
echo "PATH=\${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin" >> /home/oracle/.bash_profile
echo "export PATH" >> /home/oracle/.bash_profile
echo "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK" >> /home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=\$ORACLE_HOME/lib" >> /home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:\$ORACLE_HOME/oracm/lib" >> /home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib" >> /home/oracle/.bash_profile
echo "export LD_LIBRARY_PATH" >> /home/oracle/.bash_profile
echo "CLASSPATH=\$ORACLE_HOME/JRE" >> /home/oracle/.bash_profile
echo "CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/jlib" >> /home/oracle/.bash_profile
echo "CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/rdbms/jlib" >> /home/oracle/.bash_profile
echo "CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/network/jlib" >> /home/oracle/.bash_profile
echo "export CLASSPATH" >> /home/oracle/.bash_profile
echo "THREADS_FLAG=native; export THREADS_FLAG" >> /home/oracle/.bash_profile
echo "nls_date_format='yyyy-mm-dd hh24:mi:ss'" >> /home/oracle/.bash_profile
echo "export TEMP=/tmp" >> /home/oracle/.bash_profile
echo "export TMPDIR=/tmp" >> /home/oracle/.bash_profile
echo "umask 022" >> /home/oracle/.bash_profile
sed -i 's/oracle.install.option=/oracle.install.option=INSTALL_DB_SWONLY/g' /opt/database/response/db_install.rsp
sed -i 's/ORACLE_HOSTNAME=/ORACLE_HOSTNAME='`hostname`'/g' /opt/database/response/db_install.rsp
sed -i 's/UNIX_GROUP_NAME=/UNIX_GROUP_NAME=oinstall/g' /opt/database/response/db_install.rsp
sed -i 's/INVENTORY_LOCATION=/INVENTORY_LOCATION=\/data\/app\/oraInventory/g' /opt/database/response/db_install.rsp
sed -i 's/SELECTED_LANGUAGES=en/SELECTED_LANGUAGES=en,zh_CN/g' /opt/database/response/db_install.rsp
sed -i 's/ORACLE_HOME=/ORACLE_HOME=\/data\/app\/oracle\/product\/11.2.0\/dbhome_1/g' /opt/database/response/db_install.rsp
sed -i 's/ORACLE_BASE=/ORACLE_BASE=\/data\/app\/oracle/g' /opt/database/response/db_install.rsp
sed -i 's/oracle.install.db.InstallEdition=/oracle.install.db.InstallEdition=EE/g' /opt/database/response/db_install.rsp
sed -i 's/oracle.install.db.DBA_GROUP=/oracle.install.db.DBA_GROUP=dba/g' /opt/database/response/db_install.rsp
sed -i 's/oracle.install.db.OPER_GROUP=/oracle.install.db.OPER_GROUP=oper/g' /opt/database/response/db_install.rsp
sed -i 's/DECLINE_SECURITY_UPDATES=/DECLINE_SECURITY_UPDATES=true/g' /opt/database/response/db_install.rsp
sed -i 's/GDBNAME = "orcl11g.us.oracle.com"/GDBNAME ="easytongdb"/g' /opt/database/response/dbca.rsp
sed -i 's/SID = "orcl11g"/SID = "easytongdb"/g' /opt/database/response/dbca.rsp
sed -i 's/#SYSPASSWORD = "password"/SYSPASSWORD = "hz310012"/g' /opt/database/response/dbca.rsp
sed -i 's/#SYSTEMPASSWORD = "password"/SYSTEMPASSWORD = "hz310012"/g' /opt/database/response/dbca.rsp
sed -i 's/#DATAFILEDESTINATION =/DATAFILEDESTINATION = \/oradata/g' /opt/database/response/dbca.rsp
sed -i 's/#RECOVERYAREADESTINATION=/RECOVERYAREADESTINATION= \/data\/app\/oracle\/flash_recovery_area/g' /opt/database/response/dbca.rsp
sed -i 's/#CHARACTERSET = "US7ASCII"/CHARACTERSET = "ZHS16GBK"/g' /opt/database/response/dbca.rsp
sed -i 's/#TOTALMEMORY = "800"/TOTALMEMORY = "5120"/g' /opt/database/response/dbca.rsp
echo "Complete !!! And Enter Next Step."
echo "The next step is to do it manually."</code></pre>
<h3>4、按如下步骤,手工执行</h3>
<p>在Oracle安装脚本执行完成之后,按下面步骤手工操作。</p>
<h5>(1)切换oracle用户,并进入oracle程序包目录</h5>
<pre><code class="language-bash">su - oracle
cd /opt/database</code></pre>
<h5>(2)安装数据库</h5>
<pre><code class="language-bash">./runInstaller -silent -responseFile /opt/database/response/db_install.rsp
此步骤安装需要一点时间,根据服务器不同配置,时长不同,请耐心等候。
根据安装提示,以root执行 /data/app/oraInventory/orainstRoot.sh
根据安装提示,以root执行 /data/app/oracle/product/11.2.0/dbhome_1/root.sh</code></pre>
<h5>(3)创建数据库</h5>
<pre><code class="language-bash">dbca -silent -responseFile /opt/database/response/dbca.rsp</code></pre>
<h5>(4)配置监控</h5>
<pre><code class="language-bash">netca -silent -responsefile /opt/database/response/netca.rsp</code></pre>
<h5>(5)Oracle监听服务的启动/停止/状态查看</h5>
<pre><code class="language-bash">lsnrctl status 查看Oracle监听服务状态
lsnrctl start 启动Oracle监听服务
lsnrctl stop 停止Oracle监听服务</code></pre>
<h5>(6)设置Oracle随机启动</h5>
<p>需切换至root用户或用sudo执行</p>
<pre><code class="language-bash">sed -i 's/dbhome_1:N/dbhome_1:Y/g' /etc/oratab
echo 'su oracle -lc "/data/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"' >> /etc/rc.d/rc.local
echo 'su oracle -lc "/data/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local</code></pre>
<h3>5、开启Oracle端口/关闭防火墙</h3>
<p>开启Oracle端口</p>
<pre><code class="language-bash">firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port</code></pre>
<p>关闭防火墙</p>
<pre><code class="language-bash">systemctl stop firewalld
systemctl disable firewalld</code></pre>