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