10201_database_linux_x86_64.cpio.gzgunzip 10201_database_linux_x86_64.cpio.gz
cpio -idmv < 10201_database_linux_x86_64.cpio
安裝前先配置好 JDK 環境變數 (JAVA_HOME, PATH),安裝程式需 JRE 支援圖形介面。
# 查詢必要套件
rpm -q gcc make binutils openmotif setarch libXp
# 缺失套件從 RHEL 5 安裝光碟安裝
# 掛載光碟 → 搜尋 *.rpm → 安裝缺失項 + 所有 compat-* 開頭套件
# 注意:libXp **必須安裝**,光碟無則上網下載
原則:Swap ≥ 物理記憶體
範例:3GB RAM,現有 2GB Swap → 需再增 2GB
# 檢查現狀
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
# 建立 2GB Swap 檔案 (於 /usr)
cd /usr
dd if=/dev/zero of=swap bs=1024 count=2097152 # 1024*2048=2G
/sbin/mkswap swap
/sbin/swapon swap
/sbin/swapon -s # 驗證
# 寫入 /etc/fstab 開機自動掛載
/usr/swap swap swap defaults 0 0
# /etc/sysctl.conf 末尾新增
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
# 套用
sysctl -p
# /etc/security/limits.conf 末尾新增
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
# /etc/pam.d/login 末尾新增
session required pam_limits.so
# /etc/selinux/config
SELINUX=disabled
# 修改後需重啟生效
Oracle 10g 安裝程式不支援 RHEL 5 識別,臨時修改版本檔:
# /etc/redhat-release
# 原內容註解,新增:
Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
# 安裝完成後**必須改回**原內容
# 建立群組
groupadd oinstall
groupadd dba
# 建立 oracle 使用者
useradd -m -g oinstall -G dba oracle
passwd oracle # 設定密碼
# 建立目錄結構
mkdir -p /u01/app/oracle # 軟體安裝目錄 (建議獨立分區/磁碟)
mkdir -p /u02/oradata # 資料檔目錄 (建議獨立分區/磁碟)
# 設定權限
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle /u02/oradata
chmod -R 775 /u01/app/oracle /u02/oradata
必須以 oracle 使用者圖形介面登入** (非 su/sudo 切換),配置 ~/.bash_profile:
# 語言編碼 (避免安裝介面亂碼)
export LC_CTYPE=zh_CN.GB2312-80
# 核心環境變數
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_HOME_LISTNER=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=oracle
export PATH=$HOME/bin:$ORACLE_HOME/bin:$PATH
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/app/tmp
export TMPDIR=/app/tmp
export LANG=zh_CN.UTF-8
unset USERNAME
umask 022
# 切換至 oracle 使用者
cd /opt/database
export DISPLAY=:0.0
./runInstaller
安裝結束彈出視窗,**必須以 root 執行**列出的 2-3 個腳本 (root.sh 等),否則安裝不完整。
# /etc/redhat-release 改回
Red Hat Enterprise Linux Server release 5 (Tikanga)
# 修改 /etc/oratab
oracle:/u01/app/oracle/product/10.2.0/db_1:Y # Y=開機自動啟動
# 修改 $ORACLE_HOME/bin/dbstart
# 註解 ORACLE_HOME_LISTNER=... 行,新增:
ORACLE_HOME_LISTNER=$ORACLE_HOME
# 建立 /etc/rc.d/init.d/oracle 啟動腳本
#!/bin/bash
# chkconfig: 35 95 1
# description: Oracle 10g auto start/stop
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=oracle
export ORACLE_USER=oracle
export PATH=$ORACLE_HOME/bin:$PATH
case "$1" in
start)
su - $ORACLE_USER -c "lsnrctl start"
su - $ORACLE_USER -c "sqlplus /nolog <
chown root:root /etc/rc.d/init.d/oracle
chmod 755 /etc/rc.d/init.d/oracle
chkconfig --add oracle
chkconfig oracle on
# 測試
service oracle start
service oracle stop
# 注意:腳本換行符必須為 Unix 格式 (LF),否則報 "unexpected end of file"
# 用 vi 開啟 :set ff=unix 或 dos2unix 轉換
# 1. 停止資料庫
sqlplus /nolog
connect / as sysdba
shutdown immediate
exit
# 2. 停止監聽器
lsnrctl stop
# 3. 停止 HTTP 服務 (如有)
$ORACLE_HOME/Apache/Apache/bin/apachectl stop
# 4. Root 執行清理
$ORACLE_HOME/bin/localconfig delete
rm -rf $ORACLE_BASE/*
rm -f /etc/oraInst.loc /etc/oratab
rm -rf /etc/oracle
rm -f /etc/inittab.cssd
rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv
# 5. 刪除使用者/群組
userdel -r oracle
groupdel oinstall
groupdel dba
# 6. 移除啟動服務
chkconfig --del oracle
| 坑點 | 解決方案 |
|---|---|
| libXp 缺失 | 光碟無則上網下載 rpm 強制安裝 |
| Swap 不足 | 建立 Swap 檔案並寫入 fstab |
| RHEL 5 版本檢查失敗 | 臨時修改 /etc/redhat-release 偽裝為 AS 4 |
| 安裝介面亂碼 | export LC_CTYPE=zh_CN.GB2312-80 |
| root.sh 未執行 | 安裝結束視窗**必須**以 root 執行 |
| 啟動腳本換行符錯誤 | vi 設定 :set ff=unix 或用 dos2unix |
| 安裝後未恢復 redhat-release | 務必改回,否則 yum/系統更新異常 |
此手冊經實測驗證,涵蓋從 OS 前置到安裝後服務化全流程,適合生產環境標準化部署參考。