使用 OCI Full Stack Disaster Recovery,使用 PostgreSQL 自動執行 OCI Database 的冷災害復原

簡介

Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) 只需按一下,即可協調全球 OCI 區域之間的運算、資料庫和應用程式轉換。客戶可以自動執行復原一或多個業務系統所需的步驟,無需重新設計或重新架構現有的基礎架構、資料庫或應用程式,也無需使用專門的管理或轉換伺服器。

OCI Database with PostgreSQL 是完全託管的 PostgreSQL 相容服務,具有智慧型大小、調整和高持久性。此服務會在建立和刪除資料庫表格時自動調整儲存體,讓您輕鬆管理並最佳化儲存體支出。資料在傳輸中和靜態都經過加密。OCI Database with PostgreSQL 可在可用性網域 (AD) 發生故障時提供持久性,以提供高可用性。

在本教學課程中,您將瞭解如何使用 PostgreSQL 將 OCI 資料庫的冷災復原自動化。它概述了使用 OCI Full Stack DR 服務來管理切換和容錯移轉程序的程序。

注意:這種類型的災害復原 (DR) 策略依賴備份和回復機制,因此最適合非關鍵應用程式,因為復原時間目標 (RTO) 和復原點目標 (RPO) 的業務需求並未過度要求。

架構描述

本教學課程中提供的架構展示了在 OCI 虛擬機器 (VM) 上執行的典型 Web 應用程式,並與 OCI 資料庫與 PostgreSQL 緊密整合。

OCI 負載平衡器部署在兩個區域的公用子網路內,以有效管理外部使用者連線。應用程式使用者會透過 DNS 流量操控,遞送至區域 X 中目前作用中的後端。

fsdr_psql_backup_restore_dr-Physical_Architecture.png

fsdr_psql_backup_restore_dr-Physical_Architecture.png 圖解描述

災害復原架構描述

此 Web 應用程式的 DR 策略涉及全方位的方法,包括將 VM 的開機磁碟區與磁碟區群組複製的完整複製。

對於含有 PostgreSQL 的 OCI 資料庫,會啟用備份複製,以定期將自動備份複製到遠端區域,以確保資料保護和災害復原就緒。

fsdr_psql_backup_restore_dr-Physical_DR_Architecture.png

fsdr_psql_backup_restore_dr-Physical_DR_Architecture.png 圖解描述

此部署的復原解決方案需要 OCI Full Stack DR 在進行復原作業 (例如容錯移轉或切換) 時,執行一系列自訂的 Python 命令檔。

本教學課程中參照的命令檔由 EMEA 技術工程團隊提供,可於此取得: full-stack-disaster-recovery ,此為此 DR 解決方案量身打造。

本教學課程說明如何下載命令檔以及如何在稍後的工作中使用這些命令檔。

備註:針對一般指引提供下列指令檔。您可以使用自己的命令檔,或根據公司原則和安全需求自訂命令檔。

負載平衡器已在遠端區域預先佈建,確保在切換或容錯移轉期間將 Web 應用程式 VM 轉換至遠端區域時,能夠順暢地處理流量如下圖所示,DNS 操控原則保證負載平衡器的無縫切換,並將狀況檢查連附至目前可用負載平衡器後端集的路由。如需詳細資訊,請參閱 OCI 流量管理

負載平衡器監聽器是在 80 (前端) 和 8000 (API) 連接埠上設定,而且預設組態中會分別遞送至 30008585 連接埠。

fsdr_psql_backup_restore_dr-Physical_Network_Architecture.png

fsdr_psql_backup_restore_dr-Physical_Network_Architecture.png 圖解描述

下圖說明從主要區域自動備份複製到遠端區域的工作流程。

fsdr_psql_backup_restore_dr-Logical_Workflow_Auto_Copy_Backup_to_Remote.png

fsdr_psql_backup_restore_dr-Logical_Workflow_Auto_Copy_Backup_to_Remote.png 圖解描述

在此情況下,備份可以排定為每日執行,然後複製到遠端區域以進行額外的備援,進而產生 24 小時的復原點目標 (RPO)。

注意:

如果使用案例需要較短的 RPO,則解決方案會排定較頻繁的備份,並使用提供的命令檔 (psql_create_bkp.pypsql_copy_bkp.py) 手動觸發備份,然後根據業務需求將它們複製到遠端區域。此外,psql_copy_config.py 也可以用來將具有 PostgreSQL 組態的 OCI 資料庫複製到遠端區域,這是還原資料庫系統擴充功能和參數的必要條件。

fsdr_psql_backup_restore_dr-Logical_Workflow_Manual_Backup_Copy_to_Remote.png

fsdr_psql_backup_restore_dr-Logical_Workflow_Manual_Backup_Copy_to_Remote.png 圖解描述

所有指令碼皆可在 GitHub 上使用,且在下列各節中詳細說明。

備註:請務必根據您的業務需求排定此指令碼 (或類似的指令碼),以定期進行備份並將其複製到遠端區域。若無此步驟,回復處理作業可能會因次要區域中沒有備份而失敗。

復原如何運作?

執行計畫的切換之後,角色將會反轉:主要工作負載將在第 2 區執行,而待命資料庫則會在第 1 區運作。此架構的顯示方式如下:

fsdr_psql_backup_restore_dr-Physical_Switchover_Architecture.png

fsdr_psql_backup_restore_dr-Physical_Switchover_Architecture.png 圖解描述

在目前的設定中,我們運用 OCI 專用 DNS 服務管理 DNS 記錄,以將流量導向至具有 PostgreSQL 端點的作用中 OCI 資料庫。在復原過程中,此 DNS 記錄會透過自訂命令檔 (psql_update_dns.py) 進行更新,以反映新的 OCI 資料庫與 PostgreSQL,確保能夠順暢切換或容錯移轉及持續服務。

下圖說明還原待命區域中具有 PostgreSQL 備份之最新 OCI 資料庫的工作流程,此備份會變成新的主要區域。

