天天看點

centos7.6 靜默安裝Oracle11.2.0.4(親測成功)

系統版本:CentOS Linux release 7.6.1810 (Core)

資料庫版本:Oracle11.2.0.4(該版本官方有7個包,下文隻針對1和2兩個包進行安裝)

關注部落客後私聊友情提供下載下傳連結,僅作學習用途請勿用于商業(看到會回複)

Oracle安裝依賴檢測(必要條件)

//安裝前後可以用rpm -q進行檢測
 yum -y install 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
           

爛筆頭筆記一:離線環境下擷取安裝包方法(去聯網【或者有私有yum】機器下載下傳安裝包)

//此指令需要公網yum或者私有yum(可能沒有)進行下載下傳

# yum reinstall --downloadonly --downloaddir=/tmp/ net-tools
//downloaddir安裝包存放路徑
//說明:如果該伺服器已經安裝了需要下載下傳的軟體包,那麼使用 install下載下傳就不不不行
//可以使用reinstall下載下傳。 放心(不會真的安裝和重新安裝,因為後面加了 --downloadonly,表明隻是下載下傳。
//如果提示沒有--downloadonly選項則需要安裝yum-plugin-downloadonly軟體包;
# yum install yum-plugin-downloadonly
           

伺服器配置修改

添加防火牆

//如果防火牆沒有開放可以忽略此步驟
//開放端口1521 (如果更改監聽端口根據實際需求進行更改)
# firewall-cmd --zone=public --add-port=1521/tcp --permanent 
//--permanent參數使設定永久生效 
# firewall-cmd --reload 
//重新加載防火牆 
# firewall-cmd --list-ports --zone=public 
//檢視是否開放
           

關閉selinux

//修改selinux中的值
# vim /etc/sysconfig/selinux
//修改内容
# SELINUX=disabled
//執行以下指令使其生效:
# setenforce 0   
*********************************************
//或者直接執行下面指令進行修改
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# setenforce 0
           

禁用THP(Transparent Huge Pages)

//檢視THP的狀态(centos 7中預設是打開的):

# cat /sys/kernel/mm/transparent_hugepage/enabled
# cat /sys/kernel/mm/transparent_hugepage/defrag
           

編輯rc.local檔案:

# vim /etc/rc.d/rc.local
//增加以下内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
           
//賦予rc.local檔案可執行權限:
# chmod +x /etc/rc.d/rc.local
           
//重新開機作業系統,使配置生效,檢查THP狀态,應該是被禁用的
# reboot
# cat /sys/kernel/mm/transparent_hugepage/enabled
# cat /sys/kernel/mm/transparent_hugepage/defrag
           

建立修改使用者組和權限

# groupadd -g 5001 oinstall
# groupadd -g 5002 dba
# groupadd -g 5003 oper
# useradd -u 5002 -g oinstall -G dba,oper oracle
# passwd oracle   
//enter後輸入oracle使用者密碼,建議複雜度高點
# id oracle
//id 指令可以查詢使用者的UID、GID 和附加組的資訊;
           

配置核心參數

# vi /etc/sysctl.conf
//加入以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4294967296
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 500 64000 500 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
           
//使修改生效
# /sbin/sysctl -p
           
其中kernel.shmmax = 1073741824為本機實體記憶體(2G)的一半,機關為byte,根據實際記憶體修改

修改使用者限制檔案

# vim /etc/security/limits.conf
//加入以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
           
# vim /etc/pam.d/login 
//加入以下内容
session required  /lib64/security/pam_limits.so
session required pam_limits.so
           
# vim /etc/profile
//加入以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
           

建立目錄并修改權限

//建立oracle主目錄,并授權
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01
           

配置oracle使用者的環境變量

//配置oracle使用者的環境變量 
# su - oracle 
# vim ~/.bash_profile 
//添加 
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
           
//使檔案中的配置立即生效 
# . ~/.bash_profile
           

解壓安裝包

//切換到root使用者 
# su root cd /tmp/ 
# mkdir oracle 
# cd oracle 
//解壓 
# unzip p13390677_112040_Linux-x86-64_1of7.zip
# unzip p13390677_112040_Linux-x86-64_2of7.zip
# chown -R oracle:oinstall /tmp/oracle/database
           

輯靜默安裝響應檔案

爛筆頭筆記二:删除檔案中的 # 注釋行和空行友善配置操作

# sed -i '/^#/d;/^$/d'   file.xxx

// 注:預設檔案裡面注釋比較多可以先去掉注釋和空行再修改檔案,sed會直接在指定檔案操作,建議先備份
//編輯靜默安裝響應檔案 
           
# cd /tmp/oracle/database/response/ 
//備份db_install.rsp
# cp db_install.rsp db_install.rsp.bak
           
# 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/dbhome_1 
ORACLE_BASE=/u01/app/oracle 
oracle.install.db.InstallEdition=EE 
oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba 
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.password.ALL=yourpassword
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
           

********************** db_install.rsp詳解參考這位大佬寫的blog ***********************

https://blog.csdn.net/yinzhipeng123/article/details/53141950

看到如下列印,則已經開始安裝(英文提示需要注意是否有其它報錯,如:無權限建立檔案夾、存儲空間不夠等)

centos7.6 靜默安裝Oracle11.2.0.4(親測成功)

此時可以另外開一個視窗檢視日志檔案

centos7.6 靜默安裝Oracle11.2.0.4(親測成功)

經過一段時間日志輸出,看見原來的視窗出現如下文字

centos7.6 靜默安裝Oracle11.2.0.4(親測成功)

切換到root使用者執行上述的腳本,執行完畢即可

# /u01/app/oracle/inventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
           

靜默方式配置監聽

# su - oracle
# netca /silent /responseFile /tmp/oracle/database/response/netca.rsp
           

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

centos7.6 靜默安裝Oracle11.2.0.4(親測成功)

檢視端口1521是否能被監聽(本人的端口更改過)

監聽的啟動和關閉指令

# lsnrctl start 
# lsnrctl stop
           

靜默方式建庫

# cd /tmp/oracle/database/response/
# cp dbca.rsp dbca.rsp.bak
# vim dbca.rsp
###設定以下參數:
GDBNAME= "orcl"
SID = "orcl"
SYSPASSWORD= "yourpassword"
SYSTEMPASSWORD= "yourpassword"
SYSMANPASSWORD= "yourpassword"
DBSNMPPASSWORD= "yourpassword"
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;
           

重新開機Oracle資料庫、監聽器以及執行個體

(1) 以oracle身份登入資料庫,指令:# su -oracle
(2) 進入Sqlplus控制台,指令: sqlplus /nolog
(3) 以系統管理者登入,指令:SQL> connect / as sysdba
(4) 啟動資料庫,指令:SQL> startup
(5) 如果是關閉資料庫,指令:SQL> shutdown immediate
(6) 退出sqlplus控制台,指令:SQL> exit
(7) 進入監聽器控制台,指令:# lsnrctl
(8) 啟動監聽器,指令:lsnrctl> start
(9) 退出監聽器控制台,指令:lsnrctl> exit
           

重新開機執行個體

(1) 切換需要啟動的資料庫執行個體:# export ORACLE_SID=orcl
(2) 進入Sqlplus控制台,指令:# sqlplus /nolog
(3) 以系統管理者登入,指令:SQL> connect / as sysdba
(4) 如果是關閉資料庫,指令:SQL> shutdown abort
(5) 啟動資料庫,指令:SQL> startup
(6) 退出sqlplus控制台,指令:SQL> exit
           

寫于是 2021年1月20日 希望今天後的你健康快樂!共勉!!!