停用数据中心

有时,您可能需要停用数据中心。例如,如果您要升级操作系统,则需要在新数据中心安装新操作系统,然后停用旧数据中心。以下部分介绍了弃用数据中心的示例,其中 12 节点集群安装中有两个数据中心:dc-1 和 dc-2:

  • dc-1 是将要弃用的数据中心。
  • dc-2 是第二个数据中心,用于弃用流程中。

如果您要升级操作系统,dc-2 可以是安装了新版操作系统 (OS) 的数据中心。不过,您无需安装新操作系统即可停用数据中心。

停用数据中心前的注意事项

在弃用数据中心时,请注意以下事项:

  • 屏蔽指向要弃用的目标数据中心的所有运行时和管理流量,并将其重定向到其他数据中心。
  • 停用数据中心后,您的 Apigee 集群的容量将会减少。 为弥补这一点,请考虑增加剩余数据中心的容量,或在停用数据中心后添加数据中心。
  • 在停用过程中,可能会丢失分析数据,具体取决于要停用的相应数据中心中安装了哪些分析组件。如需了解详情,请参阅添加或移除 Qpid 节点
  • 在停用数据中心之前,您应了解所有数据中心中的所有组件(尤其是 OpenLDAP、ZooKeeper、Cassandra 和 Postgres 服务器)的配置方式。您还应备份所有组件及其配置。

前期准备

  • 管理服务器:所有停用步骤都非常依赖于管理服务器。如果您只有一个可用的管理服务器,我们建议您先在 dc-1 以外的数据中心安装新的管理服务器组件,然后再停用 dc-1 上的管理服务器,并确保其中一个管理服务器始终可用。
  • 路由器:在停用路由器之前,请通过屏蔽端口 15999 来停用路由器的可访问性。确保没有任何运行时流量被引导到要停用的路由器。
  • Cassandra 和 ZooKeeper:以下部分介绍了如何在双数据中心设置中停用 dc-1。

    如果您有多个数据中心,请务必从所有其余数据中心的所有静默配置文件中移除对要弃用的节点(在本例中为 dc-1)的所有引用。 对于要停用的 Cassandra 节点,请从 CASS_HOSTS 中移除这些主机。 其余 Cassandra 节点应保持原始的 CASS_HOSTS 排序。

  • Postgres:如果您要停用 Postgres 主服务器,请务必将任何可用的备用节点提升为新的 Postgres 主服务器。虽然 QPID 服务器会在队列中保留缓冲区,但如果 Postgres 主服务器长时间不可用,您可能会丢失分析数据。

前提条件

  • 在停用任何组件之前,我们建议您对所有节点执行完整备份。使用适用于您当前 Edge 版本的步骤执行备份。如需详细了解备份,请参阅备份和恢复

  • 在停用之前,请使用以下命令确保 Edge 正常运行:
    /opt/apigee/apigee-service/bin/apigee-all status
  • 确保目前没有任何运行时流量到达您要停用的数据中心。

停用组件的顺序

