• Patroni for opengauss 9:basebackup


    备节点初始化时不做gs_ctl init,而是做gs_basebackup,OG创建basebackup不同于PG,我们直接使用superuser做basebackup,并且携带用户名和密码,因此对Patroni代码做了修改,涉及文件:

    patroni/postgresql/config.py

    patroni/postgresql/bootstrap.py

    patroni/ha.py

    src/bin/pg_basebackup/streamutil.h

    src/bin/pg_basebackup/streamutil.cpp

    src/bin/pg_basebackup/pg_basebackup.cpp

    备节点调用gs_basebackup初始化后,还会调用write_postgresql_conf(),以patroni.yml里的参数值,来重新覆盖postgresql.conf,会把postgresql.base.conf和postgresql.conf合成为postgresql.conf。

    patroni/postgresql/config.py:def replication()

    源码中使用replication用户信息的地方,实际是superuser的用户信息。

    patroni/postgresql/bootstrap.py:def create_replica(),修改传给 gs_basebackup 的参数。

    patroni/postgresql/bootstrap.py:def basebackup() ,实际调用gs_basebackup的代码,调用前创建数据目录。

    用属性_basebackup_executed标记basebackup是否成功执行了,这个属性在rewind时会用到。

     patroni/ha.py:def recover()、def follow()

    -----------------------------------------------------------------------------------------------------------------------------

    opengauss 5.0.0以后这部分修改不再需要了。

    为了让Patroni能够使用gs_basebackup,对OG的gs_basebackup也做了修改:

    src/bin/pg_basebackup/streamutil.h:

     增加setdbpassword函数,用于接收--no-password传来的密码参数

    src/bin/pg_basebackup/streamutil.cpp:

     src/bin/pg_basebackup/pg_basebackup.cpp:

     用--no-password或-w传入密码。

  • 相关阅读:
    MMKV(3)
    2022.03青少年软件编程(Python)等级考试试卷(五级)
    XML 解析技术:DOM4j
    【目标检测】SPP-Net
    Webmin -- Filesystem Backup
    Spring MVC 请求参数绑定
    Gephi弹出JVM Creation failed
    【软件测试】理论知识基础第一章
    数据库存储架构
    云原生之K8s—yaml文件
  • 原文地址:https://blog.csdn.net/howard_shooter/article/details/126648161