- Oracle 安裝路徑放到
/data下,而不是/u01 - 業務用户就是
V3XUSER(不需要額外創建其他業務用户) - **實例名(SID)**你需要明確,這個是數據庫的“名字”,比如 OA 可以用默認
orcl,也可以改成v3xoa之類更貼近項目的標識
關鍵點解釋
1. 安裝路徑
Oracle 的兩個關鍵路徑:
- ORACLE_BASE:Oracle 基礎路徑,比如
/data/app/oracle - ORACLE_HOME:實際安裝的 home 目錄,比如
/data/app/oracle/product/11.2.0/dbhome_1
2. 用户
- 安裝時系統會創建 Linux 用户
oracle(運行數據庫的操作系統賬號) - 數據庫的業務用户就是
V3XUSER(這個是數據庫裏的 Schema)
所以,這兩個概念要區分:
oracle→ Linux 系統用户(用來啓動數據庫、執行 sqlplus)V3XUSER→ Oracle 數據庫用户(表空間屬主)
3. 實例名(SID)
- SID 是 Oracle 數據庫實例的名字,可以理解為數據庫服務標識
- 你可以選擇:
orcl(默認)- 或者更直觀,例如:
v3xoa
調整後的自動化安裝腳本
下面是修改後的關鍵配置,安裝路徑在 /data 下,實例名改成 v3xoa,數據庫用户就是 V3XUSER。
#!/bin/bash
set -e
####### 配置變量 #######
ORACLE_USER=oracle
ORACLE_GROUP=oinstall
ORACLE_DBA_GROUP=dba
ORACLE_BASE=/data/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
ORACLE_SID=v3xoa
ZIP1="/tmp/p13390677_112040_Linux-x86-64_1of7.zip"
ZIP2="/tmp/p13390677_112040_Linux-x86-64_2of7.zip"
# OA數據庫初始化相關
OA_TBS=V3XSPACE
OA_TBS_FILE=/data/oracle/data/V3XSPACE.DBF
OA_USER=V3XUSER
OA_PASS="Seeyon@1234"
####### 檢查安裝包 #######
if [ ! -f "$ZIP1" ] || [ ! -f "$ZIP2" ]; then
echo "[ERROR] 找不到Oracle安裝包,請將兩個zip放到/tmp"
exit 1
fi
####### 安裝依賴 #######
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
####### 關閉SELinux和防火牆 #######
setenforce 0 || true
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld || true
systemctl disable firewalld || true
####### 創建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
####### 創建安裝目錄 #######
mkdir -p $ORACLE_HOME
mkdir -p $(dirname $OA_TBS_FILE)
chown -R $ORACLE_USER:$ORACLE_GROUP /data
chmod -R 775 /data
####### 配置oracle用户環境變量 #######
cat <<EOF >> /home/$ORACLE_USER/.bash_profile
export ORACLE_BASE=$ORACLE_BASE
export ORACLE_HOME=$ORACLE_HOME
export ORACLE_SID=$ORACLE_SID
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
EOF
####### 解壓安裝包 #######
su - $ORACLE_USER -c "mkdir -p ~/install && cd ~/install && unzip $ZIP1 && unzip $ZIP2"
####### 靜默安裝Oracle 11g #######
su - $ORACLE_USER -c "~/install/database/runInstaller -silent -ignorePrereq \
-responseFile ~/install/database/response/db_install.rsp \
-waitforcompletion \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOME=$ORACLE_HOME \
ORACLE_BASE=$ORACLE_BASE"
####### 執行root腳本 #######
/data/app/oracle/oraInventory/orainstRoot.sh
$ORACLE_HOME/root.sh
####### 創建數據庫實例 #######
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName $ORACLE_SID \
-sid $ORACLE_SID \
-characterSet AL32UTF8 \
-createAsContainerDatabase false \
-memoryPercentage 30 \
-emConfiguration NONE \
-sysPassword oracle \
-systemPassword oracle \
-dbsnmpPassword oracle"
####### OA初始化SQL #######
INIT_SQL=/tmp/init_v3x.sql
cat <<EOF > $INIT_SQL
WHENEVER SQLERROR EXIT;
-- OA 表空間
CREATE SMALLFILE TABLESPACE $OA_TBS
DATAFILE '$OA_TBS_FILE' SIZE 30720M AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED
LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
-- OA 用户
CREATE USER $OA_USER PROFILE DEFAULT IDENTIFIED BY "$OA_PASS"
DEFAULT TABLESPACE $OA_TBS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT CREATE SESSION, ALTER SESSION, CREATE VIEW TO $OA_USER;
GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO $OA_USER;
-- 示例表
CREATE TABLE $OA_USER.CTP_FORM (
ID NUMBER(19) PRIMARY KEY,
FORM_NAME VARCHAR2(255) NOT NULL,
CREATOR_ID NUMBER(19),
CREATE_TIME DATE DEFAULT SYSDATE
);
CREATE SEQUENCE $OA_USER.SEQ_CTP_FORM START WITH 1 INCREMENT BY 1 NOCACHE;
-- 檢查字符集
SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';
EXIT;
EOF
su - $ORACLE_USER -c "sqlplus / as sysdba @$INIT_SQL"
echo "[INFO] 安裝完成: Oracle 11gR2 (SID=$ORACLE_SID) 已啓動"
echo "[INFO] OA 用户=$OA_USER 已創建,表空間=$OA_TBS"
主要調整
- 安裝路徑:
/data/app/oracle(ORACLE_HOME 在/data/app/oracle/product/...) - 數據文件路徑:
/data/oracle/data/V3XSPACE.DBF - 實例名(SID):用變量
ORACLE_SID=v3xoa,可以改成你喜歡的 - 自動初始化 OA 用户就是
V3XUSER - 運行腳本結束後,就有:
- Oracle 數據庫在
/data - 實例名=v3xoa
- 用户=V3XUSER,密碼=Seeyon@1234
- 表空間=V3XSPACE
我建議在正式部署前你 確認 SID 名字 是不是用 v3xoa,
jdbc:oracle:thin:@172.16.10.10:1521/v3xoa
如果你想保持默認 orcl,只要改腳本里的 ORACLE_SID 變量即可。