PostgreSQL 大实例的备份方案之一

基于流复制的HA, 采样如下方案.
https://github.com/digoal/PostgreSQL_HA_with_primary_standby_2vip
本文介绍一下, 在没有其他主机的情况下, 如何实施块级别的增量备份.
(假设主机为了性能, 未直接使用ZFS作为文件系统)

主要用到的是chroot, zfs. 当前, 现在btrfs 也支持snapshot, 所以随便你的选择了. 

实现方法也比较多, 我们可以用容器, 例如docker, 也可用虚拟机.

本文采用KVM虚拟机, 在虚拟机中使用ZFS文件系统, 在虚拟机中创建以宿主机数据库为primary的standby.
然后在zfs上做快照.

那么问题来了, 宿主机的归档如何传递给虚拟机呢, 我这里虚拟机和宿主机用的不同网段, 虚拟机出外网使用NAT转发通讯.
# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 22449 packets, 1310K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 25464 packets, 1325K bytes)
 pkts bytes target     prot opt in     out     source               destination
  116  6960 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
  337 23214 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
    0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24    

Chain OUTPUT (policy ACCEPT 25464 packets, 1325K bytes)
 pkts bytes target     prot opt in     out     source               destination
这种通讯方式, 要直接挂载远端的NFS是有问题的, 所以需要用其他方式来获取远端归档.

我这里选择的方法是scp, 将虚拟机的postgres 用户下的key拷贝到2台宿主机, 使用scp来拷贝归档.
假设宿主机的物理IP分别为172.16.18.25,172.16.18.26.
restore_command = 'ping -c 1 -W 1 172.16.18.25 && scp root@172.16.18.25:/data04/pgdata/arch/*/%f %p; ping -c 1 -W 1 172.16.18.26 && scp root@172.16.18.26:/data04/pgdata/arch/*/%f %p'
primary_conninfo = 'host=192.168.122.1 port=1921 user=replica keepalives_idle=60'
好了, 有人要问, 为什么不直接使用primary VIP呢? 假设primary VIP是172.16.18.27.
因为VIP会漂移, 一旦漂移, 虚拟机的~/.ssh/known_hosts里面的条目就会失效, 需要重新编写, 比较麻烦.

最后要配置宿主机
自动启动虚拟机
# cat /etc/rc.local
# kvm
/usr/bin/virsh start centos6_6_x64

配置虚拟机自动启动数据库
# cat /etc/rc.local
su - postgres -c "pg_ctl start"

配置虚拟机自动快照
# crontab -l
8 * * * * /usr/sbin/ntpdate asia.pool.ntp.org && /sbin/hwclock --systohc
1 4 * * * /root/script/zfs_snap.sh

# cat /root/script/zfs_snap.sh
#!/bin/bash

DATE="`date +%Y%m%d`"
# 注意, 第一个快照的位置是$PGDATA所在的zfs
/sbin/zfs snapshot zp1/data02@$DATE
/sbin/zfs snapshot zp1/data01@$DATE
/sbin/zfs snapshot zp1/data03@$DATE
/sbin/zfs snapshot zp1/data04@$DATE

现在快照有了, 加上宿主机上的归档也在, 完全可以实现基于时间点的恢复 .
最后, 强烈建议pg_xlog不要放在zfs文件系统中. 宁愿放在虚拟机的系统盘里面也不要放在ZFS里面.
时间: 2024-09-13 05:53:22

PostgreSQL 大实例的备份方案之一的相关文章

MaxCompute( 原名ODPS)大数据容灾方案与实现(及项目落地实例)专有云

一,背景与概述     复杂系统的灾难恢复是个难题,具有海量数据及复杂业务场景的大数据容灾是个大难题.     MaxCompute是集团内重要数据平台,是自主研发的大数据解决方案,其规模和稳定性在业界都是领先的.在周边系统众多,业务场景复杂,海量数据存储和计算调度都是一个难题的情况下,需要保证大数据系统在灾难发生时能够尽快切换到备用系统服务,最小限度影响客户使用.     容灾系统及方案的建设有很多种方式,如同城双活,异地多活,冷备容灾等.MaxCompute大数据的容灾方案是在多年集团内部断

Sybase数据库备份方案

