【oracle】靜默安裝 oracle 11gr2

楊奇龍發表於2013-12-07
【序言】
oracle 提供了靜默安裝方法在不適用圖形介面的情況下安裝 oracle 軟體 ,建立db,配置netca,快速完成oracle 的部署。 
在以下情形中可以使用靜默安裝
   a OUI 的 GUI 介面遠端互動比較慢 .
   b 資料庫伺服器無法使用圖形介面訪問.
   c 批量部署oracle (標準環境統一情況下可以使用oracle 的relink ,這樣更加快速).
本文主要講述基本安裝步驟,不涉及oracle 安裝完成之後的運維規範: 監控,備份,定時日誌清理,基礎運維配置。
一 準備工作
1.linux檢查安裝包是否全

  1. rpm -q --queryformat \"%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" binutils \
  2. compat-libstdc++-33 compat-db control-center elfutils-libelf elfutils-libelf-devel gcc \
  3. gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ \
  4. libstdc++-devel make sysstat unixODBC glibc-headers unixODBC-devel \
  5. oracleasm oracleasmlib oracleasm-support \
  6. pdksh sysstat xscreensaver | grep not | grep -v grep | awk '{print "yum install -y " $2 }'
 如果有未安裝的rpm ,則需要手動安裝。
 注意:其中oracleasm oracleasmlib oracleasm-support可以去oracle官方asm lib網站下載

2.OS引數修改
a 修改/etc/sysctl.conf 檔案 新增如下內容:
  1. fs.aio-max-nr = 1048576
  2. fs.file-max = 6815744
  3. kernel.shmall = 2097152
  4. kernel.shmmax = 48719476736
  5. kernel.shmmni = 4096
  6. kernel.sem = 250 32000 200 200
  7. net.ipv4.ip_local_port_range = 9000 65500
  8. net.core.rmem_default = 262144
  9. net.core.wmem_default = 262144
  10. net.core.wmem_max = 1048586
  11. net.core.rmem_max = 4194304
執行:
  1. /sbin/sysctl -p
b  修改/etc/security/limits.conf 新增如下內容: 
  1. oracle soft nproc 2047
  2. oracle hard nproc 16384
  3. oracle soft nofile 1024
  4. oracle hard nofile 65536
c  修改 /etc/pam.d/login 新增如下內容:
  1. session required pam_limits.so
d 修改 /etc/profile
  1. if [ $USER = "oracle" ] ; then
  2. if [ $SHELL = "/bin/ksh" ]; then
  3. ulimit -p 16384
  4. ulimit -n 65536
  5. else
  6. ulimit -u 16384 -n 65536
  7. fi
  8. umask 022
  9. fi
3  建立oracle屬組並新增oracle 使用者
  1. groupadd -g 501 oinstall
  2. groupadd -g 502 dba
  3. groupadd -g 601 asmadmin
  4. groupadd -g 602 asmdba
  5. groupadd -g 603 asmoper
  6. useradd -u 1101 -g oinstall -G dba  oracle
建立oracle軟體安裝目錄
  1. mkdir -p /opt/app/oracle
  2. chown -R oracle:oinstall /opt/app/oracle
  3. chmod -R 775 /opt
4 Oracle環境變數
---oracle .bash_profile 
  1. # .bash_profile
  2. # Get the aliases and functions
  3. if [ -f ~/.bashrc ]; then
  4. . ~/.bashrc
  5. fi
  6. # User specific environment and startup programs
  7. PATH=$PATH:$HOME/bin:/opt/rac/oracle/opatch/OPatch
  8. export PATH
  9. umask 022
  10. export ORACLE_BASE=/opt/app/oracle
  11. export ORACLE_HOME=$ORACLE_BASE/11.2.0/product/db
  12. export ORACLE_SID=orcl
  13. export TNS_ADMIN=$ORACLE_HOME/network/admin
  14. export ORA_NLS10=$ORACLE_HOME/nls/data
  15. export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
  16. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
  17. export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  18. export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  19. export PS1=$LOGNAME@`hostname`:'$PWD>'
  20. export SQLPATH=$ORACLE_HOME/sqlplus/admin:/home/oracle/admin/sql
  21. alias ohome="cd $ORACLE_HOME"
  22. alias tf="tail -f /opt/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log"
  23. alias sql='sqlplus "/"'
  24. alias sqln="sqlplus /nolog"
  25. alias rm='rm -i --'
  26. ulimit -u 16384 -n 63536 #linux
  27. esc="033["
  28. echo " "
  29. echo " "
  30. echo -e "${esc}31;1m******************************************************************${esc}0m"
  31. echo -e "${esc}31;1m***This is PRODUCT , Please be careful of your operation!***${esc}0m"
  32. echo -e "${esc}31;1m******************************************************************${esc}0m"
  33. echo " "
  34. echo " "
二   安裝
1 此步驟很重要,如果忽略1 ,最終會提示inventory 檔案目錄非空 導致靜默安裝失敗 文章末尾會加以說明
vim /etc/oraInst.loc
  1. inventory_loc=/u01/app/oraInventory
    inst_group=oinstall
