4.16.09 Quy trình khôi phục

Trong trường hợp xảy ra lỗi trong quá trình cập nhật lên Edge 4.16.09, bạn có thể khôi phục thành phần gây ra lỗi rồi thử cập nhật lại. Ví dụ: nếu không cập nhật được Postgres 9.4, bạn có thể khôi phục chỉ các nút Postgres và thử cập nhật lại.

Có hai trường hợp mà bạn có thể muốn thực hiện khôi phục:

  1. Khôi phục về một bản phát hành cũ hơn. Ví dụ: từ 4.16.09 xuống 4.16.05.
  2. Quay lại phiên bản cũ hơn trong cùng một bản phát hành.

Hãy làm theo quy trình bên dưới để khôi phục cho cả hai trường hợp.

Người có thể thực hiện việc khôi phục

Người dùng thực hiện việc khôi phục phải là người dùng đã cập nhật Edge ban đầu hoặc người dùng đang chạy với tư cách là người dùng gốc.

Theo mặc định, các thành phần Edge chạy dưới dạng người dùng "apigee". Trong một số trường hợp, bạn có thể đang chạy các thành phần Edge dưới dạng người dùng khác. Ví dụ: nếu Bộ định tuyến phải truy cập vào các cổng đặc quyền, chẳng hạn như các cổng dưới 1000, thì bạn phải chạy Bộ định tuyến dưới dạng người dùng gốc hoặc người dùng có quyền truy cập vào các cổng đó. Hoặc bạn có thể chạy một thành phần với tư cách là một người dùng và một thành phần khác với tư cách là một người dùng khác.

Những thành phần nào có thể được khôi phục

Bạn cần lưu ý những điều kiện sau khi thực hiện khôi phục:

  • Năm thành phần Edge được liệt kê dưới đây có chung mã. Do đó, để khôi phục bất kỳ thành phần nào trong số 5 thành phần trên một nút, bạn phải khôi phục bất kỳ thành phần nào trong số 5 thành phần được cài đặt trên nút đó. Ví dụ: nếu bạn đã cài đặt Máy chủ quản lý, Bộ định tuyến và Bộ xử lý thông báo trên nút, thì để khôi phục bất kỳ thành phần nào trong số đó, bạn phải khôi phục cả ba thành phần.
    Năm thành phần dùng chung mã là:
    • Máy chủ quản lý
    • Bộ định tuyến
    • Bộ xử lý thông báo
    • Máy chủ Qpid
    • Máy chủ Postgres
  • Nếu bạn đang cập nhật từ Edge 4.16.01, đừng khôi phục Cassandra. Bản phát hành Edge này chứa phiên bản Cassandra mới cập nhật. Nếu bạn khôi phục bất kỳ thành phần nào, hãy để Cassandra ở phiên bản 4.16.09.
  • Bản phát hành này không có phiên bản qpidd mới. Do đó, bạn không cần phải khôi phục qpidd.

Khôi phục 4.16.09

Phần này trình bày quy trình khôi phục Edge 4.16.09 về phiên bản trước. Phần này được chia thành hai phần:

  • Khôi phục bản cập nhật Postgres về phiên bản 9.4
    Phần cuối cùng của mọi quy trình cập nhật là cập nhật các nút Postgres lên phiên bản 9.4. Nếu bản cập nhật đó không thành công, thì bạn có thể sử dụng quy trình này để khôi phục bản cập nhật.
  • Khôi phục tất cả các thành phần khác của Edge
    Hãy làm theo quy trình này để khôi phục mọi thành phần khác của Edge.

Cách khôi phục bản cập nhật Postgres 9.4

Để khôi phục bản cập nhật Postgres khi cập nhật Postgres trong cấu hình chính-dự phòng, bạn:

  • Chuyển nút dự phòng mới thành nút chính Postgres. Phiên bản Postgres chính mới sẽ giống với phiên bản Edge mà bạn đã cài đặt trước đó.
  • Định cấu hình nút dự phòng cũ làm nút dự phòng của nút chính mới. Nút dự phòng cũ sẽ có cùng phiên bản với bản cài đặt Edge trước đó của bạn.
  • Đăng ký các nút chính và nút dự phòng mới với nhóm phân tích và nhóm người dùng.

