1. 程式人生 > >Linux CentOS 6.9 64位雲主機 靜默安裝Oracle11g和配置

Linux CentOS 6.9 64位雲主機 靜默安裝Oracle11g和配置

通過SSH遠端連線雲主機,上傳oracle11g安裝包,在centos6.9上無圖形化介面靜默安裝oracle11g。

工具&環境

   1、本地環境windows8+ssh遠端連線工具CRT7.3.3 

   2、遠端雲主機CentOS6.9 64位系統  

   3、安裝包檔案linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip

雲主機要求

   1、最小記憶體1G,推薦2G或2G以上

   2、1GB跟2GB實體記憶體之間的,設定swap大小為實體記憶體的1.5倍
      2GB跟16GB實體記憶體之間的,設定swap大小與實體記憶體相等
      16GB實體記憶體以上的,設定swap大小為16GB

     3、硬碟要求空間至少5-6GB

安裝步驟

安裝依賴包
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++
glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686
libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel zip unzip

設定swap空間

1.在/home/下生成swap檔案 設定大小2GB
  dd if=/dev/zero of=/home/swapfile bs=1M count=2048

2.設定使用/home/swapfile交換檔案
  mkswap /home/swapfile

3.啟用交換分割槽
  swapon /home/swapfile

4.編輯檔案/ect/fstab 
  vi /etc/fstab

 以便引導系統時啟用交換檔案,檔案最下方插入 
  /home/swapfile swap swap defaults 0 0

新增oracle使用者

建立oinstall、dba組 將oracle使用者加入組 修改並設定oracle使用者密碼
  groupadd oinstall
  groupadd dba
  useradd -g oinstall -G dba oracle
  passwd oracle

修改核心引數

編輯檔案/etc/sysctl.conf  
  vi /etc/sysctl.conf

配置檔案內加入 修改以下引數。如果沒有可以自己新增,如果預設值比參考值大,則不需要修改。
  fs.aio-max-nr = 1048576
  fs.file-max = 6815744
  kernel.shmall = 2097152
  kernel.shmmax = 536870912
  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 = 1048586

執行命令sysctl使其自檢並生效
  sysctl -p

修改使用者資源限制

1.修改/etc/security/limits.conf配置檔案
    vi /etc/security/limits.conf

2.配置檔案下方加入
    oracle              soft    nproc  2047
    oracle              hard    nproc  16384
    oracle              soft    nofile  1024
    oracle              hard    nofile  65536
    oracle              soft    stack   10240

vi /etc/profile 
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使設定生效
3.修改/etc/pam.d/login配置檔案
    vi /etc/pam.d/login  
  
4.配置檔案內加入
    session required /lib64/security/pam_limits.so 
    session required pam_limits.so

建立安裝目錄

我的資料盤掛在/opt目錄
建立安裝目錄  /opt/oracle     /opt/oraInventory     /opt/oradata  並賦予組使用者及許可權
  mkdir -p /opt/oracle /opt/oraInventory /opt/oradata/
  chown -R oracle:oinstall /opt/oracle /opt/oraInventory /opt/oradata
  chmod -R 775 /opt/oracle /opt/oraInventory /opt/oradata

建立oraInst.loc檔案

建立/etc/oraInst.loc檔案

  vi /etc/oraInst.loc

檔案內加入以下內容

  inventory_loc=/opt/oraInventory
  inst_group=oinstall

儲存退出後執行以下命令。設定該檔案的使用者組及許可權。

  chown oracle:oinstall /etc/oraInst.loc
  chmod 664 /etc/oraInst.loc

通過CRT  rz命令上傳zip檔案並解壓

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
待解壓完畢後會生成資料夾/opt 修改其使用者組及許可權此處直接使用777

    chmod 777 /opt/database
    chown -R oracle.oinstall /opt/database

準備oracle安裝應答模板檔案db_install.rsp檔案

