停用資料中心

有時您可能需要停用資料中心。舉例來說,如果您要升級作業系統,就必須在新資料中心安裝新作業系統,然後停用舊資料中心。以下各節將列舉一個關閉資料中心的範例,其中有兩個資料中心 (dc-1 和 dc-2) 位於12 節點的叢集安裝環境中:

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

如果您要升級作業系統,dc-2 可能是您安裝新版作業系統 (OS) 的資料中心。不過,您不需要安裝新的 OS 即可停用資料中心。

停用資料中心前的考量

停用資料中心時,請注意下列事項:

  • 封鎖所有傳送至停用的資料中心的執行階段和管理流量,並將這些流量重新導向至其他資料中心。
  • 停用資料中心後,Apigee 叢集的容量會減少。為彌補這項缺點,建議您在關閉服務後,考慮增加剩餘資料中心的容量,或新增資料中心。
  • 在停用程序期間,系統可能會遺失 Analytics 資料,具體取決於在停用的資料中心中安裝了哪些 Analytics 元件。詳情請參閱「新增或移除 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 UI (edge-ui)
  2. 管理伺服器 (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. 路由器 (邊緣路由器)
  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 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 中註冊的管理伺服器 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

開啟 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

路由器

本節說明如何停用路由器。如要進一步瞭解如何移除 Router,請參閱「 移除伺服器」一文。

下列步驟會將路由器從 dc-1 停用。如果 dc-1 中設定了多個路由器節點,請逐一執行所有路由器節點中的步驟

注意:這裡假設負載平衡器已設定路由器的健康狀態檢查通訊埠 15999,且封鎖通訊埠 15999 會導致無法存取路由器。您可能需要 Root 存取權才能封鎖連接埠。

如要停用 Router,請按照下列步驟操作:

  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 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. 取得 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. 從 Analytics 群組中移除 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,並將 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. 從 Analytics 群組和消費者群組中移除及新增 Postgresql 伺服器。
      1. 按照「 從 Analytics 群組中移除 Postgres 伺服器」一文中的指示,從 Analytics 群組中移除舊的 Postgres 伺服器。
      2. 按照「 將現有的 Postgres 伺服器新增至 Analytics 群組」一文中的說明,將新的 Postgres 伺服器新增至 Analytics 群組。
    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. 從 Analytics 群組和消費者群組中移除及新增 Postgresql 伺服器。
      1. 按照「 從 Analytics 群組中移除 Postgres 伺服器」一文中的指示,從 Analytics 群組中移除舊的 Postgres 伺服器。
      2. 按照「 將現有的 Postgres 伺服器新增至 Analytics 群組」一文中的說明,將新的 Postgres 伺服器新增至 Analytics 群組。
    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 和 Message Processor 是在同一個節點上設定,請輸入:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • 如果 Edge Router 和 Message Processor 是在不同節點上設定,請輸入以下內容:

        路由器:

        /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;

      記錄

      檢查元件的記錄,確認沒有錯誤。