Centos7靜默安裝Oracle11g並設定開機自啟

gaoyiyang發表於2019-04-01

之前由於工作需要,在某縣公安局安裝Oracle資料庫,由於公安局的內網環境無法使用訪問網際網路,所以參考了某位大佬的文章進行了安裝:

靜默安裝Oracle11G

這裡記錄一下安裝的過程用於備忘。

1.環境準備

作業系統:Centos7.6 64位
Oracle11g壓縮包:linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip (下載連結:pan.baidu.com/s/1sNEu2XQr… 提取碼:5m9r)

2.檢測依賴

執行命令

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio  libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
複製程式碼

執行這個命令,會給出安裝oracle11g所缺少的依賴。一般來說在centos7中都能通過:

yum -y install xxx(缺少的依賴名)
複製程式碼

這個方式來進行安裝。
不過由於我這裡安裝時處於內網環境,同時系統也是由公安局自行安裝在某地的虛擬機器上,所以我通過阿里的映象站進行了所有依賴包的下載,就是缺什麼依賴就在這裡搜什麼名稱,然後將rpm檔案下載下來再一起打包傳到伺服器上解壓安裝。

Centos7靜默安裝Oracle11g並設定開機自啟

下載rpm包,通過命令:

rpm -ivh xxx.rpm
複製程式碼

來進行安裝

3.安裝前的準備

建立目錄修改屬組和許可權

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle 
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/inventory
mkdir -p /u01/app/oracle/fast_recovery_area
chown -R oracle.oinstall /u01/app/oracle
chmod -R 755 /u01/app/oracle
複製程式碼

語句的作用依次為:前面建立的目錄主要作用為 Oracle家目錄、資料檔案存放位置,安裝日誌存放位置,快速恢復區 修改屬組,修改許可權

伺服器配置修改

#修改主機名
vim /etc/hosts
#host檔案中新增
127.0.0.1 oracledb
複製程式碼
#開放埠1521
firewall-cmd --zone=public --add-port=1521/tcp --permanent #--permanent引數使設定永久生效
firewall-cmd --reload #重新載入防火牆
firewall-cmd --list-ports --zone=public  #檢視是否開放
複製程式碼
#關閉selinux
vim /etc/sysconfig/selinux
#修改selinux中的值
SELINUX=disabled
#修改後重啟伺服器,或執行以下命令皆可生效:
setenforce 0           
複製程式碼
#修改核心引數
vim /etc/sysctl.conf
#####新增以下內容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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為本機實體記憶體(2G)的一半,單位為byte。
sysctl -p #使修改生效
複製程式碼
#修改使用者限制檔案
vim /etc/security/limits.conf
####新增以下內容
oracle    soft    nproc    2047
oracle    hard    nproc    16384
oracle    soft    nofile    1024
oracle    hard    nofile    65536
oracle    soft    stack    10240
####
#修改/etc/pam.d/login檔案
vim /etc/pam.d/login
#新增以下內容
session required  /lib64/security/pam_limits.so
session required   pam_limits.so
複製程式碼

這裡limits.conf配置的比較隨意,我找了一篇limits.conf的參考

#配置oracle使用者的環境變數
su - oracle
vim ~/.bash_profile
###新增
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
###
#使檔案中的配置立即生效
. ~/.bash_profile
複製程式碼

4.正式安裝

#切換到root使用者
su root
cd /tmp/
mkdir oracle
cd oracle
#通過rz命令上傳linux.x64_11gR2_database的兩個壓縮包
#解壓
unzip linux.x64_11gR2_database_1of2.zip & unzip linux.x64_11gR2_database_2of2.zip 
複製程式碼

解壓完成後

#編輯靜默安裝響應檔案
cd /tmp/oracle/database/response/
vim db_install.rsp
###修改以下內容
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle         
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
###
#開始安裝軟體
chown -R oracle:oinstall /tmp/oracle/
su - oracle
cd /tmp/oracle/database/
./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp -ignorePrereq
複製程式碼

看到如下列印,則已經開始安裝

Centos7靜默安裝Oracle11g並設定開機自啟
此時可以另外開一個視窗檢視日誌檔案
Centos7靜默安裝Oracle11g並設定開機自啟
經過一段時間日誌輸出,看見原來的視窗出現如下文字
Centos7靜默安裝Oracle11g並設定開機自啟
切換到root使用者執行上述的指令碼

exit
/u01/app/oracle/inventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
複製程式碼

靜默方式配置監聽:

su - oracle
netca /silent /responseFile /tmp/oracle/database/response/netca.rsp
複製程式碼

出現如下文字,則監聽啟動完成:

Centos7靜默安裝Oracle11g並設定開機自啟

檢視埠1521是否能被監聽:

netstat -tnulp | grep 1521
複製程式碼

Centos7靜默安裝Oracle11g並設定開機自啟
監聽的啟動和關閉命令

lsnrctl start 
lsnrctl stop
複製程式碼

靜默方式建庫:

cd /tmp/oracle/database/response/
cp dbca.rsp dbca.rsp.bak
vim dbca.rsp
###設定以下引數:
GDBNAME= "orcl"
SID =" orcl"
SYSPASSWORD= "oracle"
SYSTEMPASSWORD= "oracle"
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION=/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area
CHARACTERSET= "ZHS16GBK" #這裡不設定應該預設是UTF-8
TOTALMEMORY= "1638"
###其中TOTALMEMORY ="1638" 為1638MB,實體記憶體2G*80%。
#執行命令,進度達到100%則建立完成
dbca -silent -responseFile /tmp/oracle/database/response/dbca.rsp
複製程式碼
#測試是否可用
sqlplus / as sysdba
SQL> select 1 from dual;
         1
----------
         1
SQL> exit;
複製程式碼

安裝完畢

啟動/關閉例項

sqlplus / as sysdba
SQL> startup; #啟動
SQL> shutdown; #關閉
複製程式碼

5.設定開機自啟

su - oracle
#修改該路徑下的dbstart dbshut指令碼,將兩個指令碼中的ORACLE_HOME_LISTNER=$1,修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
cd /u01/app/oracle/product/11.2.0/db_1/bin/
#修改完成後
exit
#修改配置
vim /etc/oratab
orcl:/u01/app/oracle/product/11.2.0/db_1:X改為orcl:/u01/app/oracle/product/11.2.0/db_1:Y
#修改rc.local檔案
chmod 755 /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
#在rc.local中新增:
su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"  #加上引號才能把空格後的start也當作命令的一部分
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
複製程式碼

新增完成後即可

相關文章