在一些服务器上,我们使用 pg_dumpall 来创建数据库备份。我只是想知道是否有一种简单的方法来检查创建的文件是否正确,并检查其创建日期(从实际文件而不是检查 fs 上的创建日期)。
在测试/验证我们的备份时会节省很多精力。
答案1
如果 pg_dumpall 命令退出状态为零,则表示创建的文件正常。
当您使用 pg_dumpall 时,无法知道备份创建的确切时间戳,因为它将输出创建为纯文本文件。
但使用自定义格式()制作的转储pg_dump -F c
有一些额外的元数据。
以下是我通常推荐的用于备份 PostgreSQL 集群的基本脚本:
#!/bin/sh
pg_dumpall -g > pg-globals.sql # for global stuff like usernames/passwords
for db in db1 db2 db3; do
pg_dump -F c $db > pg-$db.backup # separate file for every database in the cluster
done
这样,每个数据库就有了单独的文件。可以检查每个文件以pg_restore
查看实际创建日期和时间以及其他信息:
filip@srv:~$ pg_restore -l pg-inspire.backup |head -n 15
;
; Archive created at Thu Dec 1 07:28:27 2011
; dbname: inspire
; TOC Entries: 714
; Compression: -1
; Dump Version: 1.12-0
; Format: CUSTOM
; Integer: 4 bytes
; Offset: 8 bytes
; Dumped from database version: 9.0.5
; Dumped by pg_dump version: 9.0.5
;
;
; Selected TOC Entries:
;
我强烈建议阅读这些内容:
答案2
除了@filiprem写的内容之外,检查 pg_dumpall 文件创建时间的一种方法是在文件名中嵌入日期/时间。