一简单介绍
1PITR原理
pg在数据目录pg_xlog中始终维护着一个wal日志。这个日志文件用于记录数据库数据文件的所有改变。
当数据库出现故障时,能够通过在数据物理全备的基础上重做最后一次checkpoint点之后的日志文件把数据库恢复到一致状态。
2实现过程
首先对主库做基础备份,恢复到备库,备库然后一直从主库接收wal日志,并持续应用wal日志,这样就可以使备库的数据实时(延迟)与主库一致,当主库故障时,就可以把备库打开提供服务,从而实现高可用。
3分类
(1)按传送内容分为:日志文件传送与日志流
传送wal归档日志:由于是归档wal文件,会导致备库数据延迟一个wal文件。
传送日志流:只要primary数据库一产生日志,就会马上传递到standby数据库。
(2)按数据保护(假设没有硬件故障):
synchronous_commit参数设置on,remote_write,local,off
on:在primary数据库提交事务时,必须要等事务日志刷写到本地磁盘,并且还需要等到传到备库确认(备库已经接收到流日志,并且落盘写到日志文件)才会返回客户端已经提交,这样可以保证主备库数据零丢失。
remote_write:主库的事务提交时,必须要等事务日志刷写到本地磁盘,并且还需要等到传到备库确认(备库已经接收到数据库内存,不要求落盘)才会返回客户端已经提交,这样可以保证备库数据可能不丢失,(如果操作系统故障,内存数据会丢失)。
local:主库的事务提交时,必须要等事务日志刷写到本地磁盘,不必等备库的确认,备库会延迟主库几秒数据,但是这种方式对主库性能影响较小。。
off:主库的事务提交时,不需要等事务日志刷写到本地磁盘,直接返回客户端已经提交。
(3)按备库是否可读:warm standby与hot standby
(4)按主备库数据流向:单向1主多备,单向1主多备级联
二搭建
环境列表
操作系统环境:centos 6.5 64
数据库版本:postgresql-9.5.1.tar.bz2
下载地址:http://www.postgresql.org/ftp/source/
|
主机名 |
Ip |
主库 |
pg1 |
192.168.204.214 |
备库 |
pg2 |
192.168.204.215 |