Khi bạn hoàn tất quá trình khôi phục, nút chính cũ sẽ không còn cần thiết nữa. Sau đó, bạn có thể ngừng sử dụng nút chính cũ.

  1. Đảm bảo nút Postgres dự phòng mới đang chạy:
    > /opt/apigee/apigee-service/bin/apigee-all status

    Nếu Postgres không chạy, hãy khởi động:
    > /opt/apigee/apigee-service/bin/apigee-all start
  2. Đảm bảo Postgres đã dừng trên nút chính cũ và nút dự phòng cũ:
    > /opt/apigee/apigee-service/bin/apigee-all status

    Nếu Postgres đang chạy, hãy dừng Postgres:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  3. Nếu đã cài đặt, hãy khởi động Qpid trên nút dự phòng cũ:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start

    Lưu ý: Trong nhiều cấu hình, nút dự phòng cũ sẽ chỉ lưu trữ Postgres chứ không phải Qpid.
  4. Quảng bá nút dự phòng mới làm nút chính của Postgres:
    1. Nâng cấp nút dự phòng mới thành máy chủ chính mới:
      > apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Nếu được nhắc, hãy nhập mật khẩu Postgres cho người dùng "apigee", mật khẩu mặc định là "postgres".
    2. Chỉnh sửa tệp cấu hình mà bạn đã dùng để cài đặt phiên bản Edge hiện tại để chỉ định như sau:
      # Địa chỉ IP của máy chủ chính mới:
      PG_MASTER=new_standby_IP
      # Địa chỉ IP của nút máy chủ dự phòng cũ
      PG_STANDBY=old_standby_IP
    3. Định cấu hình máy chủ chính mới:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Tạo lại nút dự phòng cũ:
    1. Chỉnh sửa tệp cấu hình mà bạn đã dùng để cài đặt phiên bản Edge hiện tại để chỉ định những thông tin sau:
      # Địa chỉ IP của máy chủ chính mới:
      PG_MASTER=new_standby_IP
      # Địa chỉ IP của nút máy chủ dự phòng cũ
      PG_STANDBY=old_standby_IP
    2. Xoá thư mục dữ liệu trên nút dự phòng cũ:
      > cd /opt/apigee/data/apigee-postgresql/pgdata
      > rm -rf *
    3. Định cấu hình lại nút dự phòng cũ thành nút dự phòng của nút chính mới:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Đảm bảo Postgres đang chạy trên nút dự phòng cũ:
      > /opt/apigee/apigee-service/bin/apigee-all status

      Nếu Postgres không chạy, hãy khởi động:
      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. Xác minh rằng nút dự phòng mới đã được thêm bằng cách xem tệp /opt/apigee/apigee-postgresql/conf/pg_hba.conf trên nút chính mới.
  7. Xem thông tin về nhóm người tiêu dùng và số liệu phân tích hiện tại bằng cách chạy lệnh sau trên Máy chủ quản lý:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    Lệnh này trả về tên nhóm số liệu phân tích trong trường name và tên nhóm người tiêu dùng trong trường name trong consumer-groups. Lệnh này cũng trả về UUID của nút chính và nút dự phòng Postgres cũ trong trường postgres-server và trong trường datastores. Bạn sẽ thấy kết quả ở dạng:

    {
    "name" : "axgroup-001",
    "properties" : {
    },
    "scopes" : [ "VALIDATE~test", "sgilson~prod" ],
    "uuids" : {
    "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
    "postgres-server" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ]
    },
    "consumer-groups" : [ {
    "name" : "consumer-group-001",

    "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
    "datastores" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ],
    "properties" : { }
    } ],
    "data-processors" : {
    }
    }
  8. Lấy địa chỉ UUID của bản chính cũ bằng cách chạy lệnh cURL sau trên nút chính cũ:
    > curl -u sysAdminEmail:password http://<node_IP>:8084/v1/servers/self

    Bạn sẽ thấy UUID của nút ở cuối kết quả, dưới dạng:
    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"


    Lưu ý: Dịch vụ edge-postgres-server phải đang chạy. Nếu máy chủ Postgres không chạy, bạn có thể chạy lệnh sau trên Máy chủ quản lý để xác định UUID:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics

    Kết quả của lệnh này liệt kê UUID cho địa chỉ IP của mỗi nút Postres.
  9. Lặp lại bước trước để lấy địa chỉ IP của nút dự phòng cũ và nút chính mới.
  10. Xoá các nút chính và nút dự phòng cũ khỏi nhóm người dùng:
    > curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v

    trong đó axgroup-001 và consumer-group-001 là tên mặc định của nhóm phân tích và nhóm người dùng. masterUUID,standbyUUID theo thứ tự như khi xuất hiện ở trên khi bạn xem thông tin về nhóm người dùng và số liệu phân tích hiện tại ở trên. Bạn có thể phải chỉ định các thiết bị này dưới dạng standbyUUID,masterUUID.

    Thuộc tính datastores cho consumer-groups hiện phải trống.
  11. Xoá các nút chính và nút dự phòng cũ khỏi nhóm phân tích:
    > curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    Thuộc tính postgres-server trong uuids hiện phải trống.
  12. Đăng ký các nút chính và nút dự phòng mới của PG với nhóm người dùng và nhóm phân tích:
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v
  13. Xác thực nhóm phân tích:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    Bạn sẽ thấy UUID của các nút chính và nút dự phòng mới được liệt kê trong nhóm phân tích và nhóm người dùng.
  14. Khởi động lại Máy chủ quản lý Edge:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. Khởi động lại tất cả máy chủ Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. Khởi động lại tất cả máy chủ Postgres:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. Xác minh trạng thái sao chép bằng cách phát hành các tập lệnh sau trên cả hai máy chủ. Hệ thống sẽ hiển thị kết quả giống hệt nhau trên cả hai máy chủ để đảm bảo quá trình sao chép thành công:

    Trên bản chính mới, hãy chạy:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    Xác thực rằng hệ thống cho biết đây là bản chính.

    Trên nút dự phòng cũ:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Xác thực rằng nút này cho biết đây là nút dự phòng.
  18. Lặp lại bước trước đó sau khi thực hiện một số yêu cầu API để đảm bảo rằng các nút được đồng bộ hoá.
  19. Ngừng hoạt động bản chính Postgres cũ bằng quy trình trong phần Cập nhật Apigee Edge lên phiên bản 4.16.09.

    Lưu ý: Nếu nút chính cũ đang chạy Qpid, bạn có thể để máy chủ đó chạy Qpid. Đảm bảo rằng ứng dụng đang chạy. Nếu không, hãy khởi động dịch vụ này:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server start

    Ngoài ra, bạn có thể gỡ cài đặt Qpid khỏi nút chính cũ và cài đặt Qpid trên nút chính mới, như mô tả bên dưới. Sau khi gỡ cài đặt Qpid, bạn có thể ngừng hoạt động nút chính cũ.

