首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 下 Oracle 數據庫徹底卸載清理指南:從進程終止到用戶刪除的標準化操作手冊

     編輯:Oracle 資料庫相關知識

操作前提與風險提示

⚠ 高危操作警告:此操作將永久刪除所有數據、配置、日志。執行前務必確認:
  • 已完成全量備份並驗證可恢復
  • 已通知相關業務方確認停服窗口
  • 記錄當前版本、補丁、參數配置以便重建

分階段清理流程

階段一:優雅停止所有服務

# 1. 停止數據庫實例
sqlplus / as sysdba <

階段二:使用 DBCA 刪除數據庫實例

# 圖形界面(需 X11 轉發)
dbca -silent -deleteDatabase -sourceDB ORCL -sysDBAUserName sys -sysDBAPassword ****

# 或手動清理數據文件(謹慎)
# rm -rf $ORACLE_BASE/oradata/$ORACLE_SID

階段三:清理 Oracle Home 目錄

# 1. 記錄關鍵環境變量
echo $ORACLE_HOME
echo $ORACLE_BASE

# 2. 刪除 Oracle Home(包含二進制、庫文件、網絡配置)
rm -rf $ORACLE_HOME

# 3. 刪除 Oracle Base(包含數據文件、日志、備份、admin目錄)
rm -rf $ORACLE_BASE

階段四:清理系統級殘留

# 1. /usr/local/bin 鏈接文件
rm -f /usr/local/bin/dbhome
rm -f /usr/local/bin/oraenv
rm -f /usr/local/bin/coraenv

# 2. /etc 配置文件
rm -f /etc/oratab
rm -f /etc/orainst.loc

# 3. /opt 目錄(部分版本)
rm -rf /opt/ORCLfmap

# 4. 清理 inventory 目錄(OraInventory)
rm -rf /u01/app/oraInventory  # 根據實際安裝路徑調整

階段五:刪除用戶與用戶組

# 必須先刪除用戶,再刪除組
userdel -r oracle
groupdel oinstall
groupdel dba
groupdel oper  # 如存在
groupdel backupdba  # 如存在
groupdel dgdba  # 如存在
groupdel kmdba  # 如存在

階段六:內核參數與限制清理(可選)

# 1. 修改 /etc/sysctl.conf 移除 Oracle 相關參數
# kernel.shmmax, kernel.shmall, kernel.shmmni, kernel.sem, 
# fs.file-max, net.ipv4.ip_local_port_range 等

# 2. 修改 /etc/security/limits.conf 移除 oracle 用戶限制
# oracle soft nproc 2047
# oracle hard nproc 16384
# oracle soft nofile 1024
# oracle hard nofile 65536

# 3. 生效內核參數
sysctl -p

階段七:清理啟動腳本與環境變量

# 1. 刪除啟動腳本
rm -f /etc/init.d/oracle
rm -f /etc/rc.d/rc*.d/*oracle*

# 2. 清理用戶環境變量(/home/oracle/.bash_profile, /etc/profile.d/oracle.sh 等)
# 註釋或刪除 ORACLE_HOME, ORACLE_SID, PATH 等相關導出

驗證清理完整性

# 1. 確認無 Oracle 進程
ps -ef | grep -i oracle

# 2. 確認端口釋放
netstat -tlnp | grep 1521

# 3. 確認用戶/組刪除
id oracle  # 應提示 "no such user"
getent group oinstall dba  # 應無輸出

# 4. 確認目錄清理
ls -ld $ORACLE_HOME $ORACLE_BASE /u01/app/oraInventory 2>/dev/null | wc -l  # 應為 0

RAC 環境特殊處理

  • 需在所有節點同步執行上述清理
  • 先執行 crsctl stop cluster -all 停止集群倉
  • 使用 rootcrs.pl -deconfig -force 卸載 Grid Infrastructure
  • 清理共享存儲上的 OCR、Voting Disk、ASM 磁盤頭

重裝前準備

若計劃重新安裝,建議保留 /etc/orainst.loc 指向的 OraInventory 目錄,加速後續安裝;但必須清理其中舊 Oracle Home 的註冊信息。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved