克隆 OpenResty Edge 環境

在面對如以下的場景時,我們可能需要構建一個與生產環境一致或者是儘可能一致的環境:

  • 進行升級測試:升級 OpenResty Edge 前,搭建一個與生產環境一致的環境,進行升級測試,測試透過後,再對生產環境進行升級。
  • 遷移式升級:不對生產環境進行升級,而是構建一個與生產環境一致的環境,對新環境進行升級並測試,測試透過後,直接把舊環境中的流量切換到新環境中。

下面介紹詳細的步驟。

  1. 從生產環境中獲取資料備份:登入 Edge Admin DB 環境,確認磁碟空間足夠後,執行以下命令進行資料備份

    # PostgreSQL 12
    /usr/local/openresty-postgresql12/bin/pg_dump or_edge_admin -C -Upostgres | gzip > or_edge_admin-`date +%F`.gz
    
    # PostgreSQL 9
    /usr/local/openresty/postgresql/bin/pg_dump or_edge_admin -C -Upostgres | gzip > or_edge_admin-`date +%F`.gz
    

    資料備份完成並取出後,後續的步驟中不再需要對生產環境進行任何操作,為防止誤操作,您可以斷開與當前機器的連線。

  2. 在測試環境中安裝與生產環境一樣的 OpenResty Edge 版本,如果您想測試在 Kubernetes 環境中部署的 OpenResty Edge,請參考在 Kubernetes 環境中部署 OpenResty Edge;否則,請參考安裝 OpenResty Edge

  3. 匯入資料到新環境中:登入新環境的資料庫機器,把前面匯出的資料上傳到此機器上,然後執行以下命令來重新命名安裝時生成的 or_edge_admin 資料庫和匯入資料

    # PostgreSQL 12
    /usr/local/openresty-postgresql12/bin/psql -Upostgres -c "ALTER DATABASE or_edge_admin RENAME TO or_edge_admin_old"
    
    # PostgreSQL 9
    /usr/local/openresty-postgresql/bin/psql -Upostgres -c "ALTER DATABASE or_edge_admin RENAME TO or_edge_admin_old"
    
    # PostgreSQL 12
    zcat or_edge_admin-{date}.gz | /usr/local/openresty-postgresql12/bin/psql -Upostgres
    
    # PostgreSQL 9
    zcat or_edge_admin-{date}.gz | /usr/local/openresty-postgresql/bin/psql -Upostgres
    
  4. 然後對新環境進行升級,詳見 升級 OpenResty Edge

有問題我們隨時溝通 :)