Postgres流式备份(5)主要命令

本文详细介绍Barman工具,用于PostgreSQL数据库的备份、恢复、监控与管理。涵盖备份策略、WAL归档、流复制、备份一致性检查、服务器状态诊断等功能。

语法

barman [OPTIONS] COMMAND

OPTIONS

-v, –version
显示barman版本并退出
-q, –quiet
不输入任何内容.用于定时脚本.
-h, –help
显示帮助信息不能退出
-c CONFIG, –config CONFIG
使用指定的配置文件

COMMAND

所有命令均支持查看帮助

barman COMMAND -h

archive-wal SERVER_NAME

通过archive_command和流复制,获得xlog文件

backup SERVER_NAME

对指定服务器执行备份,SERVER_NAME为all表示备份所有服务器

参数

  • –immediate-checkpoint:备份前强制数据库尽快触发检查点
  • –no-immediate-checkpoint:强制等待数据库检查点自动触发
  • –reuse-backup [INCREMENTAL_TYPE]:设置重用备份文件方式
  • –retry-times:基础备份错误重试次数
  • –no-retry:等同于–retry-times 0
  • –retry-sleep:基础备份失败重试等待时间
  • -j , --jobs:并行拷贝数量

check-backup SERVER_NAME BACKUP_ID

检查物理备份的一致性,确保获得所有所需的WAL文件。cron命令完成每次备份前自动调用本命令

check SERVER_NAME

查看指定服务器的诊断信息,包括SSH连接配置、PostgreSQL版本、配置和备份路径、归档处理、流复制处理、复制槽等等,SERVER_NAME为all表示检查所有服务器

cron

执行维护任务,例如强制执行保留策略、WAL文件管理等

delete SERVER_NAME BACKUP_ID

删除指定备份,BACKUP_ID除了适应ID外,还可以使用first(最早的备份)、last(最近的备份)、latest(最近的备份)、oldest(最早的备份)

diagnose

收集Barman服务器和所有备份服务的诊断信息,包括全局配置、SSH版本、Python版本、rsync版本、当前配置和所有服务的状态

get-wal [OPTIONS] SERVER_NAME WAL_ID

从指定服务器的xlog归档接受WAL文件,文件内容默认将未压缩输出到STDOUT
可用选项包括

  • -o OUTPUT_DIRECTORY:指定接收WAL的存储目录
  • -z 输出将被gzip压缩
  • -j 输出将被bzip2压缩
  • -p SIZE

list-backup SERVER_NAME

显示指定服务器的可用备份,可用于获取backup ID

list-files [OPTIONS] SERVER_NAME BACKUP_ID

列出所有部分备份的文件

选项

  • –target TARGET_TYPE:TARGET_TYPE值包括data(只列出数据文件)、standalone(列出基本备份和wAL文件)、WAL(列出基本备份开始和日志结束/后续基本备份开始之间所有WAL)、full(等于data+wal),默认为standalone

list-server

展示所有已配置的服务和描述

rebuild-xlogdb SERVER_NAME

根据磁盘内容重建WAL文件元数据,每个备份服务有一个自己的xlog.db文件,SERVER_NAME为all表示对所有备份服务重建

receive-wal [OPTIONS] SERVER_NAME

无选项参数时,启动WAL流复制,使用pg_receivewal/pg_receivexlog通过流协议从PG服务器接收WAL

选项

  • –stop:停止接收WAL进程
  • –reset:重置receive-wal状态,从当前WAL文件开始接收
  • –create-slot:使用SERVER_NAME对应配置文件中的slot_name配置,在数据库服务器上创建数据槽
  • –drop-slot:使用SERVER_NAME对应配置文件中的slot_name配置,在数据库服务器上删除数据槽

recover [OPTIONS] SERVER_NAME BACKUP_ID DESTINATION_DIRECTORY

在指定目录(支持本地或远程目录,通过–remote-ssh-command选项设置)恢复备份

