之前看了網(wǎng)上很多篇Linux靜默安裝Oracle的文章,但安裝測試時老覺得有問題,后來直接找來Oracle官方英文文檔并仔細閱讀研究rsp文件的內(nèi)容說明,經(jīng)過自己在虛擬機中的安裝測試,使用RedHat 6.5(內(nèi)核版本:2.6.32-431.el6.x86_64)上靜默安裝Oracle 11gR2(版本:11.2.0.3),整理出了本文,主要包括了環(huán)境要求與準備、靜默安裝Oracle軟件與監(jiān)聽、靜默安裝Oracle數(shù)據(jù)庫、安裝完成后檢查、設(shè)置Oracle開機自動啟動等部分。
創(chuàng)新互聯(lián)公司堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十多年網(wǎng)站建設(shè)經(jīng)驗創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、H5場景定制、網(wǎng)站制作、品牌網(wǎng)站制作、小程序制作服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。
一、 環(huán)境要求與準備
1、硬件要求
(1)內(nèi)存
Minimum: 1 GB of RAM
Recommended: 2 GB of RAM or more
To determine the RAM size, enter the following command:
# grep MemTotal /proc/meminfo
(2)SWAP
Available RAM Swap Space Required
Between 1 GB and 2 GB 1.5 ——times the size of the RAM
Between 2 GB and 16 GB——Equal to the size of the RAM
More than 16 GB——16 GB
# grep SwapTotal /proc/meminfo
(3)ASM
Automatic Memory Management feature requires more shared memory ( /dev/shm) and file descriptors
#df -h /dev/shm/
Note: MEMORY_MAX_TARGET and MEMORY_TARGET cannot be used whenLOCK_SGA is enabled or with HugePages on Linux.
(4)磁盤空間
At least 1 GB of disk space in the /tmp directory
Enterprise Edition——At least4.7 GB for Software Files and 1.7 GB for Data Files
Standard Edition——At least4.6GB for Software Files and 1.5 GB for Data Files
2、軟件要求
(1)操作系統(tǒng)要求
■ Asianux Server 3 SP2
■ Asianux Server 4 SP3
■ Oracle Linux 4 Update 7
■ Oracle Linux 5 Update 2 (with Red Hat Compatible Kernel)
■ Oracle Linux 5 Update 5
■ Oracle Linux 6
■ Oracle Linux 6 (with Red Hat Compatible Kernel)
■ Oracle Linux 7
■ Oracle Linux 7 (with the Red Hat Compatible Kernel)
■ Red Hat Enterprise Linux 4 Update 7
■ Red Hat Enterprise Linux 5 Update 2
■ Red Hat Enterprise Linux 6
■ Red Hat Enterprise Linux 7
■ SUSE Linux Enterprise Server 10 SP2
■ SUSE Linux Enterprise Server 11
(2)內(nèi)核要求
■On Red Hat Enterprise Linux 5 Update 5
2.6.18 or later
■On Red Hat Enterprise Linux 6
2.6.32-71.el6.x86_64 or later
■ On Red Hat Enterprise Linux 7
3.10.0-54.0.1.el7.x86_64 or later
(3)依賴包要求
Note: Starting with Oracle Database 11g Release 2 (11.2.0.2), all the 32-bit packages, except for gcc-32bit-4.3 , listed in the following table are no longer required for installing a database on Linux x86-64. Only the 64-bit packages are required. However, for any Oracle Database 11g release before 11.2.0.2, both the 32-bit and 64-bit packages listed in the following table are required.
The following or later version of packages for Oracle Linux 6, Red Hat EnterpriseLinux 6, and Asianux Server 4 must be installed:
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
(4)ODBC要求
On Oracle Linux 6, Red Hat Enterprise Linux 6:
unixODBC-2.2.14-11.el6 (x86_64) or later
unixODBC-2.2.14-11.el6.i686 or later
unixODBC-devel-2.2.14-11.el6 (x86_64) or later
unixODBC-devel-2.2.14-11.el6.i686 or later
3、用戶和組要求
The following local operating system groups and users are required if you areinstalling Oracle Database:
■ The Oracle Inventory group (typically, oinstall )
■ The OSDBA group (typically, dba )
■ The Oracle software owner (typically, oracle )
■ The OSOPER group (optional. Typically, oper )
# grep dba /etc/group
# id oracle
#groupadd dba
#groupadd oinstall
If the oracle user exists:
# /usr/sbin/usermod -g oinstall -G dba oracle
If the oracle user does not exist:
# /usr/sbin/useradd -g oinstall -G dba oracle
set the password:
# passwd oracle
4、內(nèi)核參數(shù)要求
Note: If the current value of any parameter is higher than the valuelisted in this table, then do not change the value of thatparameter.本文原始出處:江健龍的技術(shù)博客http://jiangjianlong.blog.51cto.com/3735273/1832986
修改方法:
create or edit the /etc/sysctl.conf file, and add or editlines similar to the following:
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 = 1048576
Note: if any of the current values are larger than the
minimum value, then specify the larger value。
使生效:
# /sbin/sysctl -p或reboot
如果運行 #sysctl -p 命令報錯
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
則解決方法為執(zhí)行如下命令:
#modprobe bridge
查看:
# /sbin/sysctl -a
5、資源限制要求
修改好后必須使用Oracle用戶登出再登錄才生效
$ ulimit -Sn
4096
$ ulimit -Hn
65536
$ ulimit -Su
2047
$ ulimit -Hu
16384
$ ulimit -Ss
10240
$ ulimit -Hs
32768
修改方法:
vi /etc/security/limits.conf
末尾加入以下內(nèi)容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile4096
oracle hard nofile 65536
oracle hard stack 32768
6、創(chuàng)建安裝目錄
Oracle_Base目錄:/u01/app/oracle/
Oracle_Home目錄:/u01/app/oracle/11gr2
Oracle清單目錄:/u01/app/oracle/oraInventory
7、配置Oracle用戶環(huán)境變量
vi /home/oracle/.bash_profile
export EDITOR=vi
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/11gr2
export nls_date_format="yyyy-mm-dd hh34:mi:ss"
export PATH=/u01/app/oracle/11gr2/bin:$PATH
執(zhí)行命令ource .bash_profile使配置生效
8、編輯/etc/profile
vi /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
本文原始出處:江健龍的技術(shù)博客http://jiangjianlong.blog.51cto.com/3735273/1832986
二、 靜默安裝Oracle 軟件和監(jiān)聽
1、靜默安裝命令
$ /directory_path/runInstaller [-silent] [-noconfig] -responseFile responsefilename
■-noconfig suppresses running the configuration assistants during installation,
and a software-only installation is performed instead.
■ responsefilename is the full path and file name of the installation response
file that you configured.
2、編輯應(yīng)答文件db_install.rsp
更改以下內(nèi)容,其他不需要改,標(biāo)橙色的需注意要結(jié)合實際環(huán)境更改。Oracle版本:11.2.0.3
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=rh7
UNIX_GROUP_NAME=oinstall
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/11gr2
ORACLE_BASE=/u01/app/oracle/
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
DECLINE_SECURITY_UPDATES=true
oracle.install.db.EEOptionsSelection=false
./runInstaller -silent -noconfig -ignorePrereq -responseFile /oracle11gr2zip/db_install.rsp
4、使用root登錄執(zhí)行腳本
5、執(zhí)行靜默安裝監(jiān)聽命令
不需要修改應(yīng)答文件內(nèi)容,直接使用介質(zhì)中的netca.rsp文件
[oracle@rh7 database]$ netca /silent /responseFile /oracle11gr2zip/database/resp
onse/netca.rsp
三、 靜默安裝Oracle數(shù)據(jù)庫
1、編輯dbca.rsp
更改以下內(nèi)容,其他不需要改,標(biāo)橙色的內(nèi)容需結(jié)合自己實際環(huán)境修改
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "p@ssw0rd"
SYSTEMPASSWORD = "p@ssw0rd"
EMCONFIGURATION = "LOCAL"
SYSMANPASSWORD = "p@ssw0rd"
DBSNMPPASSWORD = "p@ssw0rd"
STORAGETYPE=FS
CHARACTERSET = "ZHS16GBK"
NATIONALCHARACTERSET= "AL16UTF16"
MEMORYPERCENTAGE = "40"
TOTALMEMORY = "1024"
2、執(zhí)行靜默安裝數(shù)據(jù)庫命令
$dbca -silent -responseFile /oracle11gr2zip/dbca.rsp
四、安裝完成后檢查
1、檢查監(jiān)聽狀態(tài)
$ lsnrctl status
$ ps -ef |grep ora_ |grep -v grep
五、配置Oracle開機自動啟動
1、以O(shè)racle登錄,編輯oratab
vi /etc/oratab,將N改為Y
本文原始出處:江健龍的技術(shù)博客 http://jiangjianlong.blog.51cto.com/3735273/1832986
2、 root登錄,創(chuàng)建腳本
vi /etc/init.d/oracle,創(chuàng)建oracle文件,內(nèi)容如下:
#!/bin/sh
# chkconfig: 35 80 10
# description: Oracle auto start-stop script.
#
# Set ORACLE_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORACLE_OWNER to the user id of the owner of the
# Oracle database in ORACLE_HOME.
ORACLE_HOME=/u01/app/oracle/11gr2
ORACLE_OWNER=oracle
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart" >>/var/log/oracle
echo "Done"
# Start the Listener:
echo "Starting Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" >>/var/log/oracle
echo "Done."
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
'stop')
# Stop the Oracle Listener:
echo "Stoping Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" >>/var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
# Stop the Oracle Database:
echo "Stoping Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut" >>/var/log/oracle
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
;;
'restart')
$0 stop
$0 start
;;
esac
3、賦予腳本權(quán)限
5、測試腳本效果
(1)關(guān)閉數(shù)據(jù)庫
(2)使用root登錄,執(zhí)行命令service oracle start
(3)登錄數(shù)據(jù)庫檢查,數(shù)據(jù)庫已在運行,監(jiān)聽也正常
(4)執(zhí)行service oracle stop
(5)檢查監(jiān)聽和數(shù)據(jù)庫都已關(guān)閉