postgresql 数据备份

298 阅读1分钟

postgresql的备份方案大致分为两类

  1. 全量:基于pg_basebackup + rsync两个命令 + 定时器,实现月、周、日三个备份
  1. 增量:基于WAL日志实现增量数据备份

全量备份

冷备份冷恢复

热备冷恢复

热备热恢复

分类

  • 物理备份

  • 物理备份

  • 逻辑备份

特点

  • 备份和恢复时都需要停止数据库服务

  • 备份不停服务、恢复需要停止服务

  • 备份、恢复不停服务

实施

  • cp -r /usr/local/pgsql/data /usr/temp/

  • pg_basebackup + rsync

  • pg_dump + pg_restore

增量备份

预写式日志(WAL)

步骤

  1. pg_basebackup 备份基础文档
  1. 启用WAL,自动捕获16MB(可设置)的增量数据,形成wal文件,并归档
  1. 可以秒级恢复不同wal段的数据

barman

成熟的postgresql的备份系统

可以低成本搭建一个时间点式postgresql备份管理平台

使用方案 - 全量逻辑备份

我们表不多,而且库的绝大部分数据处于snapshot的blob字段、snapshot_history的blob字段,所以逻辑备份的数据库语句并不多,因此选择全量逻辑备份方案

  • 每天凌晨两点,执行pg_dump命令,对整个库进行热备份,然后归档进minio
  • 需要恢复时,从minio取出归档文档,然后执行pg_restore