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

Oracle 一鍵安裝與建庫 Shell 腳本實戰指南

     編輯:Oracle 教學

Oracle 一鍵安裝與建庫 Shell 腳本實戰指南

本文分享一個用於自動化 Oracle 資料庫安裝與建庫的 Shell 腳本。該腳本涵蓋從作業系統層面的使用者/群組建立、核心參數調整、環境變數設定,到 Oracle 軟體靜默安裝、監聽器配置、資料庫建立(DBCA)的完整流程。適合在 Linux 環境下進行標準化、可重複的 Oracle 部署。

腳本核心功能模組

  • 前置檢查與環境準備:自動建立 oracle 使用者、oinstall/dba 群組,設定密碼、目錄權限。
  • 配置檔解析:讀取 config.conf 獲取軟體路徑、SID、ORACLE_BASE/HOME、資料庫名稱等關鍵參數,支援預設值回填。
  • 作業系統優化:自動修改 /etc/sysctl.conf(核心參數)、/etc/security/limits.conf(資源限制)、/etc/pam.d/login、/etc/profile。
  • Oracle 使用者環境變數:向 ~/.bash_profile 寫入 ORACLE_SID、ORACLE_BASE、ORACLE_HOME、PATH、LD_LIBRARY_PATH、CLASSPATH 等。
  • 靜默安裝回應檔生成:動態產生 db_install.rsp,指定企業版、字元集、儲存路徑、安全選項等。
  • 軟體安裝與 Root 腳本執行:以 oracle 身分啟動 runInstaller -silent,輪詢日誌判斷完成,自動執行 orainstRoot.sh 與 root.sh。
  • 監聽器配置:使用 netca -silent 建立預設監聽器。
  • 資料庫建立 (DBCA):產生 dbca.rsp,呼叫 dbca -silent -createDatabase 完成建庫,設定 SYS/SYSTEM 密碼。

關鍵程式碼片段說明

1. 使用者與群組建立

#!/bin/bash
# 檢查 oracle 使用者是否存在,不存在則建立
if ! id oracle &>/dev/null; then
    /usr/sbin/groupadd oinstall
    /usr/sbin/groupadd dba
    /usr/sbin/useradd -g oinstall -G dba -d /home/oracle oracle
    echo "oracle" | passwd --stdin oracle
fi

2. 核心參數與資源限制調整

# 附加到 /etc/sysctl.conf
cat >> /etc/sysctl.conf <<EOF
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
kernel.shmmax = 957691904
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
EOF
sysctl -p

# 附加到 /etc/security/limits.conf
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF

3. 靜默安裝回應檔 (db_install.rsp) 關鍵參數

oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOME=/oracle/db11g
ORACLE_BASE=/oracle
INVENTORY_LOCATION=/oracle/Inventory
oracle.install.db.InstallEdition=EE
SELECTED_LANGUAGES=zh_CN,en
UNIX_GROUP_NAME=oinstall
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES

4. DBCA 建庫回應檔 (dbca.rsp) 關鍵參數

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET = "AL16UTF16"
MEMORYPERCENTAGE = 40
EMCONFIGURATION = "DBEXPRESS"

使用建議與注意事項

  1. 請根據實際環境修改 config.conf 中的路徑與參數(如 SOFTWARE_HOME 指向解壓後的 database 目錄)。
  2. 腳本需以 root 身分執行;Oracle 軟體安裝與 DBCA 步驟會自動切換到 oracle 使用者。
  3. 生產環境建議先在測試機驗證,並根據硬體資源調整 SGA/PGA、程序數、檔案句柄等參數。
  4. 若使用 ASM 或 RAC,需額外配置磁碟群組與叢集節點資訊,本腳本僅針對單機檔案系統部署。
  5. 安裝完成後,請檢查 /oracle/711/setupDatabase.out、netca.log、dbca.log 確認無錯誤。

總結

這支腳本將 Oracle 11gR2 的繁瑣安裝過程封裝為可重複執行的自動化流程,大幅降低人工操作風險,適合批次部署、環境快速重建或 CI/CD 流程整合。實際落地時,建議搭配版本控制(Git)管理配置檔與腳本,並加入錯誤通知與回滾機制,打造更健壯的資料庫交付管線。

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