博客
关于我
PG备份恢复(二)
阅读量:664 次
发布时间:2019-03-15

本文共 1840 字,大约阅读时间需要 6 分钟。

PostgreSQL 物理备份与恢复指南

1. 冷备(Physical Backup)

冷备是将数据库停止后,通过物理拷贝PGDATA目录完成的备份操作。其优点是简单易行,但需注意:

缺点:为了保证数据一致性,必须停止数据库。

2. 热备(Hot Backup)

2.1 快照备份(Snapshot Backup)

通过服务器的快照功能(文件系统或块设备级别)实现备份,确保数据一致性。

2.2 点时间恢复(PITR - Point-in-Time Recover)

基于WAL日志实现的恢复机制,记录数据库所有变更操作。PITR通过WAL日志恢复至指定时间点,确保数据一致性。

2.3 PG的热备方案

  • 数据文件在线拷贝:无法保证一致性。
  • WAL日志备份:确保一致性。
  • 完整备份:需结合数据文件和WAL日志备份。

3. pg_hba.conf配置

pg_hba.conf用于配置数据库认证信息,支持以下参数:

3.1 Type

  • local:Unix-domain socket。
  • host:SSL/TCP socket。
  • hostssl:必须使用SSL。
  • hostnossl:非SSL TCP socket。

3.2 Database

  • 可选值:all、sameuser、samerole、replication或具体数据库名。
  • “all”不包括“replication”,需单独规则。

3.3 User

  • 可选值:all或指定用户。
  • 多用户支持逗号分隔,可引用外部文件。

3.4 Address

  • 主机名或IP掩码,如0.0.0.0/0表示所有主机。

3.5 Method

  • 密码策略:trust、reject、md5、password等。

4. WAL日志备份

4.1 归档方式

  • WAL日志归档:总是落后一个日志,通过cp、scp等实现。
  • 流复制:同步或异步模式,准实时备份。

4.2 常用参数

  • wal_level = replica:启用归档。
  • archive_mode = on:开启归档。
  • archive_command:自定义归档命令。

4.3 配置示例

# 修改pg_data.confwal_level = replicationarchive_mode = onarchive_command = 'cp %p /data/pgsql12/archive/%f &'# 重启数据库pg_ctl -D /data/pgsql12/data stoppg_ctl -D /data/pgsql12/data start

5. pg_basebackup 工具

5.1 使用方法

  • 语法pg_basebackup [OPTIONS]...
  • 重要参数
    • -D:备份目录。
    • -F:备份格式(默认p,可选t)。
    • -X:WAL日志传输方式(推荐stream)。

5.2 常用命令示例

# 主从复制搭建pg_basebackup -h 192.168.0.175 -p5432 -D /data/pgsql12/data/ -U repl -P -v -R -X stream -C -S pgstandby_slotname

5.3 恢复命令

# 基于时间点恢复pg_ctl -D /data/pgsql12/data restore -l /data/pgsql12/logs/logfile --start-time=2020-09-05 17:34:21# 基于LSN恢复pg_ctl -D /data/pgsql12/data restore --start-lsn=0/100201A8

6. 恢复示例

6.1 基于时间点恢复

  • 停止数据库并复制基础备份。
  • 写入部分数据。
  • 模拟故障,停止数据库。
  • 恢复至指定时间点或LSN。
  • 6.2 常见错误处理

    • 错误示例
      ERROR: replication slot "pgstandby1" does not exist
    • 解决方法:检查复制槽名称是否正确,确保主从架构配置无误。

    7. 数据验证

    • 恢复完成后,验证数据完整性,检查表结构和数据是否正确。

    8. 关键点总结

    • 冷备:适合非关键时机。
    • 热备:支持高可用架构。
    • WAL日志:确保数据一致性。
    • pg_basebackup:支持主从备份与恢复。
    • 恢复策略:根据具体场景选择时间点或LSN恢复。

    通过以上方法,可以实现PostgreSQL数据库的高效备份与恢复,确保数据安全与一致性。

    转载地址:http://zgxmz.baihongyu.com/

    你可能感兴趣的文章
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    NetApp凭借领先的混合云数据与服务把握数字化转型机遇
    查看>>
    NetBeans IDE8.0需要JDK1.7及以上版本
    查看>>
    netcat的端口转发功能的实现
    查看>>
    netfilter应用场景
    查看>>
    netlink2.6.32内核实现源码
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    NetScaler的常用配置
    查看>>
    netsh advfirewall
    查看>>
    NETSH WINSOCK RESET这条命令的含义和作用?
    查看>>
    Netty WebSocket客户端
    查看>>
    netty 主要组件+黏包半包+rpc框架+源码透析
    查看>>
    Netty 异步任务调度与异步线程池
    查看>>
    Netty中集成Protobuf实现Java对象数据传递
    查看>>
    Netty事件注册机制深入解析
    查看>>
    Netty原理分析及实战(四)-客户端与服务端双向通信
    查看>>
    Netty客户端断线重连实现及问题思考
    查看>>
    Netty工作笔记0006---NIO的Buffer说明
    查看>>
    Netty工作笔记0007---NIO的三大核心组件关系
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>