標準用戶/組架構
| 名稱 | 類型 | 用途 | GID/UID建議 |
| oinstall | 主組 | OraInventory目錄擁有者,安裝介質讀取權限 | 54321 |
| dba | 附加組 | SYSDBA/SYSOPER授權組,數據庫運行進程擁有者 | 54322 |
| oracle | 用戶 | 軟件擁有者與實例運行用戶 | UID=54321, GID=oinstall |
一鍵部署腳本
#!/bin/bash
# 建議以root執行,預先規劃GID/UID避免多節點衝突
# 1. 創建組
groupadd -g 54321 oinstall
groupadd -g 54322 dba
# 2. 創建基礎目錄
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
# 3. 創建用戶
useradd -u 54321 -g oinstall -G dba -d /home/oracle -m -s /bin/bash oracle
# 若用戶已存在
# usermod -u 54321 -g oinstall -G dba -d /home/oracle -m oracle
# 4. 設置密碼
echo "oracle:YourStrongPassw0rd!" | chpasswd
# 5. 目錄授權
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oracle
chmod -R 775 /u01/app/oraInventory
# 6. 驗證
id oracle
groups oracle
ls -ld /u01/app/oracle /u01/app/oraInventory
環境變量模板(~oracle/.bash_profile)
# Oracle Settings
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export TNS_ADMIN=$ORACLE_HOME/network/admin
關鍵檢查清單
id oracle顯示uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)
/u01/app/oracle與/u01/app/oraInventory擁有者為oracle:oinstall,權限drwxrwxr-x
su - oracle後env | grep ORA變量生效無誤
- 若部署RAC,所有節點UID/GID/用戶名/目錄路徑必須完全一致
最佳實踐:
• 生產環境嚴禁使用root運行數據庫進程。
• 多實例共享軟件目錄時,僅需一個oracle用戶;隔離實例可建立oracle_sid1、oracle_sid2等專用用戶。
• /etc/security/limits.conf同步配置oracle soft/hard nofile 65536、nproc 16384、memlock等內核參數。
• 使用Ansible/SaltStack將上述腳本納入基礎設施即代碼管理。