2 靜默安裝 11.2.0.1 採用 debug模式安裝 ,如果有異常則更容易發現錯誤原因。
  1. ./runInstaller -silent -debug -force -noconfig -IgnoreSysPreReqs \
  2. oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 \
  3. oracle.install.option=INSTALL_DB_SWONLY \
  4. DECLINE_SECURITY_UPDATES=true \
  5. UNIX_GROUP_NAME=oinstall \
  6. INVENTORY_LOCATION=/u01/app/oraInventory \
  7. SELECTED_LANGUAGES=en,zh_CN,zh_TW \
  8. ORACLE_HOME=/u01/app/oracle/product/11.2.0/db \
  9. ORACLE_BASE=/u01/app/oracle \
  10. oracle.install.db.InstallEdition=EE \
  11. oracle.install.db.isCustomInstall=false \
  12. oracle.install.db.DBA_GROUP=dba \
  13. oracle.install.db.OPER_GROUP=dba
安裝完成顯示如下資訊:
oracle 靜默安裝結果
安裝完成之後 系統會提示我們用root使用者執行如下兩個指令碼 。
  1. sh /u01/app/oracle/oraInventory/orainstRoot.sh
  2. sh /u01/app/oracle/product/11.2.0/db /root.sh
附上oracle軟體靜默安裝的引數含義如下:
-silent       表示以靜默方式安裝,不會有任何提示
-force        表示允許安裝到一個非空目錄
-noconfig     表示不執行配置助手netca
-responseFile 表示使用哪個響應檔案,必需使用絕對路徑
oracle.install.responseFileVersion  響應檔案模板的版本,該引數不要更改
oracle.install.option               安裝模式選項,本例只安裝oracle軟體,該引數不要更改
DECLINE_SECURITY_UPDATES            是否需要線上安全更新,設定為false,該引數不要更改
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許可權的組名
3 靜默安裝db 
安裝完成oracle軟體之後還沒建立db,我們可以繼續使用靜默方式建立資料庫。
  1. dbca -silent -responseFile /u01/app/software/database/dbca.rsp
dbca.rsp 檔案內容如下:根據自己的場景進行修改。
  1. [GENERAL]
  2. RESPONSEFILE_VERSION = "11.2.0"
  3. OPERATION_TYPE = "createDatabase"
  4. [CREATEDATABASE]
  5. GDBNAME = "orcl"
  6. SID = "orcl"
  7. TEMPLATENAME = "New_Database.dbt"
  8. SYSPASSWORD = "xxxxxxx"
  9. SYSTEMPASSWORD = "xxxxxxx"
  10. SYSMANPASSWORD = "xxxxxxx"
  11. DBSNMPPASSWORD = "xxxxxxx"
  12. DATAFILEDESTINATION ="/u01/app/oracle/oradata"
  13. STORAGETYPE=FS
  14. CHARACTERSET = "AL32UTF8"
  15. DATABASETYPE = "MULTIPURPOSE"
  16. AUTOMATICMEMORYMANAGEMENT = "FALSE"
  17. TOTALMEMORY =8192
靜默安裝的過程如下:

4 配置網路監聽
  這一步我沒有使用netca的預設方式,而是直接編輯了$ORACLE_HOME/network/admin/ 下的*.ora 檔案。
  根據需求編輯好了之後啟動監聽。
  1. lsnrctl start
5 登陸資料庫


遇到的問題  
問題一 相信這個問題也是很多人也會遇到

  1. [FATAL] [INS-32035] Unable to create a new central inventory at the specified location.
  2. CAUSE: The central inventory location provided is not empty.
  3. ACTION: Please provide another location for the inventory, or clean up the current location.
解決方法:
使用root vim /etc/oraInst.doc 加入
  1. inventory_loc=/u01/app/oraInventory
  2. inst_group=oinstall
問題二
  1. [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
  2. CAUSE: The Central Inventory is located in the Oracle base.
  3. ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
解決方法:
 如提示所言 Inventory 目錄安裝在了$ORACLE_BASE 目錄下了,所以調整Inventory 目錄不在$ORACLE_BASE 目錄下,即可解決問題。

oraInventory 存放Oracle軟體安裝的目錄資訊,Oralce的安裝和升級都需要用到這個目錄,刪除或丟失oraInventory目錄的內容就會導致安裝/升級失敗。
Oracle官方文件對oraInventory的說明:
  1. All Oracle software installations rely on this directory.
  2. Ensure that you back it up regularly.
  3. Do not delete this directory unless you have completely removed
  4. all Oracle software from the system.
oraInventory 目錄的位置是由oraInst.loc 檔案決定的:
/etc/oraInst.loc                (AIX and Linux Platform)
/var/opt/oracle/OraInst.loc (Solaris and HP-UX platform)

四 小結
  說些題外話 因為專案的原因需要安裝一套oracle 系統,谷歌,度娘 靜默安裝 等關鍵詞,大多數文章基本都千篇一律。真不知道寫文章的人是否真正安裝成功?論壇上說學習稱讚的人是否動手驗證過?
  紙上來得終覺淺 ,絕知此事要躬行。
  做一個靠譜的人,更要做一個技術上靠譜的dba。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-1062585/,如需轉載,請註明出處,否則將追究法律責任。

相關文章