pg_rewind数据同步工具

pg_rewind是postgresql主从数据库之间同步数据目录的工具

  • pg_rewind只复制表数据文件中更改的块,所有其他文件都被完整复制,包括配置文件
  • pg_rewind不需要读取数据库中未更改的块,在只有小部分不同的情况下,速度会很快

用法:
pg_rewind [option…]

Example:
sudo -u postgres /usr/local/pgsql/bin/pg_rewind --target-pgdata=/data/pg_data/data --source-server=‘host=172.16.0.103 port=5432 user=postgres password=123456’

参数说明

参数说明
-D directory / --target-pgdata=directory指定与源同步的目标数据目录,在运行前,必须要关闭目标服务
--source-pgdata=directory指定要与之同步的源服务器的数据目录的文件系统路径。可选,此选项要求关闭源服务
--source-server='host= port= password= user= dbname= ’源连接信息
-n / --dry-run除了实际修改目标目录之外,执行所有操作
-P / --progress进展报告
--debug调试模式,输出debug信息

必须开启的参数
该参数为静态参数,修改的时候需要重启数据库
wal_log_hints=0

或者
初始化的时候设置data_checksums,默认是off,实例启动后无法修改
full_page_writes=0
data_checksums=on

##无法在后续修改该参数
SQL 错误 [55P02]: ERROR: parameter “data_checksums” cannot be changed

原理:
1.在目标集群中找到源集群和目标集群的分叉点之前的最近一次checkpoint点
2.找到分叉的之后,将目标集群在这个位带你之后的所有表数据变化都记录在这个位点之后的WAL日志中

复制方式:
1.使用文件系统方式拷贝,将变化数据页从源复制到目标集群
2.使用libpq建立连接的方式拷贝

参考文档:https://www.cnblogs.com/mingfan/p/12797989.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值