开发者社区 > 数据库 > 正文

PostgreSQL数据库流复制基本原理是什么样的?

PostgreSQL数据库流复制基本原理是什么样的?

展开
收起
vncamyi27xznk 2021-12-23 10:07:25 557 0
1 条回答
写回答
取消 提交回答
  • image.png image.png .从写程序流程来看基本原理,首先启动Postmaster进程,系统正常运行,如果客户端(WalReciver)进行流复制,启动之后客户端会连到Master,Master收到流复制信号会Fork一个指定层,指定层启动WalSender,后面是相应的流程,根据系统ID或用户网段在相应时间内完成。 计算要从什么时间点取什么数据呢? 系统在有SendTimeLineHistory的情况下会选择优先使用,否则会去做一些其他操作。通过CreateReplicationSlot开始找复制的时间点拷贝数据,SendPhysicak收到私人信息后会进行写操作,整个流程形成一个大循环。 数据库的Commit操作之后,Execute执行器将要改的脏数据写到WAL中,通过Sender发送到从数据库,从数据库这端对应的Receiver写到WAL日志里面,WAL再到数据库文件Date File Heaps,写到数据库之后,外面的查询执行器就可以进行取数据,以上就是流复制的大致流程。

    答复内容摘自《PostgreSQL实战教程》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1168

    2021-12-23 10:56:03
    赞同 展开评论 打赏

数据库领域前沿技术分享与交流

相关产品

  • 云原生数据库 PolarDB
  • 相关电子书

    更多
    DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
    阿里云瑶池数据库精要2022版 立即下载
    2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载

    相关镜像