Postgres备份主要有三种方式:逻辑备份(pg_dump)、文件系统备份和连续归档。pg_dump简单但大库耗时且可能引发事务回卷;文件系统备份需停机;连续归档结合WAL,支持在线备份和PITR,通过全页写入修复不一致数据,是生产环境首选,但恢复时需重放WAL,备份频率影响恢复速度。
本文介绍了从PostgreSQL 17升级到18的详细指南,强调了升级的重要性和关键细节。PostgreSQL 18引入了优化器统计信息的保留,简化了维护工作。讨论了三种主要的升级方法:pg_dump/pg_restore、pg_upgrade和逻辑复制,并提供了每种方法的优缺点。建议在升级前进行充分的准备和测试,以确保顺利完成升级。
PostgreSQL 18引入了pg_restore_relation_stats和pg_restore_attribute_stats函数,允许直接将统计信息注入数据库。这使得在升级或测试环境中可以使用生产环境的统计数据,从而提高查询计划的准确性。通过pg_dump的统计选项,可以轻松导出和恢复统计信息,确保开发和测试环境中的查询计划与生产环境一致。
PostgreSQL 18 默认启用数据块校验和,以防止数据损坏。未启用校验和的安装可能导致无效页面和事务ID错误等问题。使用pg_dump时可发现损坏数据,建议逐表备份以识别损坏对象。可通过pg_surgery等工具修复损坏元组,但需谨慎操作。
本文介绍了作者在2025年为PostgreSQL开发的功能,包括推荐使用“psql -X”恢复pg_dump备份、增加备份类型列、支持多行标题的COPY命令等,旨在提升PostgreSQL的使用效率与灵活性。
迁移Postgres数据库通常使用pg_dump、pg_restore、WAL或逻辑复制等方法。逻辑复制可在不中断服务的情况下迁移数据,但需确保目标数据库架构一致。迁移后需更新序列以保持数据一致性。
PostgreSQL 18于9月25日发布,新增pg_dump和pg_restore的统计信息支持、pg_upgrade优化、异步I/O和虚拟计算列等功能,提升了性能和可用性,适合大规模数据库管理。
对pg_dump在10到18版本的性能进行了测试,结果显示版本15和16速度显著提升,而版本17和18则变慢。测试使用了无数据的大型数据库,pg_dump选项对速度影响不大,最大差异仅为1.7%。
pgdump-each是一个命令行工具,简化PostgreSQL版本升级的备份与恢复,支持并发操作,确保数据完整性并减少停机时间。用户只需简单命令即可高效管理数据库升级。
本文介绍了一个强大的 PostgreSQL 数据库备份脚本,支持 Windows 和 Linux 系统,提供灵活的备份选项。该脚本利用 pg_dump 工具进行备份,用户可选择备份范围和导出类型,确保操作安全,适用于定期备份、迁移准备和数据恢复,简化数据库管理。
在Postgres.fm播客中,作者与Robert Haas讨论了pg_dump是否适合作为备份工具。虽然pg_dump在备份策略中有其价值,但单独使用不足以实现全面备份。讨论涵盖了pg_dump的优缺点及其与其他备份工具的互补性。
Tembo团队热爱Postgres,但升级过程复杂,导致许多用户仍在使用旧版本。目前推荐的升级方法包括pg_dump、pg_upgrade和逻辑复制,但各有缺陷。pg_upgrade需要多个版本,逻辑复制复杂且易出错。Postgres应简化升级流程,以提升用户体验。
在PostgreSQL文档中,明确指出pg_dump不是完整的备份工具,只是创建数据库快照。备份是数据和元数据的复制,包括WAL文件和全局对象等重要组件。备份可以是完整、增量或连续备份,可用于恢复数据库。应定期执行备份,监控其健康状况,并定期进行恢复以确保完整性。
在最新的测试中,对比了lz4、zstd等pg_dump压缩选项的性能,发现新算法在较低级别下提供了最佳性能,尤其是zstd。测试了pg_basebackup工具的最新(v15+)压缩选项,结果显示,最低压缩级别的lz4在7个数据集中表现最好。总体而言,lz4和zstd在二进制数据的压缩中表现相当,它们的最低压缩级别在速度和输出大小之间提供了最佳平衡。高压缩级别并没有提供太多优势,只适用于长期存档。
本文介绍了 PostgreSQL 从 13 升级到 14 的两种方法:pg_upgrade 和 pg_dump。升级前需备份数据库并安装新版本。pg_upgrade 方法需卸载旧版本并使用特定命令升级数据目录;pg_dump 方法通过备份和恢复数据实现升级。完成后可删除旧版本并重启服务。
本文介绍了作者开发的用于测试Postgres压缩方法的脚本,并分享了测试结果。作者发现,对于大多数数据集来说,zstd应该成为默认的pg_dump压缩方法。文章还提到了其他压缩方法的性能和输出大小,并呼吁读者提供更多的Postgres开放数据集。
本文介绍了一种在PostgreSQL中进行初始数据同步的替代方法,使用pg_dump和pg_restore实现数据同步,而不是加速同步过程的表同步过程。在主服务器上创建发布,然后在目标服务器上创建订阅。在副本2上暂停复制,然后使用pg_dump从副本2中仅转储table1的数据。在目标节点上恢复数据,然后启用订阅。最后,通过pg_wal_replay_resume()函数恢复副本2的复制。
PostgreSQL 16新增了LZ4和ZSTD压缩方法,其中ZSTD提供了最高的压缩比和最快的压缩时间,建议优先考虑ZSTD以节省磁盘空间。如果优先考虑压缩时间,则ZSTD和LZ4都表现良好。Gzip仍然是与其他工具兼容的可行选项。Pg_dump的-Z / --compress现在可以用于指定压缩方法和级别。
本文介绍了数据库备份的基本工具及其选项,包括pg_dump/pg_restore、服务器和文件系统备份、物理备份和WAL归档,根据恢复点目标及存储空间等因素,选择合适的备份策略。
客户要求将PostgreSQL集群从DigitalOcean的数据库即服务(DBaaS)迁移到DigitalOcean Droplet,以降低成本。为了迁移,需要启用逻辑复制,获取源数据库的连接凭据,禁用或更新数据库之间的防火墙,让数据库可以从公共互联网访问,允许远程连接,并确保max_replication_slots的值大于或等于服务器中的数据库数量。Percona Distribution for PostgreSQL 13.7可以帮助实现迁移,并且可以通过逻辑复制将数据从源复制到目标数据库,最后通过pg_dump和pg_restore复制序列。
完成下面两步后,将自动完成登录并继续当前操作。