無圖形介面的 AIX 環境下,透過 Response File (靜默安裝) 部署 Oracle 10g R2 (10.2.0.1)。本文記錄從硬體/軟體前置檢查、FTP 傳輸、解壓縮、OS 參數調校、使用者/目錄建立、Response File 定製、runInstaller 靜默執行、Root 腳本執行、建庫腳本與後續 catalog/catproc 執行的完整流程。
10gr2_aix5l64_database.cpio.gz (Release 2, 10.2.0.1.0)。# Windows FTP 上傳 (二進位模式)
ftp> bin
ftp> lcd D:\oracle\software
ftp> put 10gr2_aix5l64_database.cpio.gz
# 遠端儲存於 /home/oracle/
# AIX 端解壓縮
gunzip 10gr2_aix5l64_database.cpio.gz
cpio -idcmv < 10gr2_aix5l64_database.cpio
# 產生 Disk1/ 目錄
| 項目 | 指令 | 最低需求 | 實測值 |
|---|---|---|---|
| 實體記憶體 | lsattr -El sys0 -a realmem | 512 MB | 1,048,576 KB (1GB) ✓ |
| Swap 空間 | lsps -a | 1 GB (RAM×2 上限 2GB) | 512 MB → 需擴充至 2GB |
| /tmp 空間 | df -k /tmp | 400 MB | ~900 MB ✓ |
| Oracle 目錄空間 | df -k /data1 | 4 GB | ~10 GB ✓ |
| 64-bit Kernel | getconf HARDWARE_BITMODE | 64 | 64 ✓ |
| CPU 數/主頻 | lsdev -C | grep proc; lsattr -El proc0 | - | 2× PowerPC_RS64-III @ 752 MHz |
# OS Level
oslevel -r
# 5200-01 (需 >= 5200-01)
# 必要檔案集
lslpp -l bos.adt.base bos.adt.lib bos.adt.libm \
bos.perf.perfstat bos.perf.libperfstat bos.perf.proctools
# 缺漏 bos.perf.proctools -> smitty install 安裝
# APAR 推薦補丁 (部分針對 SDK 1.4,非必要可略)
instfix -i -k "IY43980 IY44810 IY45462 IY45707 IY46214 IY46605 IY48525 IY51801"
# IY48525, IY51801 缺失屬 SDK 1.4 相關,若不使用 1.4 可忽略
# 群組
mkgroup -'A' id=500 oinstall
mkgroup -'A' id=501 dba
# 使用者
mkuser -'A' id=500 pgrp=oinstall groups=dba home=/home/oracle shell=/usr/bin/bash oracle
passwd oracle
# 目錄結構 (OFA 模式)
su - oracle
mkdir -p /home/oracle/admin/ORCL/{cdump,bdump,udump,pfile}
mkdir -p /home/oracle/oradata/ORCL
mkdir -p /home/oracle/product/10.2.0
# ~/.profile
ORACLE_BASE=/home/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0
ORACLE_SID=ORCL
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH
export PATH
umask 022
source ~/.profile 生效。
# 模板複製
cp $ORACLE_SOURCE/Disk1/response/enterprise.rsp $HOME/myinst.rsp
vi $HOME/myinst.rsp
# 必須修改的關鍵參數 (格式: 字串用雙引號、布林 True/False、數字直接寫)
ORACLE_HOME="/home/oracle/product/10.2.0"
ORACLE_HOME_NAME="ORCL_HOME"
s_nameForDBAGrp="dba"
s_nameForOPERGrp="dba"
SHOW_DATABASE_CONFIGURATION_PAGE=false
b_createStarterDB=false # 不建立種子資料庫,改用腳本建庫
SHOW_DATABASE_OPTIONS_PAGE=false
s_dbCharacterSet="ZHS16GBK" # 或 AL32UTF8
s_globalDBName="ORCL.mydomain.com"
s_dbSid="ORCL"
SHOW_DATABASE_MANAGEMENT_PAGE=false
SHOW_DATABASE_FILE_STORAGE_OPTION_PAGE=false
SHOW_BACKUP_RECOVERY_OPTION_PAGE=false
SHOW_SCHEMA_PASSWORDS_PAGE=false
注意:b_createStarterDB=false 避免靜默安裝階段建庫失敗導致整體回滾;改用 Phase 7 自訂腳本建庫。
# 1. Root 執行預檢腳本
su - root
cd /home/oracle/Disk1
./rootpre.sh
# 2. Oracle 使用者執行安裝
su - oracle
cd /home/oracle/Disk1
./runInstaller -silent -responseFile /home/oracle/myinst.rsp -ignoreSysPrereqs
# 監控安裝日誌
tail -f /home/oracle/oraInventory/logs/installActions*.log
# 或
tail -f /tmp/OraInstall*.log
$ORACLE_HOME/root.sh (以 root 執行)。常見失敗:Response File 參數格式錯誤 (缺雙引號、布林值大小寫)、OS 補丁缺漏、權限不足。
su - root
/home/oracle/product/10.2.0/root.sh
# 輸出應顯示:
# - 環境變數設定
# - /etc/oratab 更新
# - /usr/local/bin 建立 oraenv, coraenv, dbhome 連結
# - 完成無錯誤
CREATE DATABASE 'ORCL'
LOGFILE
GROUP 1 ('/home/oracle/oradata/ORCL/redo01.log') SIZE 100M,
GROUP 2 ('/home/oracle/oradata/ORCL/redo02.log') SIZE 100M,
GROUP 3 ('/home/oracle/oradata/ORCL/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
DATAFILE '/home/oracle/oradata/ORCL/system01.dbf' SIZE 256M
UNDO TABLESPACE UNDOTBS
DATAFILE '/home/oracle/oradata/ORCL/undotbs01.dbf' SIZE 200M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
SYSAUX DATAFILE '/home/oracle/oradata/ORCL/sysaux01.dbf' SIZE 100M
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE '/home/oracle/oradata/ORCL/temp01.dbf' SIZE 512M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16;
sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/home/oracle/admin/ORCL/pfile/init.ora'; # 含 db_name, control_files, memory 等
@create_db.sql
-- 必須執行以建立資料字典視圖、同義詞、PL/SQL 套件
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
-- 選擇性:標準審計、Java、XDB、OWM 等
@?/rdbms/admin/cataudit.sql
@?/javavm/install/initjvm.sql
@?/rdbms/admin/catqm.sql
若跳過 catalog.sql/catproc.sql,資料庫將缺少核心視圖 (DBA_*, V$*) 與 PL/SQL 內建套件 (DBMS_*, UTL_*),應用無法正常運作。
# netca 靜默配置 (或手寫 listener.ora)
netca /silent /responsefile /home/oracle/Disk1/response/netca.rsp
# 啟動監聽器
lsnrctl start
# 驗證連線
sqlplus system/manager@ORCL
tnsping ORCL
b_createStarterDB=false 避開建庫風險。