检查pg_dump的date

我们使用pg_dumpall来创build我们数据库的备份。 我只是想知道是否有一个简单的方法来检查,如果创build的文件是好的,并检查它的创builddate(从实际的文件,而不是检查它是在FS创builddate)。

在testing/validation备份时会节省很多工作量。

如果pg_dumpall命令退出状态为零,则创build的文件是OK的。

当您使用pg_dumpall时,无法知道备份创build的确切时间戳,因为它会将输出创build为纯文本文件。

但使用自定义格式( pg_dump -F c )创build的转储具有一些额外的元数据。

所以这里是我通常build议用来备份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查看实际的创builddate和时间以及其他信息:

 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: ; 

我强烈推荐阅读这些:

除了@filiprem写的东西之外 – 能够检查pg_dumpall文件创build时间的一种方法是在文件名中embeddeddate/时间。