不断备份大型 PostgreSQL 数据库

Top*_*opo 4 postgresql backup

我在 PostgreSQL 9.2 中有一个 20 Tb 的数据库,我不知道如何有效地创建备份。这是一个每天都在增长一点的数据库,并且在每个月的 1 号它增长大约 200 Gb。

本来想做pg_dump的,但是每个月都做太多了,后来想做一次,然后用copy只备份新表或者修改过的表,但是不能停止使用数据库为了创建第一个转储,所以我不会确切地知道备份包含哪些数据。

如何在不停止使用数据库的情况下进行增量备份?

200*_*ess 6

备份在PostgreSQL 手册中有广泛的介绍。

要实现连续备份,请将预写日志存档。建议的设置是:

archive_mode = on
wal_level = hot_standby
archive_command = '/usr/bin/rsync --archive --ignore-existing "%p" "/backup-dest/%p"'

# Ensures that a log file is written at least once every 30 minutes even if little
# activity has occurred
archive_timeout = 30min
Run Code Online (Sandbox Code Playgroud)

pg_dump您可以执行pg_basebackup,而不是为您的基线执行 a ,这不需要您冻结数据库。但是,如果您还没有archive_mode打开,则需要重新启动数据库以更改该设置。