我们有一个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作业中运行的,所以没有人注意到错误消息,备份被中断了,但它不是0大小,一切看起来都很好,直到最终磁盘故障时我们才意识到我们没有备份。
我们设法从旧备份中恢复了数据,但现在我想知道检查pg_dump是否成功完成其工作的正确方法是什么?