如果您在多个节点上安装了 Edge for Private Cloud,则应按以下顺序在这些节点上停用 Edge 组件:

  1. Edge 界面 (edge-ui)
  2. 管理服务器 (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. 路由器(边缘路由器)
  5. 消息处理器 (edge-message-processor)
  6. Qpid 服务器和 Qpidd(edge-qpid-server 和 apigee-qpidd)
  7. Postgres 和 PostgreSQL 数据库(edge-postgres-server 和 apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

以下部分介绍了如何停用各个组件。

Edge 界面

如需停止并卸载 dc-1 的 Edge 界面组件,请输入以下命令:

/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall

管理服务器

如需在 dc-1 上停用管理服务器,请执行以下步骤:

  1. 在 dc-1 上停止管理服务器:
    apigee-service edge-management-server stop
  2. 找到在 dc-1 中注册的管理服务器的 UUID:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. 取消注册服务器的类型:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. 删除服务器。注意:如果此服务器上还安装了其他组件,请先取消注册所有这些组件,然后再删除 UUID。
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. 在 dc-1 上卸载管理服务器组件:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open LDAP

本部分介绍了如何在 dc-1 上停用 OpenLDAP。

注意:如果您有多个数据中心,请参阅下文中的包含多个数据中心的设置

如需在 dc-1 上停用 OpenLDAP,请执行以下步骤:

  1. 按照如何备份中的步骤备份 dc-1 OpenLDAP 节点。
  2. 在两个数据中心 dc-1 和 dc-2 中执行以下步骤,中断这两个数据中心之间的数据复制。

    1. 检查当前状态:
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      输出应类似如下所示:

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. 创建一个包含以下命令的 break_repl.ldif 文件:
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. 运行 ldapmodify 命令:
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      输出应类似如下所示:

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"
  3. 您可以通过在 dc-2 LDAP 中创建条目并确保该条目未显示在 dc-1 的 LDAP 中,验证 dc-2 是否不再复制到 dc-1。

    (可选)您可以按照以下步骤操作,在 dc-2 OpenLDAP 节点中创建一个只读用户,然后检查该用户是否已复制。系统随后会删除该用户。

    1. 在 dc-2 中创建一个包含以下内容的 readonly-user.ldif 文件:
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. 在 dc-2 中使用 `ldapadd` 命令添加用户:
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      输出将类似于以下内容:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. 在 dc-1 中搜索该用户,确保该用户未复制。如果 dc-1 中没有该用户,您就可以确定这两个 LDAP 不再复制:
      ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      输出应类似如下所示:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. 移除您之前添加的只读用户:
      ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. 在 dc-1 中停止 OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. 在 dc-1 上卸载 OpenLDAP 组件:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

路由器

本部分介绍了如何停用路由器。如需详细了解如何移除路由器,请参阅 移除服务器

以下步骤介绍了如何从 dc-1 停用路由器。 如果 dc-1 中配置了多个路由器节点,请一次在所有路由器节点中执行这些步骤

注意:这里假定负载平衡器中配置了路由器的健康检查端口 15999,并且屏蔽端口 15999 会导致路由器不可访问。您可能需要 root 权限才能屏蔽该端口。

如需停用路由器,请执行以下步骤:

  1. 通过屏蔽健康检查端口 15999 来停用路由器的可访问性。 确保在此数据中心阻止运行时流量:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. 验证路由器是否可访问:

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    输出应类似如下所示:

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. 获取路由器的 UUID,如获取 UUID中所述。
  4. 停止路由器:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. 使用以下命令列出组织中的可用网关 Pod:
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    请参阅 Pod 简介

  6. 注销服务器的类型:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  7. 取消注册服务器:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. 卸载 edge-router
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    请参阅 移除服务器
  9. 刷新 iptables 规则以启用已屏蔽的端口 15999:
    iptables -F

消息处理器

本部分介绍了如何从 dc-1 停用消息处理器。 如需详细了解如何移除消息处理器,请参阅 移除服务器

由于我们假定 dc-1 具有12 个节点的集群化安装,因此 dc-1 中配置了两个消息处理器节点。在两个节点中执行以下命令。

  1. 获取消息处理器的 UUID,如获取 UUID中所述。
  2. 停止消息处理器:
    apigee-service edge-message-processor stop
  3. 注销服务器的类型:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. 将环境与消息处理器解除关联。
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. 注销服务器的类型:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. 卸载消息处理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. 取消注册服务器:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Qpid 服务器和 Qpidd

本部分介绍了如何停用 Qpid 服务器 (edge-qpid-server) 和 Qpidd (apigee-qpidd)。dc-1 中配置了两个 Qpid 节点,因此您必须对这两个节点执行以下步骤:

  1. 获取 Qpidd 的 UUID,如获取 UUID中所述。
  2. 停止 edge-qpid-serverapigee-qpidd
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. 获取 Google Analytics 和使用方群组的列表:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. 从使用方群组中移除 Qpid:
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. 从分析组中移除 Qpid:
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. 从 Edge 安装中取消注册 Qpid 服务器:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. 从 Edge 安装中移除 Qpid 服务器:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. 重启所有节点上的所有 edge-qpid-server 组件,以确保这些组件能够获取更改:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. 卸载 edge-qpid-server 和 apigee-qpidd:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres 和 Postgresql

您要停用的可能是 Postgres 主服务器或 Postgres 备用服务器所在的数据中心。以下部分介绍了如何停用这些设备:

停用 Postgres 主服务器

注意:如果您要停用 Postgres 主服务器,请务必将任何可用的备用节点提升为新的 Postgres 主服务器。虽然 QPID 会将缓冲区数据加入队列,但如果 Postgres 主服务器长时间不可用,您可能会丢失分析数据。

如需停用 Postgres 主服务器,请执行以下操作:

  1. 请按照以下链接中的说明备份 dc-1 Postgres 主节点:
  2. 获取 Postgres 服务器的 UUID,如获取 UUID中所述。
  3. 在 dc-1 上,停止当前主服务器上的 edge-postgres-serverapigee-postgresql
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. 在 dc-2 上的备用节点上,输入以下命令将其设为主节点:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    注意:如果您有多个待机 Postgres 节点,则必须在新主服务器上添加主机条目,并更新所有可用 Postgres 待机节点的复制设置。

    如需向新的 Postgres 主服务器添加主机条目,请按照以下相应部分中的步骤操作:

    如果只剩一个备用节点

    例如,假设在停用之前,您配置了三个 Postgres 节点。 您已停用现有主实例,并将其余 postgres 备用节点之一提升为主实例。按照以下步骤配置剩余的待机节点:

    1. 在新主服务器上,修改配置文件以设置:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. 在新主实例上启用复制功能:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    如果仍有多个待机节点

    1. /opt/apigee/customer/application/postgresql.properties 中添加以下配置:
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. 确保 /opt/apigee/customer/application/postgresql.properties 文件归 apigee 用户所有:
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. 重启 apigee-postgresql
      apigee-service apigee-postgresql restart
    4. 如需更新备用节点上的复制设置,请执行以下操作:

      1. 修改配置文件 /opt/silent.conf,并使用新 Postgres 主实例的 IP 地址更新 PG_MASTER 字段。
      2. 使用以下命令移除所有旧的 Postgres 数据:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. 在备用节点上设置复制:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. 在 dc-2 中输入以下命令,验证 Postgres 主服务器是否设置正确:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. 从分析组和使用方群组中移除并添加 Postgresql 服务器。
      1. 按照 从分析组中移除 Postgres 服务器中的说明,从分析组中移除旧的 Postgres 服务器。
      2. 按照 向分析组添加现有 Postgres 服务器中的说明,将新的 Postgres 服务器添加到分析组。
    7. 从 dc-1 取消注册旧的 postgres 服务器:
      curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
            
    8. 从 dc-1 中删除旧的 postgres 服务器:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. 现在可以安全地停用旧的 Postgres 主服务器了。卸载 edge-postgres-serverapigee-postgresql
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    停用 Postgres 备用服务器

    注意12 节点集群安装文档将 dc-1 postgresql 节点显示为主节点,但为方便起见,本部分假定 dc-1 postgresql 节点为备用节点,而 dc-2 postgresql 节点为主节点。

    如需停用 Postgres 备用服务器,请执行以下步骤:

    1. 按照获取 UUID 中的说明获取 Postgres 服务器的 UUID。
    2. 在 dc-1 中的当前备用节点上停止 apigee-postgresql
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. 从分析组和使用方群组中移除并添加 Postgresql 服务器。
      1. 按照 从分析组中移除 Postgres 服务器中的说明,从分析组中移除旧的 Postgres 服务器。
      2. 按照 向分析组添加现有 Postgres 服务器中的说明,将新的 Postgres 服务器添加到分析组。
    4. 从 dc-1 取消注册旧的 postgres 服务器:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"
    5. 从 dc-1 中删除旧的 postgres 服务器:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. 现在可以安全地停用旧的 Postgres 主服务器了。卸载 edge-postgres-serverapigee-postgresql
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper 和 Cassandra

    本部分介绍了如何在双数据中心设置中停用 ZooKeeper 和 Cassandra 服务器。

    如果您有多个数据中心,请务必从所有其余数据中心的所有静默配置文件中移除对要弃用的节点(在本例中为 dc-1)的所有引用。 对于要停用的 Cassandra 节点,请从 CASS_HOSTS 中移除这些主机。 其余 Cassandra 节点应保持原始的 CASS_HOSTS 排序。

    关于 ZooKeeper 的注意事项:在修改配置文件中的 ZK_HOST 属性时,您必须维持足够的投票节点,以确保 ZooKeeper 集群保持正常运行。您的配置中必须有奇数个投票节点。如需了解详情,请参阅 Apache ZooKeeper 维护任务

    如需停用 ZooKeeper 和 Cassandra 服务器,请执行以下操作:

    1. 按照以下链接中的说明备份 dc-1 Cassandra 和 ZooKeeper 节点:
    2. 列出即将停用的 Cassandra 节点所在数据中心的 ZooKeeper 和 Cassandra 服务器的 UUID

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. 注销服务器的类型:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. 取消注册服务器:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. 使用从 ZK_HOSTSCASS_HOSTS 中移除的已弃用节点的 IP 地址更新配置文件。

      示例:假设您在 dc-1 中有 IP 地址 $IP1 $IP2 $IP3,在 dc-2 中有 IP 地址 $IP4 $IP5 $IP6,并且您要停用 dc-1。然后,您应从配置文件中移除 IP 地址 $IP1 $IP2 $IP3

      • 现有配置文件条目:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • 新的配置文件条目:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. 使用已移除的已弃用节点的 IP 地址更新静默配置文件(在第 e 步中修改),并在托管管理服务器的所有节点上运行管理服务器配置文件:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. 使用已移除的已弃用节点的 IP 地址更新配置文件,并在所有路由器和消息处理器节点上运行 MP/RMP 配置文件:
      • 如果 Edge Router 和消息处理器配置在同一节点上,请输入:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • 如果 Edge 路由器和消息处理器配置在不同的节点上,请输入以下内容:

        对于路由器:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        对于消息处理器:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. 重新配置所有 Qpid 节点,并从响应文件中移除已弃用的节点的 IP:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. 重新配置所有 Postgres 节点,并从响应文件中移除已弃用的节点的 IP:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. 修改 system_auth 键空间。如果您已在现有 Cassandra 节点上启用 Cassandra 身份验证,请运行以下命令更新 system_auth 键空间的复制因子:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      此命令会将复制因子设置为 '3',表示集群中有三个 Cassandra 节点。请根据需要修改此值。

      完成此步骤后,Cassandra 拓扑中的任何键空间中都应没有 dc-1

    11. 逐个停用 dc-1 上的 Cassandra 节点。

      如需停用 Cassandra 节点,请输入以下命令:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. 使用以下命令之一检查 dc-1 中的 Cassandra 节点的连接情况:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      或要在已弃用的节点上运行的次要验证命令:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      上述命令应返回以下内容:

      Mode: DECOMMISSIONED
    13. 为 dc-2 中的所有 Cassandra 和 ZooKeeper 节点运行 DS 配置文件:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. 在 dc-1 中停止 apigee-cassandraapigee-zookeeper
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. 在 dc-1 中卸载 apigee-cassandraapigee-zookeeper
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    从 dc-1 中删除绑定

    如需从 dc-1 中删除这些绑定,请执行以下步骤:

    1. 从 dc-1 中删除绑定。
      1. 列出组织下的所有可用 pod:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. 如需检查是否已移除所有绑定,请获取与 pod 关联的服务器的 UUID
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        如果此命令未返回任何 UUID,则表示前面的步骤已移除所有绑定,您可以跳过下一步。否则,请执行下一步。

      3. 移除上一步中获取的 UUID 的所有服务器绑定:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. 解除组织与 pod 之间的关联:
        curl -v -u  <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. 删除 pod:
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. 删除相应区域。
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    至此,您已完成 dc-1 的弃用。

    附录

    问题排查

    如果在执行上述步骤后,某些 Pod 中仍有服务器,请按以下步骤取消注册并删除服务器。 注意:请根据需要更改类型和 pod。

    1. 使用以下命令获取 UUID
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. 取消注册服务器的类型:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. 逐个删除服务器:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    验证

    您可以使用以下命令验证弃用操作。

    管理服务器

    1. 在所有区域的管理服务器上运行以下命令。
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1
    2. 在所有组件上运行以下命令,检查所有管理端口的端口要求。
      curl -v http://MS_IP:8080/v1/servers/self
    3. 检查分析组。
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
    4. Cassandra/ZooKeeper 节点

      1. 在所有 Cassandra 节点上,输入以下命令:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        这将返回该特定节点的 runningnot running 状态。

      2. 在一个节点上,输入:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        上述命令将返回有效的数据中心信息。

      3. 在 ZooKeeper 节点上,首先输入:
        echo ruok | nc <host> 2181
        

        此命令会返回 imok

        接下来,输入:

        echo stat | nc <host> 2181 | grep Mode
        

        上述命令返回的 Mode 值将是以下某个值:observerleaderfollower

      4. 在一个 ZooKeeper 节点中,运行以下命令:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. 在 Postgres 主节点上,运行以下命令:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        验证响应是否表明该节点为主节点。

      6. 在备用节点上,运行以下命令:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        确保响应确认节点为备用节点。

      7. 使用以下命令登录 PostgreSQL 数据库:
        psql -h localhost -d apigee -U postgres

        出现提示时,输入 postgres 用户的密码(默认:postgres)。

        然后,执行以下查询以检查 client_received_start_timestamp 的最大值:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      日志

      检查组件日志,确保没有错误。