fsdr_psql_backup_restore_dr-Logical_Workflow_Switchover_to_Remote.png

fsdr_psql_backup_restore_dr-Logical_Workflow_Switchover_to_Remote.png 圖解描述

整個教學課程的定義和假設

Web 應用程式虛擬機器

本教學課程中的 Web 應用程式主要展示端對端案例架構,單一部署命令檔 (deploy_application_demo.sh) 將在 Web 應用程式 VM 中設定及部署應用程式堆疊。如需有關建置應用程式的進一步指示,請參閱儲存區域: link-to-web-app-sample

前端預覽:報表中可見的資料列會直接從 OCI Database 使用 PostgreSQL 取得。

webapp-frontend-preview.png

webapp-frontend-preview.png 圖解描述

目標

本教學課程涵蓋下列工作:

  1. 工作 1:準備環境以進行災害復原。
  2. 工作 2:在兩個區域中建立 DR 保護群組 (DRPG)。
  3. 工作 3:新增成員至 DR 保護群組。
  4. 作業 4:在區域 2 中建立基本 DR 計畫。
  5. 作業 5:自訂區域 2 中的切換計畫。
  6. 工作 6:自訂區域 2 中的容錯移轉計畫。
  7. 作業 7:執行區域 2 中 DR 計畫的前置檢查。
  8. 作業 8:在區域 2 中執行切換計畫。
  9. 作業 9:在區域 1 中建立並自訂 DR 計畫。
  10. 作業 10:在區域 1 中執行容錯移轉計畫。

工作 1:準備災害復原的環境

作業 1.1:建立磁碟區群組並啟用複寫

在區域 1 中為範例 Web 應用程式 VM 建立磁碟區群組,並確保在區域 2 中複製該磁碟區群組。確定每個應用程式 VM 的開機磁碟區 (範例 WebApp) 是磁碟區群組的成員,且磁碟區群組會複製到區域 2。

下列影像顯示已建立的磁碟區群組 (包括 Web 應用程式 VM 的開機磁碟區),且已順利啟用複製至區域 2。如需詳細資訊,請參閱建立磁碟區群組

儲存 - 建立 -volgrp-webapp.png

psql-webapp-create-vol-grp.png 圖解描述

儲存 - 建立 -volgrp-webapp-1.png

psql-webapp-create-vol-grp-2.png 圖解描述

儲存 - 建立 -volgrp-webapp-2.png

psql-webapp-create-vol-grp-3.png 圖解描述

設定跨區域複製之後,請按下一步,直到移至摘要並按一下建立為止。

作業 1.2:準備用於自動部署的 Web 應用程式 VM

  1. 從此處下載 / 複製 GitHub 儲存區域:/home/opc 資料夾中的 ( oci-postgressql-colddr)。

  2. 建立命令檔執行檔。

    chmod +x deploy_application_demo.sh
    
  3. deploy_application_demo.sh 命令檔更新為 Web 應用程式和 OCI 資料庫的必要詳細資訊 (兩個區域都有 PostgreSQL)。

    • WEBAPP_HOME部署的根位置 (執行指令碼的位置)。例如,/home/opc
    • WEBAPP_URL指向運算的 URL,API 為 http://webapi.yoururl.eu:8000
    • PRIMARY_REGIONOCI 主要區域。格式為 eu-frankfurt-1
    • STANDBY_REGIONOCI 待命區域。
    • PRIMARY_SECRET_OCID主要區域 (ocid1.vaultsecret.oc1.me-dubai-1.xxxxxx) 中包含 PostgreSQL 密碼的 OCI 保存庫加密密碼 OCID。
    • STANDBY_SECRET_OCID在待命區域 (ocid1.vaultsecret.oc1.me-abudhabi-1.xxxxxx) 中使用 PostgreSQL 密碼的 OCI 保存庫加密密碼 OCID。
    • PG_USER用於載入範例資料的資料庫使用者 (postgresql_sample.sql)。
    • PG_DB用來載入範例資料的資料庫。預設值為 postgres
    • PG_HOST資料庫專用區域項目的 FQDN。

    注意:

    • 請確定已正確更新所有值。
    • 使用預設組態時,其他參數可以保持不變。
  4. 執行 deploy_application_demo.sh 命令檔。

    ./deploy_application_demo.sh
    

    這將會部署前端、後端、設定服務和防火牆。

    部署成功後,會顯示部署完成! 訊息。

在教學課程中,我們將使用此相同的 VM 來執行使用者定義命令檔。確定已將作為 DR 控制節點的 VM 設定為執行命令。如需詳細資訊,請參閱搭配 Oracle Cloud Infrastructure Full Stack Disaster Recovery 使用 run 命令呼叫自訂命令檔

工作 1.3:建立 Web 操控原則

