如何检查postgresql备份是否成功?

| 我们有一个postgresql数据库,该数据库每晚使用以下命令从cron作业备份:
su postgres -c \"pg_dump our_database | gzip > /home/smb/shared/database_backup.bak.gz\"
最近,我们发生了磁盘故障,该故障始于几个坏扇区,在此期间pg_dump退出并出现以下错误
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: catalog is missing 17 attribute(s) from relid 20158
pd_dump: The command was: LOCK TABLE public.obvez IN ACCESS SHARE MODE
现在,由于它处于cron作业中,所以没有人注意到错误消息,备份被中断了,但是大小没有为零,一切似乎还可以,并且直到我们意识到我们没有备份的最终磁盘故障时,错误才被注意到。 我们设法从旧的备份中恢复了数据,但是现在我想知道什么是检查pg_dump是否成功完成工作的正确方法?     
已邀请:
        我将结果写入日志文件,然后在cronjob的末尾,将日志文件的内容发送到我的电子邮件地址。这样,我就会知道什么时候出了问题。
su postgres \"pg_dump our_database 2>> $LOG_FILE | gzip > /home/smb/shared/database_backup.bak.gz\"
cat $LOG_FILE | mailx $MAINTAINERS -s \"Postgresql backup\"
附录:如果只想在发生任何问题时才发送电子邮件,则可以检查pg_dump的返回码:
LOG_FILE=/tmp/pgdump.err

if ! pg_dump -U backupuser \"our_database\" 2> $LOG_FILE 
then 
    cat $LOG_FILE | mailx \'youremailaddress\' -s \"Postgresql backup failure!\"
fi
    

要回复问题请先登录注册