备份 postgresql 数据库的推荐方法是什么:pg_dump VS pg_basebackup?
What is recommended way to bakup postgresql database: pg_dump VS pg_basebackup?
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
不行。
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
不行。