CentOS 7 中安裝 Oracle11g R2

準備

  1. 修改用戶的 SHELL 限制:

    vim /etc/security/limits.conf

    添加如下內容:

    oracle   soft    nproc    2047
    oracle   hard    nproc    16384
    oracle   soft    nofile     1024
    
    oracle   hard    nofile    65536
  2. 修改 /etc/pam.d/login 文件

    vim /etc/pam.d/login

    添加如下內容:

    session   required    /lib/security/pam_limits.so
    
    session   required    pam_limits.so
  3. 修改 Linux 內核配置

    vim /etc/sysctl.conf

    添加如下內容:

    fs.file-max = 6815744
    fs.aio-max-nr = 1048576
    kernel.shmall = 2097152
    kernel.shmmax = 2147483648
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 4194304
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048576
    source /etc/sysctl.conf
    # 使修改立即生效,我當時鍵入如下命令時報沒有找到命令,所以重啓了centos
  4. 修改 /etc/profile 文件

    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
    fi
  5. 創建用戶和組

    # 創建用戶組
    groupadd oinstall
    groupadd dba
    
    # 創建用戶並分配用戶組
    # 我安裝時存在 oracle 用戶不在 oinstall 的問題,最好在 /etc/group 中再設置一遍
    useradd -g oinstall -g dba -m oracle
    passwd  oracle
  6. 創建 Oracle 目錄並設置所有權爲 oracle 用戶及其所在組

    mkdir /home/oracle/app
    mkdir /home/oracle/app/oracle
    mkdir /home/oracle/app/oradata
    mkdir /home/oracle/app/oracle/product
    
    chown -R oracle:oinstall /home/oracle/app
  7. 配置 oracle 用戶的環境變量,必須切換到新創建的 oracle 用戶下

    su oracle
    vim .bash_profile

    添加如下內容:

    umask 022
    export ORACLE_BASE=/home/oracle/app
    export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
    export ORACLE_SID=orcl
    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
  8. 安裝必要的包

    yum install -y compat-libstdc*
    yum install -y elfutils-libelf*
    yum install -y gcc*
    yum install -y glibc*
    yum install -y ksh*
    yum install -y libaio*
    yum install -y libgcc*
    yum install -y libstdc*
    yum install -y make*
    yum install -y sysstat*
    yum install libXp* -y
    yum install -y glibc-kernheaders
  9. 修改 oracle 的配置文件(只是修改應答配置文件)

    在解壓的database目錄中有一個response目錄,其中有三個文件:

    1. db_install.rsp 安裝應答配置文件,修改此文件!
    2. dbca.rsp 創建數據庫應答
    3. netca.rsp 建立監聽、本地服務名等網絡設置應答
    # 此文件可以參考 .note/oracle/db_install.rsp
    vim database/response/db_install.rsp

    實際上需要修改的有如下內容:

    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/opt/oracle/oraInventory
    SELECTED_LANGUAGES=en,zh_CN
    ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
    ORACLE_BASE=/home/oracle/app
    oracle.install.db.InstallEdition=EE
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=oinstall
    oracle.install.db.config.starterdb.SID=orcl
    DECLINE_SECURITY_UPDATES=true

安裝

用 oracle 用戶來運行此命令。 請注意 runInstaller 文件存在於 database 目錄下,而不是在 database/install 下。

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

英文環境下的日誌:

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 122202 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4095 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2017-02-06_10-38-53AM. Please wait ...[oracle@piumnl database]$ You can find the log of this install session at:
/opt/oracle/oraInventory/logs/installActions2017-02-06_10-38-53AM.log
The following configuration scripts need to be executed as the "root" user.
\#!/bin/sh
\#Root scripts to run

/opt/oracle/oraInventory/orainstRoot.sh
/home/oracle/app/oracle/product/11.2.0/dbhome_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

安裝完之後的操作

  1. 運行提示中的兩個 sh 文件
  2. 開啓監聽

    lsnrctl status # 查看狀態
    lsnrctl start # 啓動監聽
  3. 額外開啓 em,即 1158 端口的em路徑

    emca -repos create
    # 提示 `嚴重: Dbcontrol 資料檔案庫已存在。  改正錯誤, 然後以獨立模式重新運行 EM Configuration Assistant。`
    
    # 刪除 DBcontrol,此時剛安裝完數據庫,DBControl應該是可以刪除的
    emca -repos drop
    
    # 重新配置並創建
    emca -config dbcontrol db -repos create

測試

通過 su 切換不會改變環境變量,即從 root 切換到 oracle 中不會改變環境變量爲 oracle 的,實際還是 root 的。
su - [username] 似乎可以,但未曾嘗試過。通過 root 切換到 oracle 並在 sqlplus 命令所在目錄下執行 sqlplus
所報的錯誤:
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

使用 oracle 用戶登錄,運行 sqlplus

sqlplus
$ Enter user-name: SYS as SYSDBA
$ Enter password: (直接回車即可)

# 修改SYS用戶的密碼,如此纔可以通過 SQL Developer 訪問,空密碼會報 ora 01031 的錯誤
alter user SYS identified by 123456;  # 注意在生產環境中不能使用這種簡單的密碼。
# 可能會出現如下問題,這是因爲沒有開啓監聽或沒有開啓 oracle 實例:
# *
# ERROR at line 1:
# ORA-01034: ORACLE not available
# Process ID: 0
# Session ID: 0 Serial number: 0
# 開啓監聽的方式
# 退出 sqlplus,並執行 lsnrctl start 命令
# 開啓 oracle 實例
# 進入 sqlplus,執行 startup ,如果被告知已啓動,可以輸入 shutdown immediate; ,等結束後再執行 startup

查看監聽及數據庫狀態,啓用或停止

lsnrctl [status | start | stop ]    # 查看監聽及數據庫狀態,啓用或停止

安裝失敗的問題總結

  1. 錯誤:Email Address Not Specified

    • Oracle 11g R2 中必須指定 metalink 賬號!
    • 也可以在 response file 中設置 DECLINE_SECURITY_UPDATES=true ,而不是默認的false。
  2. 錯誤:[INS-32038] The operating system group specified for central inventory (oraInventory) ownership is invalid.

    • 確認當前安裝的用戶在 UNIX_GROUP_NAME 所設置的用戶組中
    vim /etc/group
  3. 錯誤:[INS-13013] Target environment do not meet some mandatory requirements.

    • 安裝命令中加入選項 -ignorePrereq

運行失敗問題總結

  1. 錯誤: ora-12505:TNS:listener does not currently know of SID given in connect descriptor

    可能是監聽沒有啓動,也可能是 Oracle 實例沒有啓動

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