停用数据中心

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

  • dc-1 是要退役的数据中心。
  • dc-2 是第二个数据中心,在退役过程中使用。

如果您要升级 则 dc-2 可能是您安装的数据中心 新版操作系统 (OS)。但无需安装新的操作系统 我们决定停用数据中心

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

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

  • 阻止发往数据中心停用并重定向的所有运行时和管理流量 连接到其他数据中心
  • 停用数据中心后,您的 Apigee 集群中的容量将减少。 为了弥补这些费用,请考虑增加剩余数据中心的容量或增加 退役后的数据中心
  • 在停用过程中,分析数据可能会丢失,具体取决于 在停用数据中心内安装了哪些分析组件。您可以 有关详情,请参阅添加或删除 Qpid 节点
  • 在停用数据中心之前,您应该了解所有组件 在所有数据中心都进行了配置,尤其是 OpenLDAP、ZooKeeper、Cassandra、 和 Postgres 服务器您还应该备份所有组件及其配置。

前期准备

  • 管理服务器: 所有停用步骤都高度依赖于管理服务器。如果您只有一个 管理服务器可用, 我们建议您安装一个新的 停用 Management “dc-1”上的服务器 其中一个管理服务器始终可用。
  • 路由器: 在停用路由器之前,请停用路由器的可达性 屏蔽端口 15999确保无运行时 流量正被定向到已停用的路由器。
  • Cassandra 和 ZooKeeper: 以下部分介绍了如何在两个数据中心设置中停用 dc-1。 如果您有两个以上的 数据中心,请务必移除对要停用的节点的所有引用 (本例中为 dc-1) 所有其余数据中心的所有静默配置文件。 对于即将停用的 Cassandra 节点,请从 CASS_HOSTS 中删除这些主机。 其余 Cassandra 节点应保持 CASS_HOSTS 的原始顺序。

  • Postgres:如果您停用 Postgres 主节点,请确保使用 用作新的 Postgres 主实例。而 QPID 服务器在 队列中,如果 Postgres 主实例长时间不可用,则有可能会丢失分析数据。

前提条件

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

    注意:如果您有多个 Cassandra 或 ZooKeeper 节点,请一次备份一个节点, 因为备份过程会暂时关闭 ZooKeeper

  • 在停用之前,使用以下命令确保 Edge 已启动并运行:
    /opt/apigee/apigee-service/bin/apigee-all status
  • 确保目前没有任何运行时流量到达您的目标数据中心 退役。

停用组件的顺序

如果您在多个节点上安装适用于私有云的 Edge,则应停用 这些节点上的 Edge 组件按以下顺序排列:

  1. Edge 界面 (edge-ui)
  2. 管理服务器 (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. 路由器 (edge-router)
  5. 消息处理器 (edge-message-processor)
  6. Qpid Server 和 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。

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

要在 dc-1 上停用 OpenLDAP,请按以下步骤操作:

  1. 按照 如何备份
  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 是否不再复制到 dc-1,方法是在 dc-2 LDAP 中创建条目 并确保它不会显示在 dc-1 的 LDAP 中。

    (可选)您可以按照以下步骤,在 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

路由器

本部分介绍了如何停用路由器。请参阅 <ph type="x-smartling-placeholder"></ph> 移除服务器,详细了解如何移除路由器。

通过以下步骤可将路由器从 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&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;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&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;action=remove"/pre>
  4. Disassociate an environment from the Message Processor.

    Note: You need to remove the bindings on each org/env that associates the Message Processor UUID.

    curl -H "Content-Type:application/x-www-form-urlencoded" -u <AdminEmailID>:''  \
    -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 Server (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 主节点: <ph type="x-smartling-placeholder">
  2. 获取 Postgres 服务器的 UUID,如 获取 UUID
  3. 在 dc-1 上,停止 edge-postgres-server,然后 当前主实例上的 apigee-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 并更新 将 PG_MASTER 字段替换为新的 Postgres 主实例的 IP 地址。
      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. 按照 <ph type="x-smartling-placeholder"></ph> 从分析组中移除 Postgres 服务器
      2. 按照 <ph type="x-smartling-placeholder"></ph> 将现有 Postgres 服务器添加到分析组
    7. 从 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"<
    8. 从 dc-1 删除旧的 postgres 服务器:
      curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. 旧的 Postgres 主实例现在可以安全停用。卸载“edge-postgres-server” 和 apigee-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
    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. 按照 <ph type="x-smartling-placeholder"></ph> 从分析组中移除 Postgres 服务器
      2. 按照 <ph type="x-smartling-placeholder"></ph> 将现有 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-server” 和 apigee-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 节点: <ph type="x-smartling-placeholder">
    2. 列出 ZooKeeper 和 Cassandra 的 UUID 与 Cassandra 节点相关, 退役

      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. 使用从中移除停用节点的 IP 更新配置文件 ZK_HOSTSCASS_HOSTS

      示例:假设您的 IP 地址为 $IP1 $IP2 $IP3,位于 dc-1 和 $IP4 $IP5 $IP6 中 且您在 dc-2 中 正在停用 dc-1。那么您应该从 $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 配置文件 所有路由器和消息处理器节点上: <ph type="x-smartling-placeholder">
        </ph>
      • 如果在同一节点上配置了边缘路由器和消息处理器,请输入:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • 如果在不同的节点上配置边缘路由器和消息处理器,请输入以下内容:

        对于路由器:

        /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

    注意:如果您没有执行删除服务器的某个步骤,请执行上述步骤 系统将返回一条错误消息 Pod 中的特定服务器仍然存在因此,请按照问题排查步骤删除它们 ,同时在 curl 命令中自定义类型。

    至此,您已完成 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

    验证

    您可以使用以下命令验证停用。

    管理服务器

    从所有区域上的管理服务器运行以下命令。

    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

    在所有组件上运行以下命令,以检查所有管理的端口要求 端口。

    curl -v http://MS_IP:8080/v1/servers/self

    查看分析群组。

    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

    Cassandra/ZooKeeper 节点

    在所有 Cassandra 节点上输入:

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

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

    在一个节点上输入:

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

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

    在 ZooKeeper 节点上,首先输入:

    echo ruok | nc <host> 2181

    此命令将返回 imok

    然后输入以下命令:

    echo stat | nc <host> 2181 | grep Mode

    上述命令返回的 Mode 值将是下列值之一: observerleaderfollower

    在一个 ZooKeeper 节点中:

    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt

    在 Postgres 主节点上,运行以下命令:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

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

    在备用节点上:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    验证响应是否表明节点为备用节点。

    使用以下命令登录 PostgreSQL 数据库

    psql -h localhost -d apigee -U postgres

    出现提示时,输入“postgres”用户密码,格式为 'postgres'。 从数据分析中选择“max(client_received_start_timestamp)”。

    ”$org.$env.fact” limit 1

    日志

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