3.6. 使用 SQL 转储备份 PostgreSQL 数据
SQL 转储方法基于使用 SQL 命令生成转储文件。当转储上传回数据库服务器时,它会按与转储时相同的状态重新创建数据库。
以下 PostgreSQL 客户端应用程序为 SQL 转储提供了保证:
-
pg_dump转储单个数据库,而没有集群范围的有关角色或表空间的信息 -
pg_dumpall转储给定集群中的每个数据库,并保留集群范围的数据,如角色和表空间定义。
默认情况下,pg_dump 和 pg_dumpall 命令将它的们结果写入标准输出。要将转储保存到文件中,请将输出重定向到 SQL 文件。生成的 SQL 文件可以是文本格式,也可以是允许并行且可以更详细地控制对象恢复的其他格式。
您可以在任何可访问数据库的远程主机中执行 SQL 转储。
3.6.1. SQL 转储的优点和缺陷 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
与其他 PostgreSQL 备份方法相比,SQL 转储具有以下优点:
-
SQL 转储是唯一一个不是特定于服务器版本的 PostgreSQL 备份方法。
pg_dump工具的输出可以重新加载到 PostgreSQL 的后续版本中,这不适用于文件系统级备份或持续归档。 - SQL 转储是将数据库传输到不同计算机架构(比如从 32 位服务器传输到 64 位服务器)的唯一方法。
-
SQL 转储提供内部一致的转储。转储表示
pg_dump开始运行时的数据库的快照。 -
pg_dump工具在运行时不会阻止对数据库的其他操作。
SQL 转储的一个缺点是,与文件系统级备份相比,它需要更长的时间。