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

    你可能感兴趣的文章
    node安装卸载linux,Linux运维知识之linux 卸载安装node npm
    查看>>
    node安装及配置之windows版
    查看>>
    Node实现小爬虫
    查看>>
    Node提示:error code Z_BUF_ERROR,error error -5,error zlib:unexpected end of file
    查看>>
    Node提示:npm does not support Node.js v12.16.3
    查看>>
    Node搭建静态资源服务器时后缀名与响应头映射关系的Json文件
    查看>>
    Node服务在断开SSH后停止运行解决方案(创建守护进程)
    查看>>
    node模块化
    查看>>
    node模块的本质
    查看>>
    node环境下使用import引入外部文件出错
    查看>>
    node环境:Error listen EADDRINUSE :::3000
    查看>>
    Node的Web应用框架Express的简介与搭建HelloWorld
    查看>>
    Node第一天
    查看>>
    node编译程序内存溢出
    查看>>
    Node读取并输出txt文件内容
    查看>>
    node防xss攻击插件
    查看>>
    noi 1996 登山
    查看>>
    noi 7827 质数的和与积
    查看>>
    NOI-1.3-11-计算浮点数相除的余数
    查看>>
    noi.ac #36 模拟
    查看>>