PostgreSQL 12.3流复制断点恢复

1.问题描述:
两PostgreSQL节点采用异步流复制对数据进行同步,由于需要测试一些东西,对主库设备进行了频繁的重启操作,结果导致流复制中断,且无法自行恢复,主、备库开始产生数据差。

2.解决思路:
删除备库数据目录下所有文件,使用PostgreSQL自带的备份工具pg_basebackup,把主库数据库目录下所有文件拉取到备库数据目录下,然后直接启动备库服务即可。

3.处理过程:
3.1.查看主库状态,保证主库服务处于运行状态;
字符f表示该节点为主库,字符t表示备库,流复制中断后,角色并不会被影响;
PostgreSQL 12.3流复制断点恢复
3.2.关闭备库PostgreSQL服务,然后删除备库数据目录下所有文件
PostgreSQL 12.3流复制断点恢复
3.3.同步主库数据到本地数据目录下(流复制用户:repl,数据目录:/data/postgresql),同步时间根据数据量大小而定,我这个地方有200~300GB数据,一个小时就同步完了。
PostgreSQL 12.3流复制断点恢复
3.4.更改数据目录权限为700,直接启动备库PostgreSQL服务
PostgreSQL 12.3流复制断点恢复
3.5.登录到主库,查看流复制状态,发现数据同步已重新建立;
PostgreSQL 12.3流复制断点恢复
3.6.验证,在主库创建一个test_sync库,看是否会同步到备库;
PostgreSQL 12.3流复制断点恢复
3.7.登录备库后,发现新建的test_sync库已经同步过来,说明数据同步已恢复。
PostgreSQL 12.3流复制断点恢复














發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章