為了保證我們的應用程式永遠指向作用中的區域,可以利用容錯移轉流量管理操控原則。結合 OCI Health Checks 服務的操控原則會透過 HTTP 監督器每 60 秒 (預設 TTL) 驗證應用程式端點。

  1. 前往 OCI 主控台並瀏覽至網路

  2. 按一下交通管理操控原則

    oci-web-steering-policies-nav.png

    oci-web-steering-policies-nav.png 圖解描述

  3. 按一下建立交通管理操控原則

    psql-webapp-dns-create.png

    psql-webapp-dns-create.png 圖解描述

    1. 選取容錯移轉作為原則類型

      1. 輸入操控原則的名稱
      2. 選取操控原則的區間。
      3. 根據您的需求選取 TTL。

      psql-webapp-dxb-dns 建立 -failover.png

      psql-webapp-dxb-dns-create-failover.png 圖解描述

    2. 設定解答集區 1 ,指向區域 1 中的負載平衡器。

      1. 輸入人才庫有意義的名稱。
      2. 選取記錄作為類型
      3. 在區域 1 輸入 Web 應用程式負載平衡器的 IP。

      psql-webapp-dxb-dns- 建立 -pool-1.png

      psql-webapp-dxb-dns-create-pool-1.png 圖解描述

    3. 設定解答集區 2 ,指向區域 2 中的負載平衡器。

      1. 輸入集區的名稱
      2. 選取記錄作為類型
      3. 在區域 2 輸入 Web 應用程式負載平衡器的 IP。

      psql-webapp-dxb-dns- 建立 -pool-2.png

      psql-webapp-dxb-dns-create-pool-2.png 圖解描述

    4. 設定集區優先順序,此內容優先順序會指定給區域 1psql-webapp-dxb-dns- 建立 - 集區 -priority.png

      psql-webapp-dxb-dns-create-pool-priority.png 圖解描述

    5. 按一下新增即可連附 OCI 狀況檢查原則。

      1. 選取要求類型作為 HTTP
      2. 輸入狀況檢查的名稱
      3. 選取要進行狀況檢查的區間。

      psql-webapp-dxb-dns 建立 -healthcheck.png

      psql-webapp-dxb-dns-create-healthcheck.png 圖解描述

    6. 按一下進階選項

      1. 輸入 Web 應用程式的連接埠,在此例中為 80
      2. 輸入 Web 應用程式路徑,在此例中為 /
      3. 選取 GET 作為方法
      4. 選取要求的逾時。

      psql-webapp-dxb-dns- 建立狀況檢查 -details.png

      psql-webapp-dxb-dns-create-healthcheck-details.png 圖解描述

    7. 設定附加的網域

      1. 輸入 webapi 端點的子網域。
      2. 選取包含此區域 (網域) 的區間。
      3. 選取適當的區域。
      4. webapp 端點重複步驟 1 到 3。

      psql-webapp-dxb-dns 建立 -domains.png

      psql-webapp-dxb-dns-create-domains.png 圖解描述

    8. 檢查所有詳細資訊是否正確,然後按一下建立流量管理操控原則。一段時間後,建立作業應顯示為已完成

      psql-webapp-dxb-dns 建立 -complete.png

      psql-webapp-dxb-dns-create-complete.png 圖解描述

    9. 您可以查看操控原則後續建立的總覽。頁面結尾可以看到附加的狀況檢查

      psql-webapp-dxb-dns 建立 -details.png

      psql-webapp-dxb-dns-create-details.png 圖解描述

      1. 按一下已附加狀況檢查
      2. 導覽至狀況檢查歷史記錄
      3. 您可以在此處檢視目前可用的負載平衡器以及過去的可用性。 psql-webapp-dxb- 健康檢查 -history.png

        psql-webapp-dxb-healthcheck-history.png 圖解描述

任務 1.4:為 OCI Full Stack DR 建立 Oracle Cloud Infrastructure Identity and Access Management 原則

若要設定 OCI Full Stack DR 所需的 OCI IAM 原則,請參閱:

作業 1.5:為 OCI Full Stack DR 管理的其他服務建立 OCI IAM 原則

OCI Full Stack DR 必須能夠控制和管理其他關鍵 OCI 服務,例如運算、網路、儲存和其他雜項服務。若要為其他服務設定必要的 OCI IAM 原則,請參閱 Full Stack Disaster Recovery 管理的其他服務原則OCI IAM 原則

工作 2:在兩個區域中建立 DR 保護群組 (DRPG)

如果此應用程式堆疊的保護群組還不存在,請在區域 1 和區域 2 中建立 DR 保護群組。

工作 2.1:在區域 1 中建立保護群組

  1. 前往 OCI 主控台並瀏覽至 DR 保護群組

    1. 確定 OCI 區域相關資訊環境設為區域 1 (杜拜)。
    2. 按一下移轉與災害復原
    3. 按一下 DR 保護群組

    psql-webapp-dxb-drpg-intro.png

    psql-webapp-dxb-drpg-intro.png 圖解描述

  2. 在區域 1 中建立基本 DR 保護群組 (DRPG)。將會在後續的步驟中指定對等、角色及成員。

    1. 選取要建立 DRPG 的區間。
    2. 按一下建立 DR 保護群組以開啟對話方塊。
    3. 輸入 DRPG 的名稱
    4. 選取 OCI Full Stack DR 日誌的 OCI Object Storage 分組
    5. 按一下建立

    psql-webapp-auh-drpg.png

    psql-webapp-dxb-drpg.png 圖解描述

任務 2.2:在區域 2 中建立保護群組

  1. 前往 OCI 主控台,瀏覽至 DR 保護群組

    1. 確定 OCI 區域相關資訊環境設為 Region 2 (Abu Dhabi)。
    2. 按一下移轉與災害復原
    3. 按一下 DR 保護群組

    psql-webapp-dxb-drpg-intro .png

    psql-webapp-dxb-drpg-intro.png 圖解描述

  2. 在區域 2 中建立基本 DR 保護群組 (DRPG)。將會在後續的步驟中指定對等、角色及成員。

    1. 選取要建立 DRPG 的區間。
    2. 按一下建立 DR 保護群組以開啟對話方塊。
    3. 輸入 DRPG 的名稱
    4. 選取 OCI Full Stack DR 日誌的 OCI Object Storage 分組
    5. 按一下建立

    psql-webapp-auh-drpg.png

    psql-webapp-auh-drpg.png 圖解描述

工作 2.3:關聯區域 1 和區域 2 中的保護群組

將每個區域中的 DRPG 關聯為彼此的同儕,並指派主要和待命的同儕角色。主要和待命資料庫的角色會由 OCI Full Stack DR 自動變更,作為任何 DR 作業 /DR 計畫執行的一部分;您無需隨時手動管理角色。

  1. 前往 DR 保護群組詳細資訊頁面。

    1. 確定 OCI 區域相關資訊環境設為區域 1 (杜拜)。
    2. 按一下關聯即可開始處理。

    psql-webapp-dxbauh-drpg.png

    psql-webapp-dxbauh-drpg.png 圖解描述

  2. 如下列影像所示,輸入參數。

    1. 角色:選取主要角色。OCI Full Stack DR 會自動將待命角色指派給 Region 2。
    2. 對等區域:選取建立其他 DRPG 的區域 2 (Abu Dhabi)。
    3. 對等 DR 保護群組:選取已建立的對等 DRPG。
    4. 按一下關聯

    psql-webapp-dxbauh-drpg-associate.png

    psql-webapp-dxbauh-drpg-associate.png 圖解描述