选项

  • -–target-tli TARGET_TLI:恢复到指定的时间线
  • -–target-time TARGET_TIME:恢复到指定的时间,可使用任何有效的时间形式,例如"YYYY-MM-DD HH:MM:SS.mmm"
  • -–target-xid TARGET_XID:恢复到指定的transaction ID
  • –target-immediate:恢复大最后的一致性状态点(基本备份完成的时间点,不是最新时间点)
  • –exclusive:不包含指定的target xid
  • –target-action ACTION:当恢复目标到达后执行指定特定操作,包括 pause (PostgreSQL 9.1及以前), shutdown (PostgreSQL 9.5及以前)和 promote (PostgreSQL 9.5及以前)
  • –tablespace NAME:LOCATION :指定tablespace 重新定位规则
  • –remote-ssh-command SSH_COMMAND:通过指定SSH登陆到远程服务器激活远程恢复,SSH_COMMAND例如‘ssh postgres@db2’
  • –retry-times RETRY_TIMES:基本备份恢复错误重试次数,覆盖配置文件中的basebackup_retry_times值
  • –no-retry:基本备份恢复错误不重试
  • –retry-sleep:基本备份恢复错误重试等待秒数,覆盖配置文件中的basebackup_retry_sleep值
  • -j , -–jobs:恢复并行任务数量,只在rsync/SSH时有用
  • –get-wal, --no-get-wal:恢复时启用/禁用使用get-wal获取WAL,默认基于配置文件中的recovery_options设置
  • –network-compression, --no-network-compression:远程恢复时是否启用网络压缩,默认基于配置文件中的network_compression 设置
  • –standby-mode:恢复后作为只读节点启动数据库,默认不作为只读节点

replication-status [OPTIONS] SERVER_NAME

显示指定一个或多个服务器的复制状态,默认行为可以通过选项改变,支持的选项包括:

  • –minimal:使用机器可读的输出(默认false)
  • –target TARGET_TYPE:TARGET_TYPE 值包括hot-standby(只显示通过rsync /ssh备份的服务器)、wal-streamer(只显示WAL流备份的服务器)、all(所有客户端,默认值)

show-backup SERVER_NAME BACKUP_ID

显示特定备份的详细信息,返回示例如下

Backup 20150828T130001:
  Server Name            : quagmire
  Status                 : DONE
  PostgreSQL Version     : 90402
  PGDATA directory       : /srv/postgresql/9.4/main/data

  Base backup information:
    Disk usage           : 12.4 TiB (12.4 TiB with WALs)
    Incremental size     : 4.9 TiB (-60.02%)
    Timeline             : 1
    Begin WAL            : 0000000100000CFD000000AD
    End WAL              : 0000000100000D0D00000008
    WAL number           : 3932
    WAL compression ratio: 79.51%
    Begin time           : 2015-08-28 13:00:01.633925+00:00
    End time             : 2015-08-29 10:27:06.522846+00:00
    Begin Offset         : 1575048
    End Offset           : 13853016
    Begin XLOG           : CFD/AD180888
    End XLOG             : D0D/8D36158

  WAL information:
    No of files          : 35039
    Disk usage           : 121.5 GiB
    WAL rate             : 275.50/hour
    Compression ratio    : 77.81%
    Last available       : 0000000100000D95000000E7

  Catalog information:
    Retention Policy     : not enforced
    Previous Backup      : 20150821T130001
    Next Backup          : - (this is the latest base backup)

show-server SERVER_NAME

显示指定服务器的相关信息,包括conninfo,backup_directory,wals_directory,SERVER_NAME为all显示所有服务器

status SERVER_NAME

显示服务器状态,包括可用的备份数量、archive_command、archive_status等,返回示例如下

Server quagmire:
  Description: The Giggity database
  Passive node: False
  PostgreSQL version: 9.3.9
  pgespresso extension: Not available
  PostgreSQL Data directory: /srv/postgresql/9.3/data
  PostgreSQL 'archive_command' setting: rsync -a %p barman@backup:/var/lib/barman/quagmire/incoming
  Last archived WAL: 0000000100003103000000AD
  Current WAL segment: 0000000100003103000000AE
  Retention policies: enforced (mode: auto, retention: REDUNDANCY 2, WAL retention: MAIN)
  No. of available backups: 2
  First available backup: 20150908T003001
  Last available backup: 20150909T003001
  Minimum redundancy requirements: satisfied (2/1)

switch-wal SERVER_NAME

让数据库服务器切换wAL
在PostgreSQL 10执行pg_switch_wal(),PostgreSQL 8.3到9.6执行pg_switch_xlog

  • –force:强制触发数据库的检查点进行切换,将增大数据库的IO负载
  • –archive:等待xlog被归档,如果在指定时间(默认30秒)内未归档,Barman将终止并退出
  • –archive-timeout TIMEOUT:指定归档等待时间,默认30秒
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值