前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PostgreSql 备份之 pg_probackup

PostgreSql 备份之 pg_probackup

作者头像
AustinDatabases
发布2019-10-23 19:48:24
2.6K0
发布2019-10-23 19:48:24
举报
文章被收录于专栏:AustinDatabases

PostgreSql 备份的软件(免费)的有不少,pgrman(之前有一篇写过), Barman (功能很强大,配置很复杂)。最近大佬微信公众号发布 pg_probackup 功能和ORACLE rman 相差无几。

下面我们就来看看pg_probackup 何许人也。

pg_probackup是一款免费的postgresql 备份软件,目前支持到 postgresql 11 , 这是一名 RU 的 DEV 开发者开发的备份工具。作为postgresql 使用流行的国家,相关的软件也不少(日本,俄罗斯)。

这个小哥哥的其他产品也是很有名,例如 pg_pathman

安装很简单,安装了小哥哥的 repo

rpm -ivh http://repo.postgrespro.ru/pg_probackup/keys/pg_probackup-repo-centos.noarch.rpm

yum install pg_probackup-{11,10,9.6,9.5}

那这个备份软件到底对比其他的备份有什么优势

1 可以选择全备和增量备份方式,加速大库的备份速度

2 自动数据一致性检查和按需备份验证,无需实际的数据恢复 3 在多个并行线程上运行备份、恢复和验证进程

4 以压缩状态存储备份数据以节省磁盘空间

5 从备用服务器进行备份以避免主服务器上的额外负载

6 简化WAL日志归档的自定义命令

7 备份位于Postgres Pro数据目录之外的文件和目录,如配置文件或日志文件

增量备份会包含以下几种方式

1 页备份。在这种模式下,pg_probackup将扫描存档中的所有WAL文件,从上一次完全备份或增量备份开始。新创建的备份只包含在WAL记录中提到的页面。这要求自上一次备份以来的所有WAL文件都出现在WAL归档中。

2 增量备份。在此模式下,pg_probackup将读取数据目录中的所有数据文件,并仅复制自上次备份以来更改的页面。该模式不需要连续归档

3 PTRACK备份。在这种模式下,Postgres Pro动态跟踪页面更改。它的运行不需要连续归档。每当一个关系页被更新时,这个页就会被标记为这个关系的一个特殊的PTRACK位图。因为一个页面只需要PTRACK fork中的一个位,所以这样的位图非常小。跟踪意味着在数据库服务器操作上有一些较小的开销,但是可以显著加快增量备份。

需要注意的是进行备份的服务器和恢复的服务器必须通过block_size和wal_block_size参数兼容,并且具有相同的主版本号。

在安装完pg_probackup 后,第一个工作就是要初始化备份的目录

(rpm包安装完毕的需要在执行程序后面带需要备份数据库的版本号)

pg_probackup-11 init -B /pgdata/backup/

并且初始化的数据目录必须是空的,否则会报错,在初始化后,相关的目录会自动生成 wal 和 backup 目录

在初始化目录后需要,需要初始化需要备份的 instance ,也就是当前的服务器的postgresql 的 数据目录,并给这个当前的pg 备份的数据库一个 备份的目录名。

pg_probackup-11 add-instance -B /pgdata/backup/ -D /pgdata/data/ --instance pg_test

其中有一点需要注意

备份目录必须属于数据库服务器的文件系统。启动pg_probackup的用户必须完全访问备份目录的内容。如果在BACKUP_PATH环境变量中指定备份目录的路径,则可以在运行pg_probackup命令时忽略相应的选项。

配置文件中需要对 archive_command 进行改变

archive_command = 'pg_probackup-11 archive-push -B /pgdata/backup --instance pg_test --wal-file-path %p --wal-file-name %f'

max_wal_senders = 10

hot_standby = on

full_page_writes = on

查看配置好的备份文件

pg_probackup-11 show-config -B /pgdata/backup/ --instance pg_test

在下面直接执行命令,备份test 库全量备份

pg_probackup-11 backup -B /pgdata/backup/ -b full --instance pg_test -d test -h 192.168.198.123 -p 5432 -U admin -w

在全备完毕后还可以进行增量备份,如果不想输入秘密,则可以进行.pgpass免密操作

pg_probackup-11 backup -B /pgdata/backup/ -b page --instance pg_test -d test -h 192.168.198.123 -p 5432 -U admin -w

同时也可以查看备份的历史记录

也可以进行相关的备份后的 验证工作

同时对于目录中的备份的数据可以设置保留期限

pg_probackup set-config -B /pgdata/backup/ --instance pg_test --retention-redundancy 2 --retention-window 7

--retention-redundancy=redundancy

保留备份多少天 FULL

--retention-window=window

可恢复多少天之前备份

当然pg_probackup 的命令还有很多,建立一个集中化的备份中心(PG)的也可以通过pg_probackup 来完成,例如建立一台备份机,(磁盘的够大)

然后为不同的PG 的数据库建立备份的目录,并且通过远程的方式进行数据的备份,和数据的恢复。

同时,pg_probackup 也支持paralle 并行的方式进行数据备份,这样速度会更快

同时还可以使用autonomous备份在某些特殊的情况

自动备份可以在无法访问WAL archive的服务器上恢复。 自治备份使您能够在WAL文件不再可用时及时恢复集群状态。

在这些都做完之后我们可以恢复一次数据库

pg_probackup-11 restore -B /pgdata/backup/ --instance pg_test --recovery-target-time='2019-10-14 23:33:1

在恢复完数据库后,如果马上启动可能会报错

需要重新设置目录权限,才可以正常启动数据库

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档