關聯完成後,OCI Full Stack DR 將顯示如下圖所示的內容。

  1. 目前的主要對等 DRPG 是杜拜 (區域 1)。
  2. 目前的待命對等 DRPG 是阿布達比 (區域 2)。

drpg-assoc-completed-dxb.png

psql-webapp-dxbauh-drpg-primary.png 圖解描述

每當相關資訊環境 / 視觀表是從全域觀點顯示所有 DR 保護群組時,都可以找到相同的資訊,如下圖所示。

  1. 目前的主要對等 DRPG 是杜拜 (區域 1)。
  2. 目前的待命對等 DRPG 是阿布達比 (區域 2)。

drpg-assoc-completed-dxb.png

psql-webapp-dxbauh-drpg-standby.png 圖解描述

工作 3:新增成員至 DR 保護群組

在這項任務中,我們會將下列 OCI 資源新增至 Region 1 的主要 DRPG。

  1. 代管 Web 應用程式的運算執行處理將會新增為移動中的 VM。
  2. 包含 Web 應用程式運算節點開機磁碟區的磁碟區群組。
  3. 主要負載平衡器。

任務 3.1:將成員新增至區域 1 中的 DRPG

  1. 在區域 1 中選取 DRPG,如下圖所示。

    1. 確定 OCI 區域相關資訊環境為區域 1 (杜拜)。
    2. 選取區域 1 中的 DRPG。
    3. 選取成員
    4. 按一下新增成員以開始程序。

    psql-webapp-dxb-drpg-add.png

    psql-webapp-dxb-drpg-add.png 圖解描述

  2. 新增 Web 應用程式 VM 的運算執行處理。

    1. 確認有關 DR 計畫的警告。
    2. 輸入運算作為成員資源類型
    3. 選取代管 Web 應用程式的運算執行處理。
    4. 選取移動執行處理
    5. 按一下新增 VNIC 對應,選取進行復原時要指定給區域 2 之 VNIC 的 VCN 和子網路。
    6. 按一下顯示進階選項
    7. 設定值中,選取保留容錯域
    8. 確認詳細資訊,然後按一下新增

    drpg-add-compute-dxb.png

    psql-webapp-dxb-drpg-add-compute.png 圖解描述

    drpg-add-compute-vnic-dxb.png

    psql-webapp-dxb-drpg-add-compute-vnic.png 圖解描述

    drpg-add-compute-vnic-dxb.png

    psql-webapp-dxb-drpg-add-compute-vnic-details.png 圖解描述

    psql-webapp-dxb-drpg-add-compute-detail.png

    psql-webapp-dxb-drpg-add-compute-detail.png 圖解描述

  3. 新增包含 Web 應用程式 VM 之開機磁碟區的區塊磁碟區群組。

    1. 確認有關 DR 計畫的警告。
    2. 選取磁碟區群組作為資源類型成員。
    3. 請確定已選取包含磁碟區群組的正確區間,然後選取磁碟區群組。
    4. 確認詳細資訊,然後按一下新增

    psql-webapp-dxb-drpg-add-volgrp.png

    psql-webapp-dxb-drpg-add-volgrp.png 圖解描述

  4. 在此範例中,我們將 OCI Load Balancer 新增為 Region 1 中 DRPG 的成員。

    1. 確認有關 DR 計畫的警告。
    2. 選取負載平衡器作為資源類型成員。
    3. 確定已為負載平衡器選取正確的區間,並且選取要新增的負載平衡器。
    4. 選取要在區域 2 中使用的目的地負載平衡器
    5. 選取來源後端集,這是 Web 應用程式 VM 所使用的後端集。OCI 負載平衡器可以在多個應用程式之間共用,而且可能已設定多個後端集。在 DR 切換期間,只有在此處指定的後端集會將其組態移至待命區域。
    6. 選取目的地後端集,這是區域 2 中建立的空白後端集。
    7. 確認詳細資訊,然後按一下新增

    psql-webapp-dxb-drpg-add-lb.png

    psql-webapp-dxb-drpg-add-lb.png 圖解描述

    psql-webapp-dxb-drpg-add-lb-details.png

    psql-webapp-dxb-drpg-add-lb-details.png 圖解描述

  5. 請確定「成員」區段包含負載平衡器、磁碟區群組以及運算執行處理。

    psql-webapp-dxb-drpg-members.png

    psql-webapp-dxb-drpg-members.png 圖解描述

任務 3.2:將成員新增至區域 2 中的 DRPG

  1. 在「區域 2」中選取 DRPG,如下圖所示。

    1. 確定 OCI 區域相關資訊環境是 Region 2 (Abu Dhabi)。
    2. 選取「區域 2」中的 DRPG。
    3. 選取成員
    4. 按一下新增成員以開始程序。

    psql-webapp-auh-drpg-add.png

    psql-webapp-auh-drpg-add.png 圖解描述

  2. 在此範例中,我們將在 Region 2 中新增 OCI Load Balancer 作為 DRPG 的成員。

    1. 確認有關 DR 計畫的警告。
    2. 選取負載平衡器作為資源類型成員。
    3. 請確定為負載平衡器選取正確的區間,然後選取要新增的負載平衡器。
    4. 選取要在區域 1 中使用的目的地負載平衡器
    5. 選取來源後端集,這是 Web 應用程式 VM 所使用的後端集。OCI 負載平衡器可以在多個應用程式之間共用,而且可能已設定多個後端集。在 DR 切換期間,只有在此處指定的後端集會將其組態移至待命區域。
    6. 選取目的地後端集,此後端集會在區域 2 中建立。
    7. 確認詳細資訊,然後按一下新增

    psql-webapp-aux-drpg-add-lb.png

    psql-webapp-aux-drpg-add-lb.png 圖解描述

    psql-webapp-dxb-drpg-add-lb-details.png

    psql-webapp-dxb-drpg-add-lb-details.png 圖解描述

  3. 請檢查成員區段是否包含負載平衡器。

    psql-webapp-aux-drpg-members.png

    psql-webapp-aux-drpg-members.png 圖解描述