Sybase数据库产品自从1987年问世以来,它的客户机/服务器(client/server)工作模式.分布处理的基础体系结构.完善的安全保密性能.高速快捷的运行方式.多平台跨操作系统的广泛应用等优点,迅速被IT界接受并推广应用.我们作为金融业的用户,也在1995年开始使用Sybase10版本.在具体的使用中,发现集中式的数据管理有其优点,就是数据风险范围大为缩小,但是作为Sybase的服务器一端,数据风险比较集中,如何做好数据库的数据备份,成为至关重要的问题. 在实际应用中,我们总结出了两种全

mysql备份方案

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/158476 数据库备份方案 一.主从同步 可以参考http://kerry.blog.51cto.com/172631/110206 二.增量备份: 每天中午12点和晚上12点做一次全备,每隔一小时备份binlog,也就是增量备份,具体操作如下: Linux下开启binlog /etc/my.cnf中的mysqld部分加入

行动派的备份方案,无线Time Machine攻略

苹果的Macbook Pro家族刚刚经历了自2008年诞生以来最大的变化! 包括第一次给Macbook装上了触控屏--Touch Bar以及从上市以来就争议不断,但销量却节节攀升的4个Type-C接口.或许唯一不变的就是在不需要额外付费的情况下,最多不过512GB的存储容量. 总有人要拿[磁盘空间不足]来说事儿!解决空间不足,你可以定期删除文件,可以用移动硬盘,网盘一股脑拷贝所有资料,当然,你也可以用苹果号称备份届最视觉化的Time Machine! 说到Time Machine,对于那些拖延症

MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程_Mysql

大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 一.Xtrabackup介绍 1.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具:xtrabackup.innobackupex 1.xtraback

和力记易容灾备份方案为企业节省IT成本

 电脑问世前,企业之间的竞争主要集中在产品.规模,而当信息化出现并快速发展之后,企业之间的竞争很大程度上是信息资源的竞争.在产品信息方面,可以通过官网.微信.APP等多种方式进行展示与宣传;在业务渠道方面,可以借助专业的软件进行建设与管理;在客户关系方面,CRM客户关系管理系统日益普及,无一不是信息资源的集中.整合与发展. 信息是什么? 说白了就是数据. 是信息化时代企业赖以生存发展的根本之一. 据IDC研究机构近几年的调查表明,全球的数据量每两年将会翻一番.数据量越来越多,为企业的发展提供了更

防范天灾于未然 善用云端灾难备份方案

最近日本发生一场强度达9级大地震,除了令不少人痛失家园之外,许多企业也被迫停止运作,造成了庞大的经济损失.该事件令不少企业认识到筹备灾难备份方案的重要性. IT行业从业者一直认同灾难备份的重要性,但是碍于成本问题,多数企业将其定义为虽重要但不急迫的问题.事实上,一旦发生自然灾害或其它重大事故,对企业的损害影响是难以估量的,而近年兴起的云计算技术,将有助提供具弹性.成本较低的灾难备份方案. 网络传输系统 影响企业运作命脉 地震很有可能造成企业计算机系统的中断,特别是国内有些城市处于地震带上,这方面

UIT推出的BL 2000提供高效经济的虚拟带库备份方案

  目前,对于关键业务数据,企业都建立了各种各样的备份系统.如果客户采用传统磁带备份技术,那么,客户在备份/恢复中将会遇到种种难题,包括:备份/恢复过程太长:人力资源消耗太大:无法保证备份/恢复的成功:对于备份介质的管理非常复杂:恢复时间无法确定:介质成本,维护成本高昂等等.面对这些挑战,虚拟磁带库备份方案正成为客户关注的焦点.UIT新近推出的BL 2000产品,全面提供了高效.经济和可扩展的虚拟磁带库备份方案,为保护数据提供了优异选择. BL2000系列具有开放的系统架构和灵活的扩展性,在满足

虚拟磁带库备份方案或成企业存储首选

  目前,对于关键业务数据,企业都建立了各种各样的备份系统.如果客户采用传统磁带备份技术,那么,客户在备份/恢复中将会遇到种种难题,包括:备份/恢复过程太长;人力资源消耗太大;无法保证备份/恢复的成功;对于备份介质的管理非常复杂;恢复时间无法确定;介质成本,维护成本高昂等等.面对这些挑战,虚拟磁带库备份方案正成为客户关注的焦点.UIT新近推出的BL 2000产品,全面提供了高效.经济和可扩展的虚拟磁带库备份方案,为保护数据提供了优异选择. BL2000系列具有开放的系统架构和灵活的扩展性,在满足