如何建立基于RDS PostgreSQL的备库

如何建立基于RDS PostgreSQL的备库?

如果用户需要构建一个和RDS PostgreSQL一模一样的备库,则可以通过流复制或者归档来完成。同时用户可以通过这种方法搭建自己的备库,在RDS没有提供异地容灾服务前,进行异地容灾。
步骤如下:
1、准备备库环境安装64位Linux安装与RDS PostgreSQL大版本一致的PostgreSQL软件空间规划
安装CentOS 6.x x64,步骤略。
线上RDS PostgreSQL版本为9.4.x,所以备库环境也需要安装9.4的大版本,我们可以安装9.4.6,关注一下release notes,确保兼容性。
确保与线上版本编译参数一致,包括插件版本。
2、准备一个拥有replication角色的用户
3、配置外网地址(可选)
如果你需要将RDS复制到阿里云以外的主机,或者RDS和ECS在不同的可用区,则需要通过公网来连接。那么需要用户配置RDS的公网地址,同样在阿里云管理控制台的RDS实例管理中可以申请公网地址。
4、配置白名单,测试连通性正常
在阿里云管理控制台的RDS 实例管理 - 数据安全 配置白名单,测试连通性正常例如备库的出口IP是固定的,则将这个IP添加到白名单,如果不是固定的IP,则需要添加0.0.0.0。
5、下载全量备份集,测试归档的下载接口是否正常
在控制台下载最近的一次全量备份集。
6、 测试归档的下载接口是否正常
归档文件的下载需要通过调用API完成。
7、测试数据库的流复制连通性
请替换成您自己的RDS实例连接信息进行测试
8、配置postgresql.conf, recovery.conf
解压全量备份集到规划好的目录。/data01/pgdata
配置 postgresql.conf在文件末尾追加
配置 recovery.conf请替换成您自己的RDS实例连接信息
9、启动备库,检查是否同步

注:建议不要使用replication slot, 因为slot会导致主节点不删除XLOG, 从而可能因为网络堵塞,备库异常等无法实时接收XLOG的情况下导致主节点因为保留pg_xlog而把空间用满。

标签