作業 4:在區域 2 中建立基本 DR 計畫

在這項任務中,我們將在 Region 2 (Abu Dhabi) 中建立與待命 DR 保護群組相關的初始切換和容錯移轉計畫。

這些計畫的目的是將工作負載從主要區域 (區域 1) 順暢地轉換至待命區域 (區域 2)。在任何 DR 作業中,兩個區域中的 DR 保護群組角色都會自動回復:區域 1 中的保護群組會成為待命資料庫,而區域 2 中的保護群組則是容錯移轉或切換之後的主要角色。

OCI Full Stack DR 會使用衍生自先前任務期間新增之成員資源的內建步驟,預先植入這些計畫。這些計畫稍後將自訂為在復原過程中使用 PostgreSQL 管理 OCI 資料庫的特定作業。

切換計畫一律會在保留待命角色的保護群組內建立。由於第 2 區 (阿布達比) 目前是待命保護群組,因此我們將開始建立計畫。

作業 4.1:建立 DR 計畫

  1. 選取區域 2 (阿布達比) 中的 DRPG 來建立基本計劃

    1. 確定 OCI 區域相關資訊環境是 Region 2 (Abu Dhabi)。
    2. 選擇區域 2 的待命 DRPG。
    3. 選取方案
    4. 按一下建立計畫以開始處理。

    psql-webapp-auh-drpg-create.png

    psql-webapp-auh-drpg-create.png 圖解描述

  2. 建立切換計畫。

    1. 輸入簡單但有意義的切換計畫名稱。這個名字應該盡量簡短,但很容易理解,以幫助減少危機期間的混淆與人為錯誤。
    2. 選取計畫類型作為切換 (計畫)
    3. 按一下建立

    psql-webapp-auh-drpg- 建立 -switchover.png

    psql-webapp-auh-drpg-create-switchover.png 圖解描述

  3. 建立容錯移轉計畫。依照相同的程序建立基本容錯移轉計畫,如下圖所示。

    1. 輸入容錯移轉計畫的名稱
    2. 選取計畫類型作為容錯移轉 (非計畫性)
    3. 按一下建立

    psql-webapp-auh-drpg- 建立 -failover.png

    psql-webapp-auh-drpg-create-failover.png 圖解描述

區域 2 中的待命 DR 保護群組現在應該有兩個 DR 計畫,如下圖所示。這些將處理將工作負載從 Region 1 轉換成 Region 2。您將在「區域 1」建立類似的計畫,以便在稍後的工作中將工作負載從「區域 2」轉換回「區域 1」。

psql-webapp-auh-drpg-plans.png

psql-webapp-auh-drpg-plans.png 圖解描述

作業 5:自訂區域 2 中的切換計畫

在任務 4 中建立的基本 DR 計畫包含預先植入的復原任務步驟,這些步驟內建於 OCI Full Stack DR 中,且不包含任何內容來管理 OCI Database with PostgreSQL 特定的復原任務。本工作說明如何新增自訂、使用者定義的 DR 計畫群組和步驟,以管理切換期間需要完成的任務:

作業 5.1:選取切換計畫

瀏覽至「任務 4」中建立的切換計畫。在任務 5.3 中,您將新增群組。

psql-webapp-auh-drpg-create- 切換 -add.png

psql-webapp-auh-drpg-create-switchover-add.png 圖解描述

作業 5.2:( 選擇性 ) 啟用終止構件的 DR 計畫群組

切換計畫中預設會停用三個計畫群組,如下圖所示。這些計畫群組會停用以在測試期間提供重新保證,確保不會刪除任何使用者自建物件,而且在測試階段發生問題時,可行的備份複本會維持不變。

不過,這三個計畫群組是設計來終止 (刪除) 未來 DR 作業不再需要的使用者自建物件。若未啟用這些計畫群組,未使用的使用者自建物件將會在您切換兩個區域時持續累積,這可能會導致混淆哪些運算執行處理和磁碟區群組應該處於作用中狀態。

您也可以選擇啟用這些計畫群組,避免在進入生產環境之前,手動清除不必要的使用者自建物件。這個主動步驟可以簡化轉換到生產的過程,並保持一個更乾淨、更易於管理的環境。

繁體中文 (香港)

psql-webapp-auh-drpg-create-switchover-details-1.png 圖解描述

  1. 若要啟用計畫群組,請從計畫群組名稱右側的內容功能表中選取啟用所有步驟

    psql-webapp-auh-drpg-create- 切換 -enable.png

    psql-webapp-auh-drpg-create-switchover-enable.png 圖解描述

    計畫自訂 -so-auh-enable-terminate-fs-enable.png

    psql-webapp-auh-drpg-create-switchover-enable-check.png 圖解描述

  2. 確認所有計畫群組都已啟用。

    psql-webapp-auh-drpg-create-switchover- 啟用 -complete.png

    psql-webapp-auh-drpg-create-switchover-enable-complete.png 圖解描述

作業 5.3:建立執行自訂命令檔的計畫群組

首先,新增自訂的使用者定義 DR 計畫群組,以使用 PostgreSQL 備份 / 回復 DR 處理,根據 OCI 資料庫的特定需求量身打造 DR 工作流程。

這些計畫群組將會從區域 1 中的 Web 應用程式 VM 呼叫必要的命令檔。這樣可確保具有 PostgreSQL 的 OCI 資料庫在應用程式 VM 上線之前完全回復並運作。

