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

Linux 平台 Oracle 安裝配置寶典:從前置準備到資料庫建立

     編輯:Oracle 資料庫基礎

安裝類型與版本選擇

安裝端類型適用場景
伺服器端企業版 / 標準版典型安裝、最小安裝、自訂安裝
客戶端管理員/程式設計師/應用使用者/自訂開發、管理、應用連線

系統需求基準

項目最低需求建議配置
記憶體128 MB≥ 256 MB (現代環境建議 ≥ 4GB)
Swap400 MB 或 2×RAM≥ 2×RAM (小記憶體) / 1×RAM (大記憶體)
磁碟空間 (伺服器典型)750 MB≥ 5 GB (含資料檔、備份、日誌)
磁碟空間 (客戶端管理員)350 MB≥ 1 GB
核心版本Linux 2.2+2.6 / 3.x / 4.x / 5.x
JRE1.1.6+JDK 1.8 / 11 (安裝程式需求)
圖形介面X WindowGNOME / KDE / Xfce

安裝前核心準備工作

1. 核心參數調優 (傳統 2.4/2.6 核心修改原始碼重編譯)

現代發發行 (RHEL 6+/OEL 6+/SLES 11+) 已透過 /etc/sysctl.conf 動態調整,無需重編譯核心。以下為歷史參考:


# /usr/src/linux/include/asm/param.h
SHMMAX = 物理記憶體 * 0.5
SHMMIN = 1
SHMMNI = 100
SHMSEG = 10

# /usr/src/linux/include/linux/sem.h
SEMMNI = 100
SEMMSL = processes 參數 + 10
SEMMNS = 所有資料庫 processes 總和 + 10
SEMOPM = 100
SEMMX = 32767

# 重編譯核心
make dep && make clean && make bzImage
# 替換 /boot/vmlinuz 並更新 grub/lilo,重啟生效

2. 現代系統核心參數配置 (/etc/sysctl.conf)


# Oracle 10g/11g/12c/19c 通用建議
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295  # 4GB 或物理記憶體 50% 取較大值
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

3. 使用者限制 (/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

4. PAM 配置 (/etc/pam.d/login)


session required pam_limits.so

5. 建立使用者、群組與目錄


groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin

useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin oracle
passwd oracle

mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02

6. Oracle 使用者環境變數 (~oracle/.bash_profile)


# 語言編碼
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

# 核心路徑
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 TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm

# 臨時目錄
export TEMP=/tmp
export TMPDIR=/tmp

umask 022

7. 安裝介質準備


# 光碟掛載
mount /dev/cdrom /mnt/cdrom

# 或解壓下載檔
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
# 合併 database 目錄
chown -R oracle:oinstall /path/to/database

資料庫安裝流程 (OUI 圖形介面)


# oracle 用戶圖形登入
cd /path/to/database
export DISPLAY=:0.0
./runInstaller

關鍵選項決策表

步驟建議選擇理由
安裝類型自訂安裝精確控制元件,避免安裝不需組件
Unix 群組名oinstallInventory 擁有群組
資料庫版本企業版功能完整
安裝內容**取消勾選 InterMedia**歷史版本穩定性較差,現代版已整合為 Oracle Text
建立資料庫**否 (稍後用 DBCA 建立)**分離軟體安裝與資料庫建立,利於模板化、自動化
Root 執行腳本依提示執行 root.sh設定權限、建立 /etc/oratab、註冊服務

資料庫建立 (DBCA) 最佳實踐

  1. 啟動:`dbca` (圖形) 或 `dbca -silent -responseFile ...` (靜默)
  2. 範本:一般用途 / 交易處理 / 數據倉庫 / 自訂
  3. 字符集:**AL32UTF8 (Unicode)** — 避免亂碼、支援多語言
  4. 儲存:檔案系統 / ASM / 原始裝置
  5. 啟用封存模式 (ARCHIVELOG) — 生產環境必須
  6. 配置 Enterprise Manager (Database Control / Cloud Control)
  7. 設定自動備份策略 (RMAN + Flash Recovery Area)

安裝後關鍵配置

1. 監聽器配置 (NetCA / 手動編輯 listener.ora)


# listener.ora 範例
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )

2. 服務自動啟動配置


# /etc/oratab
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y

# systemd 服務檔 (現代 Linux)
# /etc/systemd/system/oracle-db.service
[Unit]
Description=Oracle Database
After=network.target

[Service]
Type=forking
User=oracle
Environment=ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
Environment=ORACLE_SID=orcl
ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME
ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME
TimeoutSec=0

[Install]
WantedBy=multi-user.target

# 啟用
systemctl daemon-reload
systemctl enable oracle-db
systemctl start oracle-db

常見安裝失敗排查

錯誤現象原因解決
DISPLAY 變數未設定/連線被拒X11 轉發未開啟/權限不足`export DISPLAY=:0.0`、`xhost +`、確認 SSH -X
核心參數檢查失敗sysctl 參數不足修改 /etc/sysctl.conf、`sysctl -p`
Swap 空間不足Swap < RAM新增 Swap 分區/檔案
libaio / libstdc++ 缺失套件未安裝`yum install libaio libaio-devel gcc-c++ compat-libstdc++-33`
權限被拒 (ORA-01031)非 dba 群組/環境變數錯確認 `id oracle`、環境變數正確
字符集選擇錯誤選 US7ASCII/WE8ISO8859P1**必選 AL32UTF8**

總結:成功關鍵在於「準備工作」

只要前置準備 (OS 參數、使用者、目錄、環境變數、介質) 做扎實,OUI 安裝與 DBCA 建庫過程極其順暢。所有參數建庫後均可動態調整,**無需擔心一次設錯無法挽回**。

本寶典整合了傳統核心重編譯時代與現代 sysctl 動態調整時代的最佳實踐,適合 Oracle 10g~19c 全版本 Linux 部署參考。

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