Gỡ cài đặt Qpid khỏi máy chủ chính cũ và cài đặt Qpid trên máy chủ chính mới

Sử dụng quy trình sau để gỡ cài đặt Qpid khỏi máy chủ chính cũ và cài đặt Qpid trên máy chủ chính mới:

  1. Chặn quyền truy cập vào cổng Qpid 5672 trên bản chính cũ bằng cách chạy lệnh sau trên tất cả Trình xử lý thông báo:
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Đảm bảo hàng đợi thông báo Qpid trống bằng cách chạy lệnh sau. Bạn không thể gỡ cài đặt Qpid cho đến khi Qpid xử lý xong tất cả thông báo đang chờ xử lý:
    > qpid-stat -q

    Lệnh này hiển thị một bảng chứa số lượng msg, msgIn và msgOut. Tất cả thông báo sẽ được xử lý khi msg=0 và msgIn=msgOut.
  3. Xác định UUID của máy chủ Qpid trên máy chủ chính cũ bằng cách chạy lệnh sau trên máy chủ chính cũ. Lưu thông tin này để dùng sau trong quy trình:
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  4. Dừng Qpid trên bản chính cũ:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. Gỡ cài đặt máy chủ Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. Xoá máy chủ Qpid cũ khỏi nhóm phân tích và nhóm người dùng:
    > curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v

    > curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
  7. Xoá máy chủ Qpid cũ khỏi Zookeeper:
    > curl -u sysAdminEmail:password -X DELETE http://<ms_IP>:8080/v1/servers/qpid_UUID
  8. Cài đặt Qpid trên bản chính mới:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Xác định UUID của máy chủ Qpid trên máy chủ chính mới bằng cách chạy lệnh sau trên máy chủ chính mới. Lưu thông tin này để dùng sau trong quy trình:
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  10. Đăng ký máy chủ Qpid mới với nhóm người tiêu dùng và nhóm phân tích:
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v

    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v
  11. Khởi động lại tất cả Bộ xử lý thông báo:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Chạy lệnh sau trên máy chủ Qpid mới để kiểm tra xem hàng đợi đã được tạo hay chưa:
    > qpid-stat -q

    Đảm bảo rằng bạn thấy msg, msgIn và msgOut được cập nhật khi máy chủ Qpid xử lý thông báo.

Cách khôi phục từng thành phần từ phiên bản 4.16.09