應將下列自訂計畫新增至預先填入的切換計畫:PostgreSQL - 切換PostgreSQL - 更新 DNSPostgreSQL - 終止

  1. 新增自訂計畫群組,以使用 PostgreSQL 執行 OCI 資料庫切換。這項作業需要備份「主要區域」中的資料庫、將資料庫組態複製到「待命」區域、將資料庫備份複製到「待命」區域,最後再回復「待命」區域中的資料庫。

    1. 按一下新增群組
    2. 輸入簡單但描述性的計畫群組名稱。在此範例,我們將使用 PostgreSQL - Switchover
    3. 選取計畫群組將插入 DR 計畫的位置。在此範例中,選取之後新增,將使用者定義的計畫群組插入內建的運算執行處理 - 啟動計畫群組之後。
    4. 按一下新增步驟以開啟對話方塊,我們會在其中指定執行 PostgreSQL 切換的命令檔。

    psql-webapp-auh-drpg-create-switchover-add-psql-so.png

    psql-webapp-auh-drpg-create-switchover-add-psql-so.png 圖解描述

    新增計畫群組步驟中,輸入下列資訊。

    1. 輸入步驟名稱。在此範例,我們將使用 PostgreSQL - Switchover。與計畫群組名稱相同。
    2. 選取包含此步驟將執行之執行處理的區域。在此範例中,命令檔將在 Region 1 的 Web 應用程式 VM 上執行。
    3. 選取執行本機命令檔
    4. 選取目標執行處理,此為區域 1 中的 Web 應用程式 VM。
    5. 指令檔參數中,以參數輸入指令檔的完整路徑。例如:/home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_exec_cold_dr.py -c amo-psql-dbs.json -o switchover
    6. 以使用者身分執行中,輸入 opc
    7. 按一下新增步驟

    psql-webapp-auh-drpg-create-switchover-add-psql-so-details.png

    psql-webapp-auh-drpg-create-switchover-add-psql-so-details.png 圖解描述

    按一下新增

    psql-webapp-auh-drpg-create-switchover-add-psql-details.png

    psql-webapp-auh-drpg-create-switchover-add-psql-details.png 圖解描述

  2. 新增自訂計畫群組以更新 PostgreSQL 資料庫 DNS。

    1. 按一下新增群組
    2. 輸入計畫群組名稱。在此範例中,我們將使用 PostgreSQL - Update DNS
    3. 選取計畫群組將插入 DR 計畫的位置。在此範例中,選取之後新增,將使用者定義的計畫群組插入內建的計畫群組 PostgreSQL - 切換之後。
    4. 按一下新增步驟,即可開啟對話方塊,供我們指定更新 PostgreSQL 資料庫 DNS 的命令檔。

    psql-webapp-auh-drpg-create-switchover-add-psql-dns.png

    psql-webapp-auh-drpg-create-switchover-add-psql-dns.png 圖解描述

    新增計畫群組步驟中,輸入下列資訊。

    1. 輸入步驟名稱。在此範例中,我們將使用 PostgreSQL - Update DNS。與計畫群組名稱相同。
    2. 選取包含此步驟將執行之執行處理的區域。在此範例中,命令檔將在 Region 1 的 Web 應用程式 VM 上執行。
    3. 選取執行本機命令檔
    4. 選取目標執行處理,這是區域 1 中的 Web 應用程式 VM。
    5. 指令檔參數中,以參數輸入指令檔的完整路徑。例如:/home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_update_dns.py -c amo-psql-dbs.json -d amo-psql-dbs.amo.vcn01.internal -o switchover
    6. 以使用者身分執行中,輸入 opc
    7. 按一下新增步驟

    psql-webapp-auh-drpg-create-switchover-add-psql-dns-details.png

    psql-webapp-auh-drpg-create-switchover-add-psql-dns-details.png 圖解描述

    按一下新增

    psql-webapp-auh-drpg-create-switchover-add-dns-details.png

    psql-webapp-auh-drpg-create-switchover-add-dns-details.png 圖解描述

  3. 新增自訂計畫群組以終止 PostgreSQL 來源資料庫。

    1. 按一下新增群組
    2. 輸入計畫群組名稱。在此範例,我們將使用 PostgreSQL - Terminate
    3. 選取計畫群組將插入 DR 計畫的位置。在此範例中,選取之後新增,在內建的計畫群組磁碟區群組 - 從 DR 保護群組移除之後插入使用者定義的計畫群組。
    4. 按一下新增步驟以開啟對話方塊,我們會在其中指定終止 PostgreSQL 資料庫來源的命令檔。

    psql-webapp-auh-drpg-create-switchover-add-psql-terminate.png

    psql-webapp-auh-drpg-create-switchover-add-psql-terminate.png 圖解描述

    新增計畫群組步驟中,輸入下列資訊。

    1. 輸入步驟名稱。在此範例,我們將使用 PostgreSQL - Terminate。與計畫群組名稱相同。
    2. 選取包含此步驟將執行之執行處理的區域。在此範例中,命令檔將在 Region 1 的 Web 應用程式 VM 上執行。
    3. 選取執行本機命令檔
    4. 選取目標執行處理,這是區域 1 中的 Web 應用程式 VM。
    5. 指令檔參數中,以參數輸入指令檔的完整路徑。例如:/home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_exec_cold_dr.py -c amo-psql-dbs.json -o terminate
    6. 以使用者身分執行中,輸入 opc
    7. 按一下新增步驟

    psql-webapp-auh-drpg-create-switchover-add-psql-terminate-details.png

    psql-webapp-auh-drpg-create-switchover-add-psql-terminate-details.png 圖解描述

    按一下新增

    計畫自訂 -so-auh-grp-terminate-db 來源 -add.png

    psql-webapp-auh-drpg-create-switchover-add-terminate-details.png 圖解描述

  4. 確認建立的自訂計畫群組顯示已啟用狀態。 繁體中文 (台灣)

    psql-webapp-auh-drpg-create-switchover-details-2.png 圖解描述

