首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Linux (CentOS) 安裝 Oracle Database 完整步驟

     編輯:Oracle 資料庫基礎

前言

在 Linux 上安裝 Oracle Database 需嚴格遵循官方預安裝需求:作業系統版本、核心參數、必要 RPM 套件、使用者/群組、目錄權限、環境變數等。本文以 CentOS 4.8 / Oracle 11g 為例,整理標準化安裝流程,適用於 10g/11g/12c/19c 的核心步驟。

一、建立使用者與群組

# 建立群組
groupadd oinstall
groupadd dba
groupadd oper   # 可選,操作員權限

# 建立 oracle 使用者,主群組 oinstall,附屬群組 dba,oper
useradd -g oinstall -G dba,oper -d /u01/app/oracle oracle

# 設定密碼
passwd oracle

# 建立基礎目錄並設定權限
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01

關鍵: /u01 為 ORACLE_BASE,安裝程式會在其下建立 product/11.2.0/dbhome_1 等目錄。

二、檢查與安裝必要 RPM 套件

Oracle 官方文件列出各版本所需套件清單。以 Oracle 11g R2 on RHEL 5/6 為例:

# 檢查套件是否已安裝
rpm -q binutils compat-libstdc++-33 elfutils-libelf gcc gcc-c++ glibc glibc-common glibc-devel \
ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

# 缺失套件從安裝光碟或 yum 安裝
yum install -y binutils compat-libstdc++-33 elfutils-libelf gcc gcc-c++ glibc glibc-common glibc-devel \
ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

提示: Oracle 19c 需額外 smartmontools、net-tools、policycoreutils 等,請參照對應版本《Installation Guide》Appendix。

三、修改核心參數

1. /etc/sysctl.conf

# Oracle 11g 建議值(依實體記憶體調整)
kernel.shmall = 2097152
kernel.shmmax = 2147483648      # 建議為實體記憶體 50%~80%,單位 bytes
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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

套用:sysctl -p

2. /etc/security/limits.conf

oracle  soft  nproc  2047
oracle  hard  nproc  16384
oracle  soft  nofile 1024
oracle  hard  nofile 65536
oracle  soft  stack  10240
oracle  hard  stack  32768

3. /etc/pam.d/login

session  required  /lib/security/pam_limits.so
session  required  pam_limits.so

4. /etc/profile(或 oracle 用戶 .bash_profile)

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi

四、設定 Oracle 使用者環境變數

切換至 oracle 用戶編輯 ~/.bash_profile:

# Oracle Settings
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORA_NLS11=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$PATH
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

# 顯示設定(若使用 X11 Forwarding)
# export DISPLAY=localhost:0.0

生效:source ~/.bash_profile,驗證:env | grep ORA

五、網路與主機名稱設定

編輯 /etc/hosts,確保主機名稱解析正確:

127.0.0.1   localhost.localdomain localhost
192.168.1.100  dbserver.example.com dbserver

安裝程式檢查時會驗證主機名稱解析,錯誤會導致「Network configuration」警告。

六、建立回應檔進行靜默安裝(可選)

# 解壓安裝檔
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

# 編輯回應檔 database/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=dbserver.example.com
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_TW
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=oper
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

執行靜默安裝:

cd database
./runInstaller -silent -responseFile `pwd`/response/db_install.rsp -ignorePrereq

七、執行根使用者腳本

安裝結束時提示以 root 執行:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

八、建立資料庫 (DBCA 靜默)

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbname orcl -sid orcl \
  -sysPassword SysPassword1 -systemPassword SysPassword1 \
  -sysmanPassword SysPassword1 -dbsnmpPassword SysPassword1 \
  -characterSet AL32UTF8 -nationalCharacterSet AL16UTF16 \
  -storageType FS -datafileDestination /u01/app/oracle/oradata \
  -recoveryAreaDestination /u01/app/oracle/fast_recovery_area \
  -totalMemory 2048

九、安裝後驗證

# 檢查 listener
lsnrctl status

# 連線測試
sqlplus / as sysdba
SQL> SELECT instance_name, status FROM v$instance;

# 檢查企業管理器 (若安裝)
emctl status dbconsole

常見安裝失敗排查

錯誤原因與解決
libstdc++.so.5 not found缺少 compat-libstdc++-33 → yum install compat-libstdc++-33
DISPLAY not set圖形安裝需 X11 → 設定 export DISPLAY=localhost:0.0 或使用靜默安裝
記憶體不足swap 空間小於建議值 → 增加 swap 分區或檔案
核心參數不符sysctl -p 未生效或數值過小 → 檢查 /etc/sysctl.conf 並重新套用
權限錯誤目錄擁有者非 oracle:oinstall → chown -R oracle:oinstall /u01

參考:Oracle Database Installation Guide for Linux (對應版本)。生產環境建議使用 Oracle Preinstallation RPM (oracle-database-preinstall-19c) 自動完成大部分預安裝配置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved