Postgresql

在錯誤的 pg_dump 日誌中尋找什麼

  • December 2, 2013

我們希望以程式方式檢測 cron 計劃的 pg_dumps 中的錯誤。

除了檢查日誌文件是否以“pg_dump:保存數據庫定義”結尾:

為了以程式方式檢查轉儲,我可以使用 grep 查找其他哪些說明字元串是可以的。

主要指標是pg_dump命令的退出狀態。如果它不為零,那麼就出了問題,否則它一直有效。這是任何命令和 shell 之間的隱含契約,違反它將是一個錯誤。當子命令根本無法啟動時,它也是可測試的。

這是 Unix shell 中的一個基本框架,用於測試退出程式碼並採取相應措施:

d=`date +%Y%m%d`
dump=/path/to/backups/daily-backup-"$d"
error=/path/to/backups/errors-backup-"$d".txt

pg_dump -U username dbname >$dump 2>$error
code=$?
if [ $code -ne 0 ]; then
 echo 1>&2 "The backup failed (exit code $code), check for errors in $error"
fi

有必要將錯誤消息保存在持久儲存中,以便以後對其進行分析。當完全沒有錯誤發生時,錯誤文件應該在那裡但為空,除非-v使用了該選項,但它故意不在上述腳本中。

關於消息:保存數據庫定義

-v只有在使用詳細 ( ) 選項時,它才會與許多其他資訊性消息一起顯示。問題在於,如果出現錯誤,這些消息將與錯誤消息混合在一起,並且需要一定程度的專業知識來區分正常與不正常。

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