已順利完成切換計畫的自訂。

工作 6:自訂區域 2 中的容錯移轉計畫

在這項任務中,新增自訂、使用者定義的 DR 計畫群組和步驟,以管理容錯移轉期間必須完成的任務。

工作 6.1:選取容錯移轉計畫

瀏覽至在「工作 4」中建立的容錯移轉計畫。

psql-webapp-auh-drpg- 建立 - 容錯移轉 - 明細 -1.png

psql-webapp-auh-drpg-create-failover-details-1.png 圖解描述

作業 6.2:建立計畫群組以在區域 2 中執行自訂命令檔

首先,新增自訂的使用者定義 DR 計畫群組,以使用 PostgreSQL Backup/Restore DR 處理作業根據 OCI 資料庫的特定需求量身打造 DR 工作流程。

這些計畫群組將會從 Web 應用程式 VM 呼叫必要的命令檔。

應將下列自訂計畫新增至預先填入的容錯移轉計畫:PostgreSQL - 容錯移轉PostgreSQL - 更新 DNS

  1. 新增自訂計畫群組以執行 PostgreSQL 容錯移轉命令檔。

    1. 按一下新增群組
    2. 輸入計畫群組名稱。在此範例,我們將使用 PostgreSQL - Failover
    3. 選取計畫群組將插入 DR 計畫的位置。在此範例中,選取之後新增,將使用者定義的計畫群組插入內建的運算執行處理 - 啟動計畫群組之後。
    4. 按一下新增步驟以開啟對話方塊,我們會在其中指定容錯移轉 PostgreSQL 資料庫的命令檔。

    psql-webapp-auh-drpg-create-failover-add-dns.png

    psql-webapp-auh-drpg-create-failover-add-psql.png 圖解描述

    新增計畫群組步驟中,輸入下列資訊。

    1. 輸入步驟名稱。在此範例,我們將使用 PostgreSQL - Failover。與計畫群組名稱相同。
    2. 選取包含此步驟將執行之執行處理的區域。在此範例中,命令檔將在 Region 1 的 Web 應用程式 VM 上執行。
    3. 選取執行本機命令檔
    4. 選取目標執行處理,這是區域 1 中的 Web 應用程式 VM。
    5. 指令檔參數中,以參數輸入指令檔的完整路徑。例如:/home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_exec_cold_dr.py -c amo-psql-dbs.json -o failover
    6. 以使用者身分執行中,輸入 opc
    7. 按一下新增步驟

    psql-webapp-auh-drpg-create-failover-add-psql-fo-details.png

    psql-webapp-auh-drpg-create-failover-add-psql-fo-details.png 圖解描述

    請按一下新增

    psql-webapp-auh-drpg-create-failover-add-psql-details.png

    psql-webapp-auh-drpg-create-failover-add-psql-details.png 圖解描述

  2. 新增自訂計畫群組以更新 PostgreSQL 資料庫 DNS。

    1. 按一下新增群組
    2. 輸入計畫群組名稱。在此範例中,我們將使用 PostgreSQL - Update DNS
    3. 選取計畫群組將插入 DR 計畫的位置。在此範例中,選取之後新增,在內建的計畫群組 PostgreSQL - 容錯移轉之後插入使用者定義的計畫群組。
    4. 按一下新增步驟,即可開啟對話方塊,供我們指定更新 PostgreSQL 資料庫 DNS 的命令檔。

    psql-webapp-auh-drpg-create-failover-add-dns.png

    psql-webapp-auh-drpg-create-failover-add-dns.png 圖解描述

    新增計畫群組步驟中,輸入下列資訊。

    1. 輸入步驟名稱。在此範例中,我們將使用 PostgreSQL - Update DNS。與計畫群組名稱相同。
    2. 選取包含此步驟將執行之執行處理的區域。在此範例中,命令檔將在 Region 1 的 Web 應用程式 VM 上執行。
    3. 選取執行本機命令檔
    4. 選取目標執行處理,這是區域 1 中的 Web 應用程式 VM。
    5. 指令檔參數中,以參數輸入指令檔的完整路徑。例如:/home/opc/full-stack-dr-scripts-main/oci-postgresql/backup-restore/psql_update_dns.py -c amo-psql-dbs.json -d xxx-psql-dbs.xxx.vcn01.internal -o failover
    6. 以使用者身分執行中,輸入 opc
    7. 按一下新增步驟

    psql-webapp-auh-drpg-create-failover-add-dns-fo-details.png

    psql-webapp-auh-drpg-create-failover-add-dns-fo-details.png 圖解描述

    按一下新增

    psql-webapp-auh-drpg-create-failover-add-dns-details.png

    psql-webapp-auh-drpg-create-failover-add-dns-details.png 圖解描述

  3. 確認建立的自訂計畫群組顯示已啟用狀態。 psql-webapp-auh-drpg- 建立 - 容錯移轉 - 明細 -2.png

    psql-webapp-auh-drpg-create-failover-details-2.png 圖解描述

已順利完成自訂容錯移轉計畫。

作業 7:在區域 2 中執行前置檢查

已順利在待命區域 2 中建立切換和容錯移轉 DR 計畫。這些計畫可讓 OCI Full Stack DR 將工作負載從 Region 1 轉換成 Region 2。後續工作包括執行切換和容錯移轉計畫的前置檢查,以確保整備度和驗證轉換處理作業。

作業 7.1:切換計畫的開始前置檢查

