创建只读副本

如需提高读取吞吐量和可用性,您可以为现有的 AlloyDB Omni 服务器创建 AlloyDB Omni 副本服务器。副本服务器提供主数据库服务器的只读克隆。它会持续更新自己的数据,以反映主服务器数据的变化。

以下部分提供了相关步骤,用于配置 AlloyDB Omni 主服务器以进行复制、配置副本服务器以及验证主服务器上的复制状态。

配置主服务器以进行复制

  1. 更新主服务器主机的网络或防火墙设置,以便允许通过 TCP 端口 5432 从副本服务器主机发送传入流量。

  2. /var/alloydb/config/pg_hba.conf 文件中添加以下代码行:

    host all                alloydbreplica     IP_RANGE trust
    host replication        alloydbreplica     IP_RANGE trust
    host alloydbmetadata    alloydbmetadata    IP_RANGE trust
    

    IP_RANGE 替换为副本机器所在子网的 IP 地址范围(以 CIDR 表示法表示)。例如 203.0.113.0/24

  3. 重启主服务器:

    sudo alloydb database-server stop
    sudo alloydb database-server start

创建和配置副本服务器

如需创建和配置 AlloyDB Omni 副本服务器,请完成以下步骤:

  1. AlloyDB Omni 安装到您要用于托管副本的系统。

    运行 alloydb database-server install 命令时,请添加用于创建副本的特定标志:

    sudo alloydb database-server install \
      --data-dir=DATA_DIR \
      --pg-port=PORT \
      --replica-source-ip=SOURCE_IP \
      --replica-source-port=SOURCE_PORT

    替换以下内容:

    • DATA_DIR:您希望此副本用于其数据目录的文件系统路径。

    • PORT:您希望 AlloyDB Omni 用于接受连接的 TCP 端口。如果您未提供此值,AlloyDB Omni 会应用默认值 5432

    • SOURCE_IP:要从中复制的 AlloyDB Omni 主实例的 IP 地址。

    • SOURCE_PORT:要从中复制的 AlloyDB Omni 主实例的 TCP 端口。如果您未提供此值,AlloyDB Omni 会应用默认值 5432

  2. 确保副本与主服务器之间建立了网络连接:

    ping SOURCE_IP
  3. 启动副本:

    sudo alloydb database-server start

验证主服务器上的复制状态

如需验证复制是否已正确配置,请在主服务器的主机上运行以下命令:

  docker exec -it pg-service psql -h localhost -U alloydbadmin -c "select * from pg_stat_replication"

对于连接到主数据库服务器的每个副本,输出表中都包含对应的一行。

设置复制后,几秒钟内便可在副本上读取对主数据库服务器中的行执行的所有插入、更新和删除操作。