创建只读副本

如需提高读取吞吐量和可用性,您可以为现有 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"

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

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