在做pg双机热备份时,一开始需要先做数据库的基础备份,也就是将主服务器中的data文件复制到备用服务器中。
这时,有人会直接将data由主服务器复制到备用服务器。这样做是不可以的。因为这影响了备份文件中的日志记录的完整性,从而会影响备用服务器恢复的数据库的完整性。
正确的做法是:
1先执行psql命令: psql -c "SELECT pg_start_backup('label', true)";
2然后将主服务器中的data(除了postmaster.pid文件)复制到备用服务器;
3然后再执行psql命令: psql -c "SELECT pg_stop_backup()"。
Linux下的示例:
$ psql -c "SELECT pg_start_backup('label', true)"
$ rsync -a ${PGDATA}/ standby:/srv/pgsql/standby/ --exclude postmaster.pid
$ psql -c "SELECT pg_stop_backup()"