CentOS 7.x / RHEL 7 自動化安裝 Oracle 11gR2(11.2.0.4) 的腳本,直接從你已經找到的兩個 zip 包自動完成解壓、依賴安裝、用户創建、Oracle 安裝以及數據庫實例創建。
你只需要:
- 把
p13390677_112040_Linux-x86-64_1of7.zip和p13390677_112040_Linux-x86-64_2of7.zip複製到新機器的/tmp目錄 - 執行這個腳本
自動化安裝腳本 install_oracle11g.sh
#!/bin/bash
# 自動化安裝 Oracle 11gR2 11.2.0.4
# 適用於 CentOS 7.x / RHEL 7.x
# 作者:你的名字
# 注意:需要 Oracle 安裝 zip 文件已經位於 /tmp 目錄
set -e
ORACLE_USER=oracle
ORACLE_GROUP=oinstall
ORACLE_DBA_GROUP=dba
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=orcl
ZIP1="/tmp/p13390677_112040_Linux-x86-64_1of7.zip"
ZIP2="/tmp/p13390677_112040_Linux-x86-64_2of7.zip"
# 檢查 zip 文件是否存在
if [ ! -f "$ZIP1" ] || [ ! -f "$ZIP2" ]; then
echo "[ERROR] 找不到 Oracle 安裝包,請確認兩個 zip 位於 /tmp 目錄"
exit 1
fi
echo "[INFO] 安裝依賴包..."
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ \
glibc glibc-devel libaio libaio-devel libX11 libXau libXi \
libXtst libXrender make sysstat unzip
echo "[INFO] 關閉 SELinux 和防火牆..."
setenforce 0 || true
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld || true
systemctl disable firewalld || true
echo "[INFO] 創建 Oracle 用户和組..."
groupadd -g 54321 $ORACLE_GROUP || true
groupadd -g 54322 $ORACLE_DBA_GROUP || true
useradd -u 54321 -g $ORACLE_GROUP -G $ORACLE_DBA_GROUP $ORACLE_USER || true
echo "oracle" | passwd --stdin $ORACLE_USER
echo "[INFO] 創建 Oracle 目錄..."
mkdir -p $ORACLE_HOME
chown -R $ORACLE_USER:$ORACLE_GROUP /u01
chmod -R 775 /u01
echo "[INFO] 配置 Oracle 用户環境變量..."
cat <<EOF >> /home/$ORACLE_USER/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
EOF
echo "[INFO] 解壓 Oracle 安裝文件..."
su - $ORACLE_USER -c "mkdir -p ~/install && cd ~/install && unzip $ZIP1 && unzip $ZIP2"
echo "[INFO] 靜默安裝 Oracle 11g..."
RESPONSE_FILE=~/install/database/response/db_install.rsp
su - $ORACLE_USER -c "cp ~/install/database/response/db_install.rsp ~/install/database/response/db_install_custom.rsp"
# 修改響應文件(靜默安裝配置)
su - $ORACLE_USER -c "sed -i 's|ORACLE_HOME=.*|ORACLE_HOME=$ORACLE_HOME|' ~/install/database/response/db_install_custom.rsp"
su - $ORACLE_USER -c "sed -i 's|ORACLE_BASE=.*|ORACLE_BASE=$ORACLE_BASE|' ~/install/database/response/db_install_custom.rsp"
su - $ORACLE_USER -c "sed -i 's|oracle.install.db.config.starterdb.globalDBName=.*|oracle.install.db.config.starterdb.globalDBName=$ORACLE_SID|' ~/install/database/response/db_install_custom.rsp"
su - $ORACLE_USER -c "sed -i 's|oracle.install.db.config.starterdb.SID=.*|oracle.install.db.config.starterdb.SID=$ORACLE_SID|' ~/install/database/response/db_install_custom.rsp"
su - $ORACLE_USER -c "sed -i 's|oracle.install.db.config.starterdb.password=.*|oracle|' ~/install/database/response/db_install_custom.rsp"
# 運行安裝程序
su - $ORACLE_USER -c "~/install/database/runInstaller -silent -responseFile ~/install/database/response/db_install_custom.rsp -ignorePrereq -waitforcompletion"
echo "[INFO] 運行 root 腳本..."
/u01/app/oraInventory/orainstRoot.sh
$ORACLE_HOME/root.sh
echo "[INFO] 創建數據庫實例..."
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName $ORACLE_SID \
-sid $ORACLE_SID \
-createAsContainerDatabase false \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-memoryPercentage 30 \
-emConfiguration NONE \
-sysPassword oracle \
-systemPassword oracle \
-dbsnmpPassword oracle"
echo "[INFO] Oracle 11g 安裝完成!"
echo "登錄:su - $ORACLE_USER && sqlplus / as sysdba"
使用步驟:
- 在新機器
/tmp放好兩個 zip:
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
- 把
install_oracle11g.sh上傳到新機器/root - 賦予執行權限:
chmod +x /root/install_oracle11g.sh
- 運行:
./install_oracle11g.sh
- 等腳本執行完,就可以用:
su - oracle
sqlplus / as sysdba
⚠️ 注意事項:
- 這個腳本是靜默安裝,不會彈 GUI,對新機器內存最低建議 2GB(推薦 4GB+)。
- 數據庫的默認密碼都設為
oracle,建議安裝完改密碼。 - 如果新機器不是 CentOS/RHEL 7,而是 8 或其他系統,需要調整依賴包。
- 腳本假設你要安裝到
/u01/app/oracle,要確保磁盤有足夠空間(10GB+)。