Oracle11g靜默安裝

前言

最近在部署一套環境,裏面的數據庫用的是Oracle。就順帶整理了一下筆記
最無語的是到2019了,還是有人分不清什麼是服務端什麼是客戶端。
先讓我裝個客戶端,特喵的又說你這個不是客戶端怎麼缺那麼多頭文件。。。
真被氣死

正文

適用於Centos6+
oracle11.*

環境檢查

檢查 swap分區、內存、磁盤大小、系統版本

df
free
uname -a

關閉selinux和防火牆

#臨時關閉
setenforce 0
#永久關閉
sed -i '/^SELINUX=/s/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config 
#關閉防火牆
service iptables stop
systemctl stop firewalld
systemctl disable firewalld

修改主機名和hosts

#設置主機名
echo "oracle-prod" > /etc/hostname
#增加對應的hosts記錄
echo "127.0.0.1 oracle-prod" >> /etc/hosts

Note

" 可以使用hostname來查看是否已經設置了主機名
ORA-00130: invalid listener address
添加與主機名與IP對應記錄,不然在安裝數據庫時會報錯

修改內核參數

cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 32903162
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
EOF

sysctl -p 

Note

" kernel.shmmax = 32903162(byte)爲本機物理內存的一半,可以使用free查看。
或者直接使用如下命令:

echo $((free | awk '/Mem/ {print $2}'/2))

修改pam驗證登錄

echo "session required pam_limits.so" >> /etc/pam.d/login

修改用戶配置文件

cat >> /etc/profile <<EOF
export LIBXCB_ALLOW_SLOPPY_LOCK=true
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
EOF

source /etc/profile

修改系統資源限制

cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536    
oracle soft stack 10240
EOF

準備用戶與組

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "rs_ora2019" | passwd --stdin oracle

準備安裝目錄

mkdir -p /u01/app/oracle/product/11.2.0.2.0/db_1
mkdir/u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 755 /u01

配置oracle用戶環境變量

cat >> /home/oracle/.bash_profile   <<EOF
#Oracle Settings umask 022;
export ORACLE_SID=orcl-prod;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=\${ORACLE_BASE}/product/11.2.0.2.0/db_1;
export PATH=\$ORACLE_HOME/bin:/usr/sbin:\$PATH;
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/usr/lib;
export TNS_ADMIN=\$ORACLE_HOME/network/admin;
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
EOF
source /home/oracle/.bash_profile

安裝依賴

yum install gcc gcc-c++ libaio-devel compat-gcc-34 compat-gcc-34-c++

下載安裝包

官網下載

需要下載如下兩個文件
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

若沒有在IBM註冊有賬號可以在此下載

Oracle11.2.0.2 from Nedved OD

上傳解壓安裝包

把從官網下載得到的兩個zip上傳至/home/oracle/

chown -R oracle:oracle /home/oracle/l*.zip
su - oracle
unzip ./linux.x64_11gR2_database_1of2.zip && unzip ./linux.x64_11gR2_database_2of2.zip
mkdir ora_install 
mv database ora_install

Note

" 必須先解壓1of2 再解壓2of2

response下的=應答文件:

db_install.rsp:安裝應答

dbca.rsp:創建數據庫應答

netca.rsp:建立監聽、本地服務名等網絡設置的應答

配置安裝應答文件

cd /home/oracle/ora_install/database/response &&
cp db_install.rsp db_install.rsp.default
cat > db_install.rsp <<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle-prod
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.2.0,oracle.oraolap:11.2.0.2.0,oracle.rdbms.dm:11.2.0.2.0,oracle.rdbms.dv:11.2.0.2.0,orcle.rdbms.lbac:11.2.0.2.0,oracle.rdbms.rat:11.2.0.2.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
EOF

部分參數含義

