首页
解决方案
技术服务
专业数据库维保服务 大数据维保服务
一体机
Oracle数据库一体机 PolarDB数据库一体机 瀚高数据库一体机 崖山数据库一体机 海扬数据库一体机 高斯数据库一体机 金仓数据库一体机
产品
CLup乘数云统一平台 CData高性能数据库云一体机 CPDA高性能双子星数据库机 CBackup数据库备份恢复云平台 CMiner: PostgreSQL中的CDC CSYun超融合虚拟机产品 ZQPool数据库连接池 ConshGuard数据保护产品 APCC: Greenplum管理平台
文档
文章
客户及伙伴
中启开源
关于我们
登录
×
修改密码

PostgreSQL流复制搭建

PG的流复制类似于Oracle中的DG,利用WAL(Redo)日志传输属于物理复制,优点在于延迟较小

搭建步骤

环境信息

主库为已初始化好数据库PG实例,备库为已安装好软件但未初始化的数据库
ip | 角色
———-|———-
192.168.56.39|主库
192.168.56.40|备库

主库需配置的参数

编辑recovery.conf文件

我们使用了-R参数,在拉取的备份文件中会自动生成recovery文件

  1. standby_mode = 'on'
  2. recovery_target_timeline = 'latest'
  3. primary_conninfo = 'application_name=stb40 user=postgres passfile=''/home/postgres/.pgpass'' host=192.168.56.39 port=5432 sslmode=prefer sslcompression=1 target_session_attrs=any'

启动数据库

  1. pg_ctl start -D /pgdata/

监控流复制

在主库上查看

  1. postgres=# select * from pg_stat_replication ;
  2. -[ RECORD 1 ]----+------------------------------
  3. pid | 10807
  4. usesysid | 10
  5. usename | postgres
  6. application_name | stb40
  7. client_addr | 192.168.56.40
  8. client_hostname |
  9. client_port | 50660
  10. backend_start | 2018-05-06 23:27:42.625869+08
  11. backend_xmin |
  12. state | streaming
  13. sent_lsn | 2/95000140
  14. write_lsn | 2/95000140
  15. flush_lsn | 2/95000140
  16. replay_lsn | 2/95000140
  17. write_lag |
  18. flush_lag |
  19. replay_lag |
  20. sync_priority | 0
  21. sync_state | async

如何判断实例为主库还是备库

使用pg_controldata查看

  1. [postgres@pg40 ~]$ pg_controldata |grep cluster
  2. Database cluster state: in archive recovery //备库
  3. [postgres@pg39 log]$ pg_controldata |grep cluster
  4. Database cluster state: in production //主库