Recent Posts

PostgreSQL 最佳实践 - 块级增量备份(ZFS篇)单个数据库采用多个zfs卷(如表空间)时如何一致性备份

6 minute read

背景 当我们使用了多个ZFS卷或者文件系统时,如果一个实例的多个部分,如表空间,放在了不同的zfs上,再使用基于ZFS快照的备份时,可能出现多个文件系统不一致的情况。 例如控制文件是新的,但是数据是旧的。 保物理备份的一致性检查 基于文件的物理备份,为了保证备份的一致性,在备份开始时,需要做一个检查点,同时打...

PostgreSQL 最佳实践 - 块级增量备份(ZFS篇)备份集有效性自动校验

2 minute read

背景 前面我写过一篇关于使用ZFS的快照特性和PostgreSQL流复制来完成数据库块级别的增量PITR备份的文章。 达到可控的备份与恢复SLA。 https://yq.aliyun.com/articles/59363 本文将基于这个备份机制, 写一个自动的恢复测试脚本。 (假设快照每天一个, 并且按规...

PostgreSQL 最佳实践 - 块级增量备份(ZFS篇)方案与实战

13 minute read

背景 在实际的生产环境中, 当数据库越来越多, 越来越大. 备份可能会成为比较大的问题, 传统的逻辑备份对于大的数据库不适用(因为备份和还原可能是比较耗时的, 而且也不能回到任意时间点, 还会造成数据库膨胀(长时间repeatable read隔离级别), 好处是可以跨平台恢复, 可选恢复表等). 而基于XL...

PostgreSQL 最佳实践 - 任意时间点恢复源码分析

6 minute read

背景 我们知道PostgreSQL是支持任意时间点恢复的,那么背后的原理是什么? 本文将对PG的时间点恢复进行详细的讲解,帮助用户理解。 本文涉及源码参考PostgreSQL 9.2.2版本. 时间点恢复涉及的参数 我们知道PostgreSQL 支持PITR, 基于时间点的恢复. 通过配置recovery....

PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复

9 minute read

背景 冷备份, 以及逻辑备份都是某一个时间点的备份, 没有增量的概念. 如果数据库在运行过程中发生故障, 使用逻辑备份只能将数据库还原到备份时刻, 无法恢复到故障发生前的那个时刻. 又或者在使用过程中由于误操作修改或删除了重要数据, 需要还原到误操作前的那个时刻怎么办呢? 使用冷备份加上有效的归档文件可以实...

PostgreSQL 最佳实践 - 冷备份与还原介绍

6 minute read

背景 PostgreSQL 冷备份, 指在数据库关机状态下对数据库的数据文件进行的备份. 这种备份在生产中并不实用, 一般生产环境都需要保证数据库7*24小时不间断运行. 冷备份需要备份的是数据库集群主目录($PGDATA), 表空间目录, 事务日志(pg_xlog)目录. 如果在参数文件中指定了其他目录或...

PostgreSQL 最佳实践 - 在线逻辑备份与恢复介绍

10 minute read

背景 PostgreSQL 逻辑备份, 指在线备份数据库数据, DDL以SQL语句形式输出, 数据则可以以SQL语句或者固定分隔符(row格式)的形式输出. 备份时不影响其他用户对备份对象的DML操作. 本文主要介绍一下PostgreSQL提供的逻辑备份工具pg_dump, pg_dumpall, 以及数据库...

德哥的PostgreSQL私房菜 - 史上最屌PG资料合集

2 minute read

背景 看完并理解这些文章,相信你会和我一样爱上PostgreSQL,并成为一名PostgreSQL的布道者。 资料不断更新中… … 沉稳的外表无法掩饰PG炙热的内心 。 扩展阅读,用心感受PostgreSQL 内核扩展 《找对业务G点, 体验酸爽 - PostgreSQL内核扩展指南》 http...