PostgreSQL服务器中有两种不同的工具:
pg_dump
pg_basebackup
这些工具之间有什么区别?
使用哪一个来创建数据库备份?
pg_dump
创建一个逻辑备份,即一系列SQL语句,这些语句在执行时会创建一个逻辑上与原始数据库相似的新数据库。
pg_basebackup
创建物理备份,即构成数据库集群的文件的副本。您必须使用恢复来使此类备份保持一致。
主要区别是:
-
pg_dump
通常需要更长的时间,并且创建的备份较小。 -
使用
pg_dump
您可以备份一个数据库或数据库的一部分,而pg_basebackup
始终备份整个集群。 -
pg_dump
创建的备份已完成,而您需要WAL存档来恢复使用pg_basebackup
创建的备份(除非您使用默认选项-X stream
,在这种情况下,备份包含使备份保持一致所需的WAL段(。
使用逻辑备份, 您只能在备份时还原数据库的状态,而使用物理备份,只要存档了所需的 WAL 段,您就可以在备份结束后的任何时间点还原。
您需要
pg_basebackup
才能创建备用服务器,pg_dump
不会这样做。