本文系統整理 Oracle Database 11g Release 2 (11.2.0.x) 在 Red Hat Enterprise Linux 5/6 / CentOS 5/6 上的標準化安裝流程,涵蓋作業系統前置需求、使用者/群組、核心參數、資源限制、環境變數、靜默/圖形安裝、安裝後驗證、服務管理、邏輯備份恢復等全生命週期操作。
# RHEL 6.x 範例(需掛載 ISO 或配置 yum 源)
yum -y groupinstall "X Window System" "Desktop" "Desktop Platform" "Chinese Support" "Development Tools"
# 必要單套件
yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel
# 修正字體配置避免安裝介面亂碼
cd /usr/lib/jvm/jre-1.6.0/lib
mv fontconfig.bfc fontconfig.bfc.origin
cp fontconfig.RedHat.6.bfc fontconfig.bfc
rpm -e ksh 2>/dev/null
rpm -ivh ksh-5.2.14-36.el5.i386.rpm # 從 RHEL 5 媒體取得
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper -d /home/oracle -m oracle
echo "oracle" | passwd --stdin oracle
mkdir -p /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 957691904
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
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
session required pam_limits.so
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
# 允許 X11 轉發
export DISPLAY=:0.0
unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zipsu - oraclecd database && ./runInstaller -jreLoc /usr/lib/jvm/jre-1.6.0/opt/oracle/opt/oracle/product/11.2.0/dbhome_1/opt/oracle/oradata/opt/oracle/oraInventoryAL32UTF8(建議)/opt/oracle/oraInventory/orainstRoot.sh、/opt/oracle/product/11.2.0/dbhome_1/root.sh-- SQL*Plus 連線
sqlplus sys as sysdba
-- 查看版本與元件
SELECT * FROM v$version;
SELECT comp_name, version, status FROM dba_registry;
-- EM Database Control
https://:1158/em/ (11g) 或 https://:5500/em/ (12c+)
#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle Database startup/shutdown script
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
ORACLE_OWNER=oracle
export ORACLE_HOME ORACLE_OWNER
case "$1" in
start) su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" ;;
stop) su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" ;;
*) echo "Usage: $0 {start|stop}"; exit 1 ;;
esac
chmod +x /etc/init.d/oracle
chkconfig --add oracle
chkconfig oracle on
service oracle start
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y
| 組件 | 指令 | 預設埠 |
|---|---|---|
| 監聽器 | lsnrctl start/status/stop | 1521 |
| 資料庫實例 | sqlplus / as sysdba → startup/shutdown | - |
| EM Database Control | emctl start/stop/status dbconsole | 1158 (11g) / 5500 (12c+) |
| 自動啟動腳本 | dbstart $ORACLE_HOME / dbshut $ORACLE_HOME | - |
CREATE DIRECTORY dmpdir AS '/opt/mydbbackup';
GRANT READ, WRITE ON DIRECTORY dmpdir TO system;
GRANT READ, WRITE ON DIRECTORY dmpdir TO sysman;
# 單一綱要
expdp system/manager@orcl DIRECTORY=dmpdir DUMPFILE=scott_$(date +%F).dmp SCHEMAS=SCOTT LOGFILE=exp_scott.log
# 全庫
expdp system/manager@orcl DIRECTORY=dmpdir DUMPFILE=full_$(date +%F).dmp FULL=Y LOGFILE=exp_full.log
# 綱要級(REPLACE 覆蓋同名物件)
impdp system/manager@orcl DIRECTORY=dmpdir DUMPFILE=scott_2024-01-15.dmp SCHEMAS=SCOTT TABLE_EXISTS_ACTION=REPLACE LOGFILE=imp_scott.log
# 全庫
impdp system/manager@orcl DIRECTORY=dmpdir DUMPFILE=full_2024-01-15.dmp FULL=Y TABLE_EXISTS_ACTION=REPLACE LOGFILE=imp_full.log
glibc-2.12-1.212.el6.i686
glibc-devel-2.12-1.212.el6.i686
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6.i686
compat-libstdc++-33-3.2.3-69.el6.i686
libgcc-4.4.7-23.el6.i686
libstdc++-4.4.7-23.el6.i686
unixODBC-2.2.14-14.el6.i686
unixODBC-devel-2.2.14-14.el6.i686
Oracle 11gR2 在 RHEL/CentOS 上的標準化部署關鍵在於:嚴格遵循預安裝需求(套件、核心參數、限制)、統一環境變數、採用靜默安裝回應檔實現自動化、建立系統服務實現開機自啟、落地 Data Pump 備份策略。生產環境建議進一步整合 Ansible/Terraform 實現基礎設施即代碼 (IaC),並配置 Data Guard 或 RAC 提供高可用。