停用資料中心

有時您可能需要停用資料中心。例如: 如果您要升級作業系統,就需要 在新資料中心安裝新的作業系統,然後停用舊的資料中心。 以下各節舉例說明如何停用資料中心 目前有兩個資料中心 dc-1 和 dc-2 12 個節點 叢集安裝

  • dc-1 是要停用的資料中心。
  • dc-2 是第二個資料中心,用於停用程序。

升級授權 您的作業系統,dc-2 可能是您已安裝的資料中心 新版本的作業系統 (OS)。不過,並不需要安裝新的 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 版本的程序執行 備份。如要進一步瞭解備份,請參閱 備份與還原

    注意:如果您有多個 Cassandra 或 ZooKeeper 節點,請一次備份一個節點。 因為備份程序會暫時關閉 ZooKeeper

  • 使用下列指令確保 Edge 在停用前已啟動並執行:
    /opt/apigee/apigee-service/bin/apigee-all status
  • 確認目前沒有任何執行階段流量到達您所在的資料中心 以及停用此功能

停用元件的順序

如果您在多個節點上安裝 Edge for Private Cloud,則應停用 這些節點上的邊緣元件,順序如下:

  1. Edge UI (edge-ui)
  2. 管理伺服器 (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. Router (邊緣路由器)
  5. 訊息處理器 (edge-message-processor)
  6. Qpid 伺服器和 Qpidd (edge-qpid-server and apigee-qpidd)
  7. Postgres 和 PostgreSQL 資料庫 (edge-postgres-server 和 apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

以下各節將說明如何停用各個元件。

Edge UI

如要停止並解除安裝 dc-1 的 Edge UI 元件,請輸入下列指令:

/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 中註冊的 Management Server 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. 刪除伺服器。注意:如果這個伺服器上也安裝了其他元件, 請先取消註冊所有 API,再刪除 UUID。
    curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. 在 dc-1 上解除安裝 Management Server 元件:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

開啟 LDAP

本節說明如何在 dc-1 上停用 OpenLDAP。

注意:如果您有多個資料中心,請參閱 下方設有超過兩間資料中心的設定程序

如要在 dc-1 上停用 OpenLDAP,請按照下列步驟操作:

  1. 按照以下步驟備份 dc-1 OpenLDAP 節點: 如何備份資料
  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-2 是否不會再複製到 dc-1 並確認是否在 dc-1 的 LDAP 中未顯示該 IP。

    或者,您也可以按照下列步驟,在 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&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 伺服器 (edge-qpid-server) 和 Qpidd (apigee-qpidd)。 在 dc-1 中設定了兩個 Qpid 節點,因此您必須為這兩個節點執行下列步驟 節點:

  1. 取得 Qpidd 的 UUID,相關說明請參閱取得 UUID
  2. 停止「edge-qpid-server」和「apigee-qpidd」:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. 取得數據分析和用戶群組清單:
    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 待命服務。 以下各節將說明如何停用這類 API:

停用 Postgres 主要執行個體

注意:如果您停用 Postgres 主要執行個體,請務必宣傳以下任一項: 做為新的 Postgres 主要執行個體,使用待命節點。雖然 QPID 會排入緩衝區資料, 如果 Postgres 主要執行個體無法使用一段時間,可能會導致數據分析資料遺失。

如何停用 Postgres 主要執行個體:

  1. 請按照以下連結中的操作說明,備份 dc-1 Postgres 主要節點:
  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.confPG_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. 按照 從分析群組中移除 Postgres 伺服器
      2. 按照 將現有的 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. 按照 從分析群組中移除 Postgres 伺服器
      2. 按照 將現有的 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 節點: ,瞭解如何調查及移除這項存取權。
    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_HOSTS》和《CASS_HOSTS》。

      範例:假設您有 dc-1 和 $IP4 $IP5 $IP6 中的 IP $IP1 $IP2 $IP3 更新 dc-2 時 正在停用 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 Router 和訊息處理器設定在個別節點上,請輸入以下內容:

        針對路由器:

        /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 節點 叢集內的 Pod 清單視需要修改此值。

      完成這個步驟後,Cassandra 拓撲應 任何索引鍵空間均不含 dc-1

    11. 逐一停用 dc-1 上的 Cassandra 節點。

      如要停用 Cassandra 節點,請輸入下列指令:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission

    12. 使用下列任一指令檢查 Cassandra 節點與 dc-1 的連線:
      /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 中仍有伺服器,請採取下列步驟 取消註冊及刪除伺服器。 注意:請視需要變更類型和廣告連播。

    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

    記錄

    檢查元件的記錄,確保沒有任何錯誤。