博客
关于我
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/

    你可能感兴趣的文章
    Nginx
    查看>>
    nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
    查看>>
    nginx + etcd 动态负载均衡实践(二)—— 组件安装
    查看>>
    nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
    查看>>
    Nginx + Spring Boot 实现负载均衡
    查看>>
    Nginx + uWSGI + Flask + Vhost
    查看>>
    Nginx - Header详解
    查看>>
    Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
    查看>>
    nginx 1.24.0 安装nginx最新稳定版
    查看>>
    nginx 301 永久重定向
    查看>>
    nginx css,js合并插件,淘宝nginx合并js,css插件
    查看>>
    Nginx gateway集群和动态网关
    查看>>
    Nginx Location配置总结
    查看>>
    Nginx log文件写入失败?log文件权限设置问题
    查看>>
    Nginx Lua install
    查看>>
    nginx net::ERR_ABORTED 403 (Forbidden)
    查看>>
    Nginx SSL私有证书自签,且反代80端口
    查看>>
    Nginx upstream性能优化
    查看>>
    Nginx 中解决跨域问题
    查看>>
    nginx 代理解决跨域
    查看>>