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

Oracle Linux 靜默安裝標準流程:系統需求、核心參數、套件依賴、安裝與驗證全紀錄

     編輯:Oracle 資料庫基礎

Oracle Database 在 Linux 上的安裝若缺乏標準化流程,極易遭遇核心參數不足、套件缺失、權限錯誤等問題。本文提供生產級標準安裝流程:硬體需求、OS 套件預裝、核心參數調優、使用者/目錄建立、安裝執行、安裝後配置,並附常見錯誤對策。

一、 硬體與作業系統前置需求

二、 必裝 RPM 套件清單 (Oracle Linux 8 / RHEL 8)

# 使用 dnf/yum 一鍵安裝 (Oracle Linux 含預設倉庫)
dnf install -y \
  oracle-database-preinstall-19c \
  # 以上套件自動處理核心參數、用戶、群組、套件依賴

# 若無 preinstall 套件,手動安裝核心依賴
dnf install -y \
  bc binutils compat-libcap1 compat-libstdc++-33 \
  elfutils-libelf elfutils-libelf-devel fontconfig-devel \
  glibc glibc-devel ksh libaio libaio-devel \
  libgcc libstdc++ libstdc++-devel libXi libXtst \
  make net-tools nfs-utils python3 smartmontools \
  sysstat unixODBC unixODBC-devel

三、 核心參數配置 (/etc/sysctl.conf)

# Oracle Kernel Parameters (依實體記憶體調整)
fs.file-max = 6815744
fs.aio-max-nr = 1048576

kernel.shmall = 2097152
kernel.shmmax = 4398046511104  # 4TB 或 物理記憶體 80%
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

四、 使用者、群組與目錄建立

# 群組
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 racdba

# 使用者
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
echo "oracle:StrongPassw0rd!" | passwd --stdin oracle

# 目錄
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
mkdir -p $ORACLE_HOME
chown -R oracle:oinstall /u01
chmod -R 775 /u01

五、 環境變數配置 (/home/oracle/.bash_profile)

# Oracle Environment
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.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
export TZ=Asia/Taipei
umask 022

六、 安裝執行

  1. 下載 Oracle Database 19c Linux x64 安裝包 (LINUX.X64_193000_db_home.zip)
  2. 解壓至 $ORACLE_HOME:unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
  3. 切換 oracle 用戶:su - oracle
  4. 啟動靜默安裝:
    cd $ORACLE_HOME
    ./runInstaller -silent -waitforcompletion \
      -responseFile $ORACLE_HOME/install/response/db_install.rsp \
      oracle.install.option=INSTALL_DB_SWONLY \
      UNIX_GROUP_NAME=oinstall \
      INVENTORY_LOCATION=/u01/app/oraInventory \
      SELECTED_LANGUAGES=en,zh_TW \
      ORACLE_HOME=$ORACLE_HOME \
      ORACLE_BASE=$ORACLE_BASE \
      oracle.install.db.InstallEdition=EE \
      oracle.install.db.OSDBA_GROUP=dba \
      oracle.install.db.OSOPER_GROUP=oper \
      oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
      oracle.install.db.OSDGDBA_GROUP=dgdba \
      oracle.install.db.OSKMDBA_GROUP=kmdba \
      oracle.install.db.OSRACDBA_GROUP=racdba \
      SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
      DECLINE_SECURITY_UPDATES=true
  5. Root 執行根腳本:/u01/app/oraInventory/orainstRoot.sh、$ORACLE_HOME/root.sh

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

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbname ORCL -sid ORCL \
  -responseFile NO_VALUE \
  -characterSet AL32UTF8 \
  -nationalCharacterSet AL16UTF16 \
  -storageType FS \
  -datafileDestination /u01/oradata \
  -recoveryAreaDestination /u01/fast_recovery_area \
  -recoveryAreaSize 10240 \
  -databaseType MULTIPURPOSE \
  -automaticMemoryManagement false \
  -totalMemory 8192 \
  -sysPassword StrongPassw0rd! \
  -systemPassword StrongPassw0rd! \
  -emConfiguration NONE

八、 安裝後驗證

# 1. 實例狀態
sqlplus / as sysdba
SQL> SELECT instance_name, status, database_status FROM v$instance;

# 2. 監聽狀態
lsnrctl status

# 3. 表空間/資料檔
SQL> SELECT tablespace_name, file_name, bytes/1024/1024 MB FROM dba_data_files;

# 4. 參數檔位置
SQL> SHOW PARAMETER spfile

九、 常見安裝錯誤與對策

項目最低需求生產建議
實體記憶體1 GB (建議 2 GB+)≥ 16 GB (視 SGA/PGA 規劃)
Swap 空間1.5×RAM 或 2 GB≥ 16 GB (配合 HugePages)
/tmp 空間1 GB≥ 10 GB
CPU1 vCPU≥ 8 核 (支援平行查詢)
OS 版本Oracle Linux 7/8, RHEL 7/8Oracle Linux 8 (UEK 內核)
SELinuxDisabledDisabled
防火牆關閉或開放 1521/5500/3938firewalld 精細規則

十、 進階:自動化部署建議

  • 將上述流程封裝為 **Ansible Playbook** / **Shell 腳本庫**,參數化 ORACLE_SID、PASSWORD、STORAGE_PATH
  • 建立 **Golden Image (AMI/Template)** 含預裝套件、核心參數、用戶/目錄,新節點秒級就緒
  • 納入 **CI/CD Pipeline**:代碼變更 → 自動佈建測試環境 → 執行整合測試 → 銷毀

標準化安裝流程 = 可重現 + 可審計 + 可自動化。從硬體清單到安裝後驗證,每一步都有明確驗收標準,是企業級 Oracle 交付的專業底線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤現象根因解決方案
INS-32008 核心參數不足shmmax/sem/file-max 未達標檢查 sysctl -a | grep -E 'shm|sem|file-max',修正後 sysctl -p
INS-13001 套件缺失compat-libstdc++-33 / libaio-devel 等未裝安裝 oracle-database-preinstall-19c 或手動補裝
ORA-01034 ORACLE not available實例未啟動 / ORACLE_SID 錯誤確認 export ORACLE_SID=ORCL,sqlplus / as sysdba → startup
DBCA 建庫卡住/tmp 空間不足 / 熵源不足擴充 /tmp,安裝 rng-tools 或 haveged
EM Express 無法存取5500/5501 埠未開放 / 防火牆開放埠,確認 DBMS_XDB_CONFIG.SETHTTPPORT(5500)