4

这是 PostgreSQL 备份(数据库转储)的第一次尝试,我一直在研究不同的 pgdump 格式、其他 pgdump 选项和 pgdumpall。对于一个 Postgres 初学者来说,每小时转储(将覆盖以前的转储)两个数据库,每个数据库包含表触发器和两个不同的模式,备份格式和选项可以轻松实现以下目标:

  1. 小文件大小(每个数据库单个文件或选择要恢复的数据库的能力)
  2. 易于恢复为干净的数据库(有和没有相同的数据库名称[s])
  3. 易于在不同的服务器上恢复(用户可能不同)
  4. 触发器在还原时被禁用,并在还原后重新启用。

包括用于备份和恢复的示例命令。

欢迎任何其他有用的 pgdump/pgrestore 建议。

4

2 回答 2

3

此命令将创建一个仅包含数据库结构的小型 dmp 文件 - 表、列、触发器、视图等。(此命令只需几分钟)

pg_dump -U "dbuser" -h "host" -p "port" -F c -b -v -f ob_`date +%Y%m%d`.dmp dbname

**ex:** pg_dump -U thames -h localhost -p 5432 -F c -b -v -f ob_`date +%Y%m%d`.dmp dbname

该命令将备份完整的数据库

pg_dump -h localhost -U "dbuser" "dbname" -Fc > "pathfilename.backup"

**ex:** pg_dump -h localhost -U thames thamesdb - Fc > "thamesdb.backup"

对于恢复,您可以使用:

pg_restore -i -h localhost -U "user" -d "dbname" -v "dbname.backup"

**ex:** pg_restore -i -h localhost -U thames -d thamesdb -v "thamesdb.backup"

在此处备份选定的表格(使用正则表达式)

pg_dump -t '(A|B|C)'

有关完整的详细信息,您可以访问pgdump帮助页面,那里有很多选项

于 2013-11-27T06:02:51.827 回答
-1

如果您想每小时进行一次备份,我认为您应该使用日志归档而不是 pg_dump。

于 2013-11-27T16:36:30.007 回答