zoukankan      html  css  js  c++  java
  • PG-使用pgBackRest备份恢复工具实验

    pgBackRest

    pgBackRest是一款开源的备份还原工具,目标旨在为备份和还原提供可靠易用的备份。

    特性

    • 支持并行备份和恢复

      • pgBackRest 通过并行处理解决了压缩瓶颈,利用多个内核进行压缩
    • 支持本地或远程备份恢复操作

      • 自定义协议允许 pgBackRest 以最少的配置通过 SSH 在本地或远程备份、恢复和存档数据
    • 支持多个存储库

      • 多个存储库允许本地存储库具有最少保留时间以实现快速恢复,而远程存储库具有更长保留时间以实现整个企业的冗余和访问。
    • 支持全量,增量和差异备份

    • 备份轮换和存档到期

      • 可以为完整备份和差异备份设置保留策略,以创建任何时间范围的覆盖范围。可以为所有备份或严格为最近的备份维护 WAL 存档。在后一种情况下,使旧备份保持一致所需的 WAL 将保留在存档中。
    • 检查备份完整性

      • 为备份中的每个文件计算校验和,并在恢复期间重新检查。
    • 页校验和

      • PostgreSQL 9.3开始支持页面级校验和,如果启用了页面校验和,pgBackRest 将验证备份期间复制的每个文件的校验和
    • Backup Resume

      • 可以从停止的点恢复中止的备份。
    • 流压缩和校验和

      • 压缩和校验和计算在文件被复制到存储库时以流方式执行,无论存储库位于本地还是远程。
    • 增量还原

    • 并行、异步 WAL 推送和获取

    • 表空间和链接支持

    • 支持S3、Azure 和 GCS 兼容对象存储

      • pgBackRest 存储库可以位于 S3、Azure 和 GCS 兼容的对象存储中,以允许几乎无限的容量和保留。
    • 加密

    • 与 PostgreSQL >= 8.3 兼容

    安装配置

    创建目录

    mkdir -p /ups/app/postgresql/pgbackrest/{conf,log}
    mkdir -p /ups/data/pgdata/repos
    chown -R postgres:postgres /ups/app/postgresql/pgbackrest
    chown -R postgres:postgres /ups/data/pgdata/repos
    chmod -R 750 /ups/data/pgdata/repos
    chmod -R 755 /ups/app/postgresql/pgbackrest
    

    解压

    tar -xf pgbackrest-release-2.35.tar.gz
    

    编译

    cd pgbackrest-release-2.35/src
    ./configure --prefix=/ups/app/postgresql/pgbackrest/
    make -j2
    make install -j2
    

    配置环境变量

    echo "export PATH=/ups/app/postgresql/pgbackrest/bin:$PATH" >> ~/.bash_profile
    . ~/.bash_profile
    

    配置PostgreSQL数据库数据存储目录

    cat >/ups/app/postgresql/pgbackrest/conf/pgbackrest.conf <<EOF
    [demo]
    pgl-path=/ups/data/pgdata/pgbackrest
    
    # 仓库路径加载在pgBackRest配置文件
    [global]
    repol-path=/ups/data/pgdata/repos
    EOF
    
    

    检查确认数据库已配置归档(可选)

    vi $PGDATA/postgresql.auto.conf
    archive_mode = 'on'
    archive_command = 'pgbackrest --stanza=demo archive-push %p'
    log_line_prefix = ''
    max_wal_senders = '3'
    wal_level = 'replica'
    

    配置归档保留策略

    vi /ups/app/postgresql/pgbackrest/conf/pgbackrest.conf
    [demo]
    pg1-path=/ups/data/pgdata/pgbackrest
    pg1-host-config-path=/ups/data/pgdata/pgbackrest
    pg1-host-port=22
    pg1-host-user=postgres
    pg1-host=progs
    pg1-port=5432
    pg1-user=postgres
      
    [global]
    repo1-path=/ups/data/pgdata/repos
    repo1-retention-full=2
      
    [global:archive_push]
    compress-level=3
    

    创建存储空间并检查配置

    # 创建存储空间
    pgbackrest --stanza=demo --log-level-console=info stanza-create
    # 检查配置
    pgbackrest --stanza=demo --log-level-console=info check
    

    使用

    语法

    Usage:
     pgbackrest [options] [command]
      
    Commands:
     archive-get Get a WAL segment from the archive.
     archive-push Push a WAL segment to the archive.
     backup Backup a database cluster.
     check Check the configuration.
     expire Expire backups that exceed retention.
     help Get help.
     info Retrieve information about backups.
     restore Restore a database cluster.
     stanza-create Create the required stanza data.
     stanza-delete Delete a stanza.
     stanza-upgrade Upgrade a stanza.
     start Allow pgBackRest processes to run.
     stop Stop pgBackRest processes from running.
     version Get version.
      
    Use 'pgbackrest help [command]' for more information.
    

    备份

    # 执行全量备份
    pgbackrest --stanza=demo --log-level-console=info backup
    
    # --type参数指定备份的类型为增量还是差异备份
    ## 差异备份
    pgbackrest --stanza=demo --log-level-console=info --type=diff backup
    
    ## 增量备份
    pgbackrest --stanza=demo --log-level-console=info --type=incr backup
    

    查看备份信息

    pgbackrest info
    

    恢复

    # 模拟数据库损坏
    rm -rf $PGDATA/*
    
    pgbackrest --stanza=demo restore --delta --log-level-console=detail
    

    启动数据库检查确认

    pg_ctl start -D $PGDATA
    
  • 相关阅读:
    <unittest学习8>unittest生成测试报告
    <unittest学习7>unittest的封装方法
    <unittest学习6>unittest多种加载用例方法
    <unittest学习5>unittest的几种执行方式和java的junit的很像
    <unittest学习4>跳过用例
    实验3.1
    I
    大数据运维---Zookeeper学习
    裸金属纳管
    一次Linux系统被攻击的分析过程
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15291227.html
Copyright © 2011-2022 走看看