Trong quá trình khôi phục, bạn phải tải tệp bootstrap.sh xuống cho phiên bản Edge hiện tại:

  • Để khôi phục về phiên bản 4.16.05, hãy tải bootstrap_4.16.05.sh xuống
  • Để khôi phục về phiên bản 4.16.01, hãy tải bootstrap.sh xuống

Đối với mỗi nút lưu trữ một thành phần cần khôi phục:

  1. Dừng thành phần để khôi phục:
    1. Nếu đang khôi phục bất kỳ thành phần nào sau đây trên nút, bạn phải dừng tất cả các thành phần đó: Máy chủ quản lý, Bộ định tuyến, Bộ xử lý thông báo, Máy chủ Qpid hoặc Máy chủ Postgres:
      • > apigee-service edge-management-server stop
      • > apigee-service edge-router stop
      • > apigee-service edge-message-processor stop
      • > apigee-service edge-qpid-server stop
      • > apigee-service edge-postgres-server stop
    2. Nếu bạn đang khôi phục bất kỳ thành phần nào khác trên nút, hãy chỉ dừng thành phần đó:
      • > apigee-service comp stop
  2. Nếu bạn đang khôi phục tính năng Kiếm tiền, hãy gỡ cài đặt tính năng này khỏi tất cả các nút Máy chủ quản lý và Bộ xử lý thông báo:
    > apigee-service edge-mint-gateway uninstall
  3. Gỡ cài đặt thành phần để khôi phục trên nút:
    1. Nếu bạn đang khôi phục bất kỳ thành phần nào sau đây trên nút, hãy gỡ cài đặt tất cả: Máy chủ quản lý, Bộ định tuyến, Bộ xử lý thông báo, Máy chủ Qpid hoặc Máy chủ Postgres:
      > apigee-service edge-gateway uninstall
    2. Nếu bạn đang khôi phục bất kỳ thành phần nào khác trên nút, hãy chỉ gỡ cài đặt thành phần đó:
      > apigee-service comp uninstall
  4. Nếu đang khôi phục Bộ định tuyến, bạn phải xoá nội dung của /opt/nginx/conf.d:
    > cd /opt/nginx/conf.d
    > rm -rf *
  5. Cách khôi phục thành phần:
    1. Gỡ cài đặt phiên bản 4.16.09 của apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. Tải bootstrap.sh xuống cho bản phát hành 4.16.01 hoặc 4.16.05:
      Đối với 4.16.01:
      > curl https://software.apigee.com/bootstrap.sh -o /tmp/bootstrap.sh

      Đối với 4.16.05:
      > curl https://software.apigee.com/bootstrap_4.16.05.sh -o /tmp/bootstrap.sh
    3. Cài đặt tiện ích và phần phụ thuộc apigee-service 4.16.01 hoặc 4.16.05:
      > sudo bash /tmp/bootstrap.sh apigeeuser=uName apigeepassword=pWord

      trong đó uName và pWord là tên người dùng và mật khẩu bạn nhận được từ Apigee. Nếu bỏ qua pWord, bạn sẽ được nhắc nhập mật khẩu.
    4. Cài đặt phiên bản 4.16.01 hoặc 4.16.05 của apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. Cài đặt phiên bản 4.16.01 hoặc 4.16.05 của thành phần:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      trong đó comp là thành phần cần cài đặt và configFile là tệp cấu hình 4.16.01 hoặc 4.16.05 của bạn.
  6. Cách khôi phục thành phần về một phiên bản cụ thể của bản phát hành 4.16.05:
    1. Tải phiên bản thành phần cụ thể xuống:
      > /<instal_dir>/apigee/apigee-service/bin/apigee-service comp-version install

      trong đó comp-version là thành phần và phiên bản cần cài đặt. Ví dụ:
      > /<instal_dir>/apigee/apigee-service/bin/apigee-service edge-ui-4.16.05-0.0.3649 install

      Nếu đang sử dụng kho lưu trữ trực tuyến Apigee, bạn có thể xác định các phiên bản thành phần hiện có bằng cách sử dụng lệnh sau:
      > yum --showduplicates list comp

      Ví dụ:
      > yum --showduplicates list edge-ui
    2. Sử dụng apigee-setup để cài đặt thành phần:
      > /<install_dir>/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      Ví dụ:
      > /<install_dir>/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

      Lưu ý rằng bạn chỉ chỉ định tên thành phần khi cài đặt.

Hãy liên hệ với Nhóm hỗ trợ Apigee nếu bạn gặp vấn đề khi khôi phục.