參數 說明
-silent 表示以靜默方式安裝,不會有任何提示
-force 允許安裝到一個非空目錄
-noconfig 表示不運行配置助手netca
-responseFile 表示使用哪個響應文件,必需使用絕對路徑
oracle.install.responseFileVersion 響應文件模板的版本,該參數不要更改
oracle.install.option 安裝選項,本例只安裝oracle軟件,該參數不要更改
DECLINE_SECURITY_UPDATES 是否需要在線安全更新,設置爲false,該參數不要更改
ORACLE_HOSTNAME 安裝主機名
UNIX_GROUP_NAME oracle用戶用於安裝軟件的組名
INVENTORY_LOCATION oracle產品清單目錄
SELECTED_LANGUAGES oracle運行語言環境,一般包括引文和簡繁體中文
ORACLE_HOME Oracle安裝目錄
ORACLE_BASE oracle基礎目錄
oracle.install.db.InstallEdition 安裝版本類型,一般是企業版
oracle.install.db.isCustomInstall 是否定製安裝,默認Partitioning,OLAP,RAT都選上了
oracle.install.db.customComponents 定製安裝組件列表:除了以上默認的,可加上Label Security和Database Vault
oracle.install.db.DBA_GROUP oracle用戶用於授予OSDBA權限的組名
oracle.install.db.OPER_GROUP oracle用戶用於授予OSOPER權限的組名

進行安裝

cd /home/oracle/ora_install/database/
./runInstaller -silent -responseFile /home/oracle/ora_install/database/response/db_install.rsp -ignorePrereq

···

#Root scripts to run

/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0.2.0/db_1/root.sh
To execute the configuration scripts:
        1. Open a terminal window
        2. Log in as "root"
        3. Run the scripts
        4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

Note

" 安裝過程可以再開一個窗口按照提示查看日誌運行。當安裝成功後會在執行安裝命令的那個窗口跳出#Root scripts to run ··· 的內容

切換root執行

su - root
/u01/app/oracle/product/11.2.0.2.0/db_1/root.sh
/u01/app/oracle/oraInventory/orainstRoot.sh

靜默配置監聽程序

使用 oracle 用戶

netca /silent /responsefile /home/oracle/ora_install/database/response/netca.rsp

查看輸出信息,若沒有報錯會在$TNS_ADMIN 下生成 listener.ora 和 sqlnet.ora

ll $TNS_ADMIN

通過netstat命令可以查看1521端口正在監聽

ss -antpul | grep 1521

靜默方式建庫

dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname orcl-prod \
-sid orcl-prod \
-responseFile NO_VALUE \
-characterSet ZHS16GBK \
-memoryPercentage 30 -emConfiguration LOCAL

.
.
.

85% complete
96% complete
100% complete
Look at the log file "/opt/app/oracle/cfgtoollogs/dbca/orcl-prod/orcl-prod.log" for further details.

Note

參數 說明
-silent 指以靜默方式執行dbca命令
-createDatabase 指使用dbca
-templateName 指定用來創建數據庫的模板名稱,這裏指定爲General_Purposedbc,即一般用途的數據庫模板
-gdbname 指定創建的全局數據庫名稱,這裏指定名稱爲 orcl-prod
-sid 指定數據庫系統標識符,這裏指定爲 orcl-prod,與數據庫同名
-responseFile 指定安裝響應文件,NO_VALUE表示沒有指定響應文件
-characterSet 指定數據庫使用的字符集,這裏指定爲AL32UTF8
-memoryPercentage 指定用於oracle的物理內存的百分比,這裏指定爲30%
-emConfiguration 指定Enterprise Management的管理選項。
LOCAL 表示數據庫由Enterprise Manager本地管理

數據庫成功安裝之後默認是啓動狀態

檢查

1、進行實例進程檢查

ps -ef | grep ora_ | grep -v grep

2、查看監聽狀態

lsnrctl status

3、登錄查看實例狀態

sqlplus / as sysdba

設置Linux開機自啓動

修改ORACLE_HOME_LISTNER

將$ORACLE_HOME/bin下的dbstart和dbshut
裏面的ORACLE_HOME_LISTNER=$1 修改爲ORACLE_HOME_LISTNER=$ORACLE_HOME

sed -i '/ORACLE_HOME_LISTNER/s/\$1/\$ORACLE_HOME/' $ORACLE_HOME/bin/dbstart
sed -i '/ORACLE_HOME_LISTNER/s/\$1/\$ORACLE_HOME/' $ORACLE_HOME/bin/dbshut

配置oratab

將N改爲Y

sed -i '/orcl-prod/s/N/Y/' /etc/oratab

配置rc.local

cat >> /etc/rc.d/rc.local <<EOF
su oracle -lc "/u01/app/oracle/product/11.2.0.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/11.2.0.2.0/db_1/dbstart
EOF

chmod +x /etc/rc.d/rc.local

以上就oracle11g的靜默安裝了。
2019.3.29 V1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章