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

Oracle 11gR2 Linux (RHEL/OEL) 安裝全流程指南:從環境預檢到數據庫創建

     編輯:Oracle 資料庫基礎

前置聲明

  • 適用平台:RHEL/OEL 5/6/7/8、CentOS 對應版本
  • 架構:x86_64 (64-bit)
  • 數據庫版本:11.2.0.4 (終端補丁集)
  • 原則:預檢不通不過、參數不調不裝、腳本不跑不建

第一階段:OS 環境預檢與依賴包安裝

1. 內核參數 (/etc/sysctl.conf)

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912   # 建議 ≥ 物理內存 50%,單位 bytes
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

生效:sysctl -p

2. 用戶限制 (/etc/security/limits.conf)

oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536

3. PAM 設置 (/etc/pam.d/login)

session required pam_limits.so

4. 必需 RPM 包 (yum 安裝)

yum install -y \
binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel \
gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers \
ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel \
make sysstat unixODBC unixODBC-devel

注意: libaio-devel、unixODBC* 需同時安裝 x86_64 和 i686 版本 (multilib)。

第二階段:用戶、目錄、環境變量

1. 創建用戶組與用戶

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle  # 設置密碼

2. 規劃目錄結構 (OFA 標準)

mkdir -p /u01/app/oracle          # ORACLE_BASE
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1  # ORACLE_HOME
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle

3. 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 PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8  # 推薦 UTF8
export TMP=/tmp
export TMPDIR=/tmp

# 生效
source ~/.bash_profile

第三階段:圖形界面準備與靜默安裝

1. X11 轉發 (Windows 客戶端)

  • 安裝 Xmanager / VcXsrv / MobaXterm
  • SSH 客戶端勾選 X11 Forwarding
  • 服務端 /etc/ssh/sshd_config 確保 X11Forwarding yes
  • 切換 oracle 用戶:xhost + (允許本地 X 連接)

2. 運行安裝程序

# 解壓安裝介質
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
cd database

# 圖形界面
./runInstaller

# 或靜默安裝 (生產推薦)
./runInstaller -silent -responseFile /path/to/db_install.rsp \
-ignorePrereqFailure -waitforcompletion

3. 安裝向關鍵選項

  • 安全更新:跳過 (或配置 My Oracle Support)
  • 安裝選項:Create and configure a database (或軟件安裝後用 DBCA)
  • 系統類:Server Class
  • 安裝類型:Typical / Advanced
  • 存儲:文件系統 (或 ASM)
  • 字符集:AL32UTF8 (Unicode,無亂碼風險)
  • 全局數據庫名:orcl.example.com
  • 管理密碼:統一設置或分項設置

4. 執行 root 腳本 (安裝器提示時)

# 作為 root 執行
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

第四階段:後續配置與驗證

1. 監聽器配置 (NetCA)

# oracle 用戶
netca
# 選擇 Listener configuration → Add → 名稱 LISTENER → TCP 1521 → 完成

2. 創建數據庫實例 (DBCA)

dbca
# 典型流程:Create Database → General Purpose → Global DB Name: orcl → 
# 字符集 AL32UTF8 → 內存管理 Auto (AMM) → 存儲 File System → 完成

關鍵順序: 先 NetCA 配置 Listener,再 DBCA 創建數據庫 (DBCA 會自動註冊服務到 Listener)。

3. 驗證連接

sqlplus / as sysdba
SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;
SELECT OPEN_MODE FROM V$DATABASE;

# 遠程測試
sqlplus system/password@//host:1521/orcl.example.com

4. 常用管理工具

  • SQL Developer (免費 GUI,JDBC Thin 模式,無需 Client)
  • SQL*Plus (命令行,需 Client)
  • EM Database Express (11g: https://host:5500/em)

避坑清單

現象原因對策
DBCA 卡住/報錯Listener 未啟動或端口衝突先 netca 配置並 lsnrctl start
ORA-00845/dev/shm 過小修改 /etc/fstab size=6G 並 remount
字符集亂碼安裝選 US7ASCII/WE8ISO8859P1重裝選 AL32UTF8
EM 無法訪問防火牆/端口 5500/1158 未開firewall-cmd --add-port=5500/tcp
SQL Developer 連不上但 sqlplus 行JDBC Thin 不走 TNS,檢查 Host/Port/SID vs Service_NameJDBC URL 用 Service_Name: //host:1521/orcl

數據遷移提示

  • 邏輯導入:impdp (Data Pump) 替代舊 imp
  • 物理備份:RMAN 完備備份 + 歸檔
  • 跨平台:CONVERT DATABASE / 跨平台表空間傳輸

總結: Oracle 安裝是系統工程,OS 層面參數合規是前提,字符集選型決定未來十年,Listener 先行是鐵律。建議將上述流程封裝為 Ansible Playbook 或 Shell 腳本庫,實現「基礎設施即代碼」。

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