系統版本: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
看到如下列印,則已經開始安裝(英文提示需要注意是否有其它報錯,如:無權限建立檔案夾、存儲空間不夠等)
此時可以另外開一個視窗檢視日志檔案
經過一段時間日志輸出,看見原來的視窗出現如下文字
切換到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
出現如下文字,則監聽啟動完成
檢視端口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日 希望今天後的你健康快樂!共勉!!!