執行切換 DR 計畫的前置檢查。

  1. 請確定區域相關資訊環境設為待命區域 2。

  2. 請確定在「區域 2」中選取正確的 DR 保護群組,這必須是待命角色。

  3. 按一下切換計畫名稱。

  4. 按一下動作

  5. 按一下執行前置檢查

    psql-webapp-auh-drpg-create- 切換 -precheck.png

    psql-webapp-auh-drpg-create-switchover-precheck.png 圖解描述

  6. 按一下執行前置檢查

    psql-webapp-auh-drpg-create-switchover-precheck-run.png

    psql-webapp-auh-drpg-create-switchover-precheck-run.png 圖解描述

  7. 檢查是否順利完成所有前置檢查。 繁體中文 (台灣)

    psql-webapp-auh-drpg-create-switchover-precheck-details-2.png 圖解描述

作業 7.2:開始容錯移轉計畫的前置檢查

執行容錯移轉 DR 計畫的前置檢查。

  1. 確定區域相關資訊環境設為待命區域 2。

  2. 請確定在「區域 2」中選取正確的 DR 保護群組,這必須是待命角色。

  3. 按一下容錯移轉計畫名稱。

  4. 按一下動作

  5. 按一下執行前置檢查

    psql-webapp-auh-drpg-create-failover-precheck.png

    psql-webapp-auh-drpg-create-failover-precheck.png 圖解描述

  6. 按一下執行前置檢查

    psql-webapp-auh-drpg-create-failover-precheck-run.png

    psql-webapp-auh-drpg-create-failover-precheck-run.png 圖解描述

  7. 檢查是否順利完成所有前置檢查。

    繁體中文 (台灣)

    psql-webapp-auh-drpg-create-failover-precheck-details-2.png 圖解描述

作業 8:在區域 2 中執行切換計畫

執行切換 DR 計畫,開始使用 OCI 資料庫將 Web 應用程式從區域 1 轉換為區域 2 的 PostgreSQL。

  1. 請確定區域相關資訊環境設為待命區域 2。

  2. 請確定在「區域 2」中選取正確的 DR 保護群組,這必須是待命角色。

  3. 按一下切換計畫名稱。

  4. 按一下動作

  5. 按一下執行計畫 (Execute plan)

    psql-webapp-auh-drpg- 切換 -execute.png

    psql-webapp-auh-drpg-switchover-execute.png 圖解描述

此作業會執行 「區域 2」中的切換計畫。

  1. 取消選取啟用前置檢查,因為它們已經在「工作 7」中執行。
  2. 按一下執行計畫 (Execute plan)

psql-webapp-auh-drpg-create-switchover- 執行 -run.png

psql-webapp-auh-drpg-create-switchover-execute-run.png 圖解描述

監控切換計畫,直到完整的工作負載完全從區域 1 轉換成區域 2 為止。

切換計畫的執行已順利在大約 39 分鐘內完成。

繁體中文 (香港)

psql-webapp-auh-drpg-create-switchover-execute-details-1.png 圖解描述

psql-webapp-auh-drpg- 建立 - 切換 - 執行 - 明細 -2.png

psql-webapp-auh-drpg-create-switchover-execute-details-2.png 圖解描述

切換之後:在「區域 2」中,Web 應用程式將使用與之前相同的 URL 再次存取。

webapp-frontend-preview.png

webapp-frontend-preview.png 圖解描述

作業 9:在區域 1 中建立並自訂 DR 計畫

在 OCI Full Stack DR 成功完成切換之後,第 2 區現在擔任主要區域的角色,而第 1 區則轉變為備用區域。

依照作業 1 到 8 中詳述的相同方法,繼續在 Region 1 的 DR 保護群組內建立和自訂切換和容錯移轉計畫,現在可作為待命對等區域。

psql-webapp-dxb-drpg-plan-create.png

psql-webapp-dxb-drpg-plan-create.png 圖解描述

注意:下列螢幕擷取畫面中不會顯示 PostgreSQL - Terminate

繁體中文 (香港)

psql-webapp-dxb-drpg-create-switchover-details-1.png 圖解描述

psql-webapp-dxb-drpg- 建立 - 容錯移轉 - 明細 -1.png

psql-webapp-dxb-drpg-create-failover-details-1.png 圖解描述

作業 10:在區域 1 中執行容錯移轉計畫

執行容錯移轉計畫的目的是為了進行測試,我們會在其中模擬災害案例,以驗證災害復原策略的有效性。在此模擬中,會透過刻意停止 Region 2 中的虛擬機器 (VM) 來模擬災難。

為了從此模擬失敗中復原,我們會執行容錯移轉 DR 計畫,此計畫會起始容錯移轉程序,其中 Web 應用程式 VM 會啟動區域 1 中還原具有 PostgreSQL 之 OCI 資料庫的最新可用備份。

注意:容錯移轉 DR 計畫只能在災難性非計畫性事件期間使用。在容錯移轉處理作業期間可能會遺失資料。

  1. 確定區域相關資訊環境設為待命區域 1。
  2. 確定在「區域 1」中選取正確的 DR 保護群組,它必須是待命角色。
  3. 按一下容錯移轉計畫名稱。
  4. 按一下動作
  5. 按一下執行計畫 (Execute plan)

psql-webapp-dxb-drpg- 容錯移轉 -execute.png

psql-webapp-dxb-drpg-failover-execute.png 圖解描述

此作業執行 「區域 1」中的 「容錯移轉」計畫。

  1. 維持未勾選啟用前置檢查,因為這是實際的容錯移轉練習。
  2. 按一下執行計畫以開始。

psql-webapp-dxb-drpg-failover- 執行 -run.png

psql-webapp-dxb-drpg-failover-execute-run.png 圖解描述

監控容錯移轉計畫,直到完整的工作負載完全從區域 2 轉換成區域 1 為止。

容錯移轉計畫的執行已順利在大約 10 分鐘內完成。

psql-webapp-dxb-drpg- 建立 - 容錯移轉 - 執行 - 明細 -1.png

psql-webapp-dxb-drpg-create-failover-execute-details-1.png 圖解描述

psql-webapp-dxb-drpg- 建立 - 容錯移轉 - 執行 - 明細 -2.png

psql-webapp-dxb-drpg-create-failover-execute-details-2.png 圖解描述

確認

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center