一、前言
靜默安裝就是不使用圖形化界面的安裝,全部用命令與配置文件進(jìn)行安裝的方式。
如果你在 Windows 下安裝過 Oracle 數(shù)據(jù)庫,理解起來可能會(huì)比較簡(jiǎn)單。
個(gè)人使用的環(huán)境為:Centos7 + Oracle11gR2。
提前去官網(wǎng)下載好 Oracle 的壓縮包,放到 /opt/download 目錄中,可能有兩個(gè)壓縮包,使用命令 unzip xxx1.zip 、unzip xxx2.zip 將兩個(gè)壓縮包解壓,得到 database 目錄。
二、步驟拆解
系統(tǒng)環(huán)境配置 | 安裝數(shù)據(jù)庫軟件 | 配置靜默監(jiān)聽 | 靜默方式創(chuàng)建數(shù)據(jù)庫同時(shí)建立實(shí)例
三、詳細(xì)步驟
3.1 系統(tǒng)環(huán)境配置
3.1.1 安裝依賴
這些是需要的依賴,需要先安裝好,不能漏掉。
# yum install
gcc
make
binutils
gcc-c++
compat-libstdc++-33elfutils-libelf-devel
elfutils-libelf-devel-static
ksh
libaio
libaio-develnumactl-devel
sysstat
unixODBC
unixODBC-devel
pcre-devel
3.1.2 配置用戶和組
安裝 Oracle 需要用到 oracle 用戶,所以需要手動(dòng)創(chuàng)建好用戶和用戶組。
[root@CentOS \]# groupadd oinstall # 這是創(chuàng)建用戶組
[root@CentOS \]# groupadd dba # 這是創(chuàng)建用戶組
[root@CentOS \]# useradd -g oinstall -G dba oracle # 這是創(chuàng)建用戶并指定用戶組
[root@CentOS \]# passwd oracle # 這是配置用戶密碼
創(chuàng)建好之后可以確認(rèn)一下用戶信息。
[root@CentOS \] id oracle # 這是查看用戶信息
這是輸出信息。
uid=1001(oracle) gid=1001(oinstall) 組=1001(oinstall),1002(dba)
3.1.3 修改內(nèi)核參數(shù)配置文件
這一步是讓 Oracle 更好的工作。
使用命令 vim /etc/sysctl.conf 打開配置文件,文件后面追加下面的內(nèi)容。
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824 # 本機(jī)物理內(nèi)存(2G)的一半
kernel.shmmni = 4096
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
注:其中 kernel.shmmax = 1073741824 設(shè)置為本機(jī)物理內(nèi)存(2G)的一半,單位為byte。
保存退出后使用命令 sysctl -p 使其生效。
3.1.4 修改用戶限制文件
這一步是限制 Oracl 用戶的權(quán)限。
使用命令 vim /etc/security/limits.conf 打開用戶限制配置文件。
在文件的后面追加以下內(nèi)容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
保存退出。
使用命令 vim /etc/pam.d/login 打開用戶登錄配置文件。
在文件后面追加以下內(nèi)容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
保存退出。
使用命令 vim /etc/profile 打開環(huán)境變量配置文件。
在文件后面追加以下內(nèi)容:
if [ $USER = "oracle" ]; then
if[ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
保存退出。
3.1.5 創(chuàng)建安裝目錄、設(shè)置文件權(quán)限
執(zhí)行以下命令。
[root@CentOS /]# mkdir -p /data/oracle/product/11.2.0 # 這是創(chuàng)建安裝目錄
[root@CentOS /]# mkdir /data/oracle/oradata # 這是創(chuàng)建實(shí)例的數(shù)據(jù)文件目錄
[root@CentOS /]# mkdir /data/oracle/inventory # 這是創(chuàng)建Oracle中央目錄,Oracle 不建議將此目錄創(chuàng)建到 ORACLE_BASE 中,不過不影響安裝。
[root@CentOS /]# mkdir /data/oracle/fast_recovery_area
[root@CentOS /]# chown -R oracle:oinstall /data/oracle 將目錄所有者改為 Oracle 用戶
[root@CentOS /]# chmod -R 775 /data/oracle
3.1.6 更改oracle用戶的環(huán)境變量
切換用戶。
[root@CentOS /]# su - oracle # 中間加 - 可以將環(huán)境變量同時(shí)切換
打開配置文件。
[oracle@Centos /]$ vim ~/.bash_profile
按照上一步創(chuàng)建的目錄與文件內(nèi)容,在該配置文件的后面追加以下內(nèi)容:
# oracle 設(shè)置
ORACLE_BASE=/data/oracle # oracle 的基目錄
ORACLE_HOME=$ORACLE_BASE/product/11.2.0 # oracle 的安裝目錄
ORACLE_SID=orcl # 這里必須和數(shù)據(jù)庫實(shí)例名一致,所以創(chuàng)建的實(shí)例的時(shí)候要用這個(gè)名字
PATH=$PATH:$ORACLE_HOME/bin # oracle的命令存放目錄
ORACLE_UNQNAME=$ORACLE_SID
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH ORACLE_UNQNAME
使用命令 source ~/.bash_profile 刷新一下。
3.1.7 配置hostname
使用命令 hostname 查看主機(jī)名,每個(gè)人不一樣,比如我的是 CentOS。
使用命令 vim /etc/hosts 打開文件,追加一行主機(jī)與域名的記錄。
# 要使用你的IP地址和你的主機(jī)名
192.168.1.1 CentOS
3.2 安裝數(shù)據(jù)庫軟件
3.2.1 編輯靜默安裝響應(yīng)文件
靜默安裝數(shù)據(jù)庫需要用到靜默安裝響應(yīng)文件,靜默安裝響應(yīng)文件就像使用圖形化界面安裝的時(shí)候點(diǎn)擊的下一步、下一步一樣,只不過是提前配置好,安裝程序運(yùn)行的時(shí)候就可以根據(jù)這個(gè)文件來做安裝了。
切換到 root 用戶,使用命令 vim /opt/download/database/response/db_install.rsp 打開靜默安裝響應(yīng)文件。按照以下內(nèi)容修改里面的內(nèi)容:
# 表示只安裝數(shù)據(jù)庫
oracle.install.option=INSTALL_DB_SWONLY
# 當(dāng)前的主機(jī)名,可以使用命令 `hostname` 查看
ORACLE_HOSTNAME=CentOS
UNIX_GROUP_NAME=oinstall
# inventory 目錄
INVENTORY_LOCATION=/data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_BASE=/data/oracle
## 安裝的版本 - 企業(yè)版
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
保存退出。
3.2.2 使用oracle用戶開始安裝
[oracle@CentOS ~]$ cd /opt/download/database/response/
[oracle@CentOS response]$ ./runInstaller -silent -responseFile /opt/download/database/response/db_install.rsp -ignorePrereq
這樣,安裝程序就在后臺(tái)運(yùn)行了,如果運(yùn)行中發(fā)生了錯(cuò)誤,提示信息中會(huì)有 [FATAL] 字樣,出現(xiàn)這個(gè)字樣說明安裝失敗,需要修改配置。
如果提示中出現(xiàn) [WARNING] 字樣可以不用理會(huì),不會(huì)影響安裝。
如果出現(xiàn)類似以下提示,就說明安裝成功了,可能你的提示是英文版的。(不是自己的圖,所以路徑不對(duì),請(qǐng)以你的路徑為準(zhǔn))

然后按照提示,打開一個(gè)新的終端,使用
root 身份執(zhí)行上面的兩個(gè)腳本。至此,數(shù)據(jù)庫的安裝就完成了。
3.3 配置靜默監(jiān)聽
按照靜默監(jiān)聽文件配置靜默監(jiān)聽。
切換到 oracle 用戶,運(yùn)行命令:
[oracle@CentOS ~]$ netca /silent /responseFile /opt/download/database/response/netca.rsp
執(zhí)行成功后可以使用 netstat 命令查看是否正在監(jiān)聽。
[oracle@CentOS ~]# netstat -tnulp | grep 1521
出現(xiàn)類似下面的信息就是正在監(jiān)聽。

3.4 靜默方式創(chuàng)建數(shù)據(jù)庫同時(shí)建立實(shí)例
3.4.1 編輯靜默安裝響應(yīng)文件
切換回 root 用戶,編輯靜默安裝響應(yīng)文件。
[root@CentOS /]# vim /opt/download/database/response/dbca.rsp
將文件內(nèi)容做以下修改:
GDBNAME= "orcl"
SID =" orcl"
SYSPASSWORD= "oracle"
SYSTEMPASSWORD= "oracle"
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION=/data/oracle/oradata
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_area
CHARACTERSET= "ZHS16GBK"
TOTALMEMORY= "1638"
注:其中TOTALMEMORY ="1638" 為1638MB,物理內(nèi)存2G x 80%。
保存退出。
3.4.2 開始執(zhí)行靜默安裝
切換回 oracle 用戶,執(zhí)行命令:
[oracle@CentOS ~]$ dbca -silent -responseFile /opt/download/database/response/dbca.rsp
安裝過程出現(xiàn)以下提示:(網(wǎng)上隨便找的圖,所以路徑不一樣)

安裝成功,檢查一下實(shí)例。
[oracle@CentOS ~]$ ps -ef | grep ora_ | grep -v grep
出現(xiàn)進(jìn)程信息(也是網(wǎng)圖,路徑一樣):

查看以下監(jiān)聽狀態(tài):
[oracle@CentOS ~]$ lsnrctl status
出現(xiàn)提示:(網(wǎng)圖)

3.4.3 登錄查看實(shí)例狀態(tài)
[oracle@CentOS~]$ sqlplus / as sysdba
......
......
SQL> select status from v$instance;
出現(xiàn)這種提示代表實(shí)例啟動(dòng)成功:(網(wǎng)圖)

至此,數(shù)據(jù)庫軟件的安裝和數(shù)據(jù)庫實(shí)例的創(chuàng)建都成功了。