gpt4 book ai didi

database - 如何在 Kubernetes Pod 中运行的 PostgreSQL 中启用流式复制?

转载 作者:行者123 更新时间:2023-12-04 09:03:40 29 4
gpt4 key购买 nike

根据我的阅读,我需要更改配置文件 postgres.confpg_hba.conf之后我们需要创建一个“复制”用户。

  • 如何更改这些配置文件并确保在重新启动后对这些配置文件的更改仍然存在?
  • 由于我的 postgres 在 kubernetes pod 内运行,我认为必须在容器内创建用户。
    但是当我这样做时 createuser -replication -P replica ,它不会允许我创建一个,因为我做了之后的当前用户 docker exec -it <container_id> bashroot而不是 postgres .
  • 最佳答案

    gist有关于如何使用 docker 使用 Postgres 设置主从复制的详细说明。
    主配置
    创建复制用户

    CREATE USER replication_user NOSUPERUSER;
    ALTER USER replication_user WITH REPLICATION;
    ALTER USER replication_user WITH PASSWORD 'CHANGEME';
    配置文件
    编辑或添加这些行:
    listen_addresses = '*'   # It can be more specific with the listen IP
    wal_level = hot_standby
    max_wal_sender = 5 # Specifies the maximum number of concurrent connections from standby servers
    ssl = off
    archive_mode = on
    archive_command = "cp %p /path/to/archive/%f"
    pg_hba.conf
    假设192.168.0.2/32是slave的IP,replication_user是复制用户。
    如果不需要身份验证
     host  replication   replication_user   192.168.0.2/32      trust
    使用密码进行身份验证
     host  replication   replication_user   192.168.0.2/32      scram-sha-256 # or MD5
    从机配置
    假设主 IP 为:192.168.0.1,端口为默认值 (5432)。
    listen_addresses = '*'
    primary_conninfo = 'user=replication_user password=CHANGEME host=192.168.0.1 port=5432'
    hot_standby = on
    使配置持久化
    您可以使用 docker volumes (或 for kubernetes)。
    首先在启动容器的本地机器中创建配置文件,然后:
    docker run --rm --name IMAGE_NAME -v /local/path/to/postgresql.conf:/etc/postgresql/postgresql.conf -v /local/path/to/pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf CONTAINER_NAME
    对奴隶也一样。
    来源:
    https://wiki.postgresql.org/wiki/Streaming_Replication
    https://gist.github.com/avshabanov/eb8e03a050c79f8e77420b06f9b4abe5

    关于database - 如何在 Kubernetes Pod 中运行的 PostgreSQL 中启用流式复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63506679/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com