1、該檔案預設存放在解壓後的安裝包內,也就是本例中/opt/database/response下,
  將oracle靜默安裝所需應答檔案全部拷貝至 /opt/oracle資料夾下

    cp /opt/database/response/* /opt/oracle/

2、修改安裝所需的所有應答檔案的所屬組及許可權

    chown oracle:oinstall /opt/oracle/*.rsp
    chmod 755 /opt/oracle/*.rsp

3、配置db_install.rsp檔案

    vi /opt/oracle/db_install.rsp 

4、檔案內修改相應的引數配置如下:

   oracle.install.option=INSTALL_DB_SWONLY    //29行,安裝型別,只裝資料庫軟體
   ORACLE_HOSTNAME=hostxxx                    //37行,主機名稱(命令hostname查詢)
   UNIX_GROUP_NAME=oinstall                   //42行,安裝組
   INVENTORY_LOCATION=/opt/oraInventory //47行,INVENTORY目錄(**不填就是預設值,本例此處需修改,因個人建立安裝目錄而定)
  SELECTED_LANGUAGES=en,zh_CN,zh_TW    //78行,選擇語言
  ORACLE_HOME=/opt/oracle/product/11.2.0/db_1  //83行,路徑根據目錄情況注意修改 本例安裝路徑/opt/oracle
  ORACLE_BASE=/opt/oracle                      //88行,路徑根據目錄情況注意修改
  oracle.install.db.InstallEdition=EE                  //99行,oracle版本
  oracle.install.db.isCustomInstall=false              //108行,自定義安裝,否,使用預設元件
  oracle.install.db.DBA_GROUP=dba                      //142行,dba使用者組
  oracle.install.db.OPER_GROUP=oinstall                //147行,oper使用者組
  oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   //160行,資料庫型別
  oracle.install.db.config.starterdb.globalDBName=orcl      //165行,globalDBName
  oracle.install.db.config.starterdb.SID=orcl          //170行,SID(**此處注意與環境變數內配置SID一致)
  oracle.install.db.config.starterdb.memoryLimit=81920      //200行,自動管理記憶體的記憶體(M)
  oracle.install.db.config.starterdb.password.ALL=oracle    //233行,設定所有資料庫使用者使用同一個密碼
  SECURITY_UPDATES_VIA_MYORACLESUPPORT=false                //376行
  DECLINE_SECURITY_UPDATES=true                 //385行,設定安全更新 設定一定要為true

設定oracle使用者環境

由root切換至建立好的oracle使用者
  su - oracle
修改該使用者的使用者配置檔案
  vi .bash_profile
檔案內加入並修改至以下內容
  export ORACLE_BASE=/opt/oracle
  export ORACLE_SID=orcl    
  注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不設定任何oracle相關環境變數(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。

儲存退出後執行source /home/oracle/.bash_profile使設定生效

在oracle使用者下開始安裝

執行命令。
/opt/database/./runInstaller -silent -force -ignorePrereq -responseFile /opt/oracle/db_install.rsp

引數說明  
  /opt/database是安裝包解壓後的路徑,此處根據安裝包解壓所在位置做修改,因人而異。
  runInstaller 是主要安裝指令碼
  -silent 靜默模式
  -force 強制安裝
  -ignorePrereq忽略warning直接安裝。
  -responseFile讀取安裝應答檔案。

CRT另起視窗並切換到root使用者檢測安裝過程

通過 watch -d -n 2 'du -sh /opt/oracle' 監測oracle安裝目錄是否變化。或者直接tail -f命令監測安裝log日誌。

  tailf /opt/oraInventory/logs/installActions2018-08-12_11-02-03AM.log

  安裝成功後會會提示如下:

  INFO: Exit Status is 0
  INFO: Shutdown Oracle Database 11g Release 2 Installer

等待安裝編譯直至出現以下內容,在新建立的root視窗內執行以下提示內的指令碼

既 /opt/oracle/product/11.2.0/db_1/root.sh

The following configuration scripts need to be executed as the "root" user.
 #!/bin/sh
 #Root scripts to run

/opt/oracle/product/11.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.

增加oracle環境變數

所有export項:

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_SID=orcl
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data

執行source /home/oracle/.bash_profile使設定生效

靜默配置網路

$ORACLE_HOME/bin/netca /silent /responseFile  /opt/oracle/netca.rsp

靜默安裝資料庫

修改僅安裝資料庫的響應檔案

vi /opt/oracle/dbca.rsp

GDBNAME="orcl.hostxxx" //78行,全域性資料庫的名字=SID+主機域名

SID="orcl" //149行,SID

CHARACTERSET="AL32UTF8" //415行,編碼

NATIONALCHARACTERSET="UTF8" //425行,編碼

執行靜默安裝資料庫

$ORACLE_HOME/bin/dbca -silent -responseFile   /opt/oracle/dbca.rsp

建庫後例項檢查

ps -ef | grep ora_ | grep -v grep | wc -l

ps -ef | grep ora_ | grep -v grep

建庫後監聽檢查

lsnrctl status

設定配置服務名和監聽器

cd /opt/oracle/product/11.2.0/db_1/network/admin

tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
        (SID_NAME = orcl)
        (GLOBAL_DBNAME=orcl)
        (ORACLE_HOME = /opt/oracle/product/11.2.0/db_1)
        (PRESPAWN_MAX=20)
        (PRESPAWN_LIST=(PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1)))
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )
ADR_BASE_LISTENER = /opt/oracle

sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /opt/oracle