首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

/tmp/.oracle 與 /var/tmp/.oracle 目錄誤刪後的應急恢復指南

     編輯:Oracle 教學

/tmp/.oracle 與 /var/tmp/.oracle 目錄誤刪後的應急恢復指南

官方警告:嚴禁手動刪除

Oracle 官方文檔明確警告: 安裝完成後,在 Oracle 軟體運行期間,絕不可手動刪除或設置 cron 任務清理 /tmp/.oracle 或 /var/tmp/.oracle 目錄及其檔案。

後果:Oracle 軟體會遇到間歇性 hang,Oracle Clusterware 安裝失敗並報錯 CRS-0184: Cannot communicate with the CRS daemon。

核心原則

🔴 RAC 正在運行時:千萬不可刪除這兩個目錄!
🟢 檔案被刪除:CRS 會自動重建!
🟡 目錄被刪除:需手動重建目錄結構與權限!

目錄用途解析

路徑用途關鍵檔案
/tmp/.oracleOracle 進程間通訊 (IPC) 暫存檔、鎖檔、Socket 檔s#_.dbf, .lck, .sock
/var/tmp/.oracle持久化程度較高的 Clusterware 通訊檔案OCR 鏡像、CRS 進程通訊端點

目錄誤刪後的手動重建步驟

# 需 root 權限執行

# 1. 重建 /var/tmp/.oracle 目錄結構
/bin/mkdir -p /var/tmp/.oracle

# 2. 設定 /var/tmp 權限 (sticky bit + 全權限)
/bin/chmod 01777 /var/tmp/
/bin/chown root /var/tmp/

# 3. 設定 .oracle 子目錄權限
/bin/chmod 01777 /var/tmp/.oracle
/bin/chown root /var/tmp/.oracle

# 4. 同樣處理 /tmp/.oracle(如也被刪除)
/bin/mkdir -p /tmp/.oracle
/bin/chmod 01777 /tmp/
/bin/chown root /tmp/
/bin/chmod 01777 /tmp/.oracle
/bin/chown root /tmp/.oracle

權限位解析:01777

  • 1 (最高位):Sticky Bit - 只有檔案擁有者、目錄擁有者或 root 可刪除目錄內檔案
  • 777:所有用戶可讀寫執行
  • 此權限確保多用戶 (oracle, grid, root) 可共存寫入,且互不干擾刪除

驗證恢復狀態

# 檢查目錄存在與權限
ls -ld /tmp/.oracle /var/tmp/.oracle
# 輸出應包含 drwxrwxrwt (t 代表 sticky bit)

# 觀察 CRS 自動重建檔案
watch -n 2 'ls -la /tmp/.oracle/ /var/tmp/.oracle/'

# 檢查 CRS 狀態
crsctl check crs
crsctl status resource -t

預防措施

  1. 排除備份/清理腳本:在備份策略、tmpwatch、tmpclean 等排程中明確排除這兩個目錄
  2. 監控告警:設置檔案系統監控,偵測目錄消失觸發告警
  3. 操作手冊:在維運 SOP 中標註「禁區目錄」,新人培訓重點強調
  4. 權限鎖定:可考慮 chattr +i 鎖定目錄屬性防誤刪(需評估對 CRS 重建的影響)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved