Oracle

表大小警報

  • January 23, 2022

當它達到門檻值的 98% 時,我需要在我的應用程序表上創建一個警報。我編寫了一個 SP,它檢查行並將資訊記錄到一個日誌文件中,該文件由警報系統監控並成功發出警報。

但是現在我的 DBA 團隊說他們不能在生產中授予應用程序 DB 使用者讀/寫權限UTL_FILE。並且 OEM ( Oracle Enterprise Manager ) 不能在應用程序級別使用。

  • 我有哪些選擇?
  • 如何獲得有關桌子大小的警報?

參考: UTL_FILE

使用 UTL_FILE 包,PL/SQL 程序可以讀取和寫入作業系統文本文件。UTL_FILE 提供受限版本的作業系統流文件 I/O。

您還沒有解釋如何啟動您的 SP。如果通過 db-jobs 完成,那麼您可能會遇到這個問題。

但您也可以通過任何客戶端工具發起請求。只需使用 sqlplus 或任何其他客戶端,連接數據庫並將門檻值返回到您喜歡的任何位置。

許多監控工具採用類似的方式(客戶端訪問)。您可以創建一個單獨的帳戶,其訪問權限非常有限。您甚至可以通過特殊的更高特權 SP 將讀取訪問解耦,該 SP 僅返回門檻值,而對受監控的表本身沒有 SELECT 特權。

當應用程序表達到門檻值的 98% 時,我需要在應用程序表上創建警報

單張表真的不應該需要這種微管理。

肯定是整個表空間,但只有一張表?

我編寫了一個 SP,它檢查行並將資訊記錄到一個日誌文件中,該文件由警報系統監控並成功發出警報。

因此,您有一個儲存過程想要寫入數據庫伺服器上的文件系統,然後您的監控(或者,更有可能是日誌聚合)應用程序獲取該文件系統,只是為了告訴您一個表中有多少行?對我來說聽起來有點過於復雜。

為什麼不編寫一個查詢來計算行數並讓您的監控系統定期通過 sqlplus 執行該查詢?好的,輸出將需要一點“按摩”來修剪 sqlplus 的“絨毛”,但現在這並不難。

我正是使用這種技術與 CheckMK 等實時監控軟體進行互動。

引用自:https://dba.stackexchange.com/questions/186295