使用中央暫存位置導入 rsync

此實作使用 rsync 技術,並根據中央暫存位置依循模型。在此模型中,有作為協調器的堡壘主機節點。它會連線至每個需要複製的主機,並將內容複製到通用暫存位置。

以中央暫存位置實行 rsync 的優點如下:

  • 它是適用於任何中間層的一般用途解決方案,因此,如果您有多個系統,則所有系統都可以使用相同的方法。
  • 它不依賴基礎儲存類型;適用於複製位於區塊磁碟區、NFS 等區塊磁碟區中的檔案使用者自建物件。
  • 儲存體可以維持掛載於次要節點。因此,在每次切換或容錯移轉作業中,不需要額外步驟即可將儲存體附加或掛載至次要儲存體。
  • 與對等實作相比,維護較為簡單,因為有一個執行指令碼的中央節點。

以中央暫存位置實行 rsync 的考量如下:

  • 使用者需負責為每個環境建立自訂指令碼,並定期執行。
  • 使用者有責任實施反向複製方向的方法。
  • 此模型需要中央暫存位置的其他主機和儲存。

與對等模型類似,rsync 指令碼可以使用提取或推送模型。在「提取」模型中,命令檔會將遠端節點的檔案複製到本機節點。在「推送」模型中,命令檔會將檔案從本機節點複製到遠端節點。Oracle 建議使用提取模型從主要主機擷取內容,因為它會從複本的負荷卸載主要節點。

設定 rsync 與中央暫存的複製

以中央暫存位置實行 rsync 時需要下列項目:

  • 與所有主機 (主要和次要) 具有 SSH 連線的堡壘主機。
  • 堡壘主機中的暫存資料夾,空間足以儲存複寫的中間層檔案系統內容。
  • 使用 rsync 將中間層檔案人工因素從此暫存資料夾複製至此暫存資料夾的指令碼。rsync 命令檔可以略過複本中的特定資料夾 (例如鎖定檔案、日誌、暫存檔案等等)。
  • 管理網站特定資訊的一種方式,不論是從複本中排除該資訊,或是在複本後以適當的資訊加以更新。
  • 將這些命令檔排定為定期執行。
  • 在切換或容錯移轉後變更複本方向的機制。此機制可以是識別網站角色的動態檢查,或是切換或容錯移轉之後手動變更 (例如停用和啟用適當的命令檔)。
本文提供此模型的兩個不同導入範例:
  • 範例 1:使用 Oracle Fusion Middleware Disaster Recovery Guide 命令檔
  • 範例 2:使用 WLS-HYDR 架構
範例 1:使用 Oracle Fusion Middleware Disaster Recovery Guide 命令檔

附註:

此範例適用於任何中間層系統。作為參照,它會使用 Oracle Fusion Middleware Disaster Recovery Guide 提供的命令檔來執行 Oracle WebLogic DR 系統的中間層複本:rsync_for_WLS.shrsync_copy_and_validate.sh。但這些指令碼一般適用,並提供足夠的彈性來同步 OCI 中的中間層檔案系統人工因素。

Oracle Fusion Middleware Disaster Recovery Guide 提供 rsync 命令檔,以在中間層系統中執行遠端複本。這些命令檔適用於任何 rsync 模型。此特定範例顯示如何將它們用於中央暫存模型。此實行使用兩個步驟的提取作業:

  • 堡壘主機會從所有主要主機提取內容,並將其儲存在中央暫存中。
  • 然後,所有次要節點都會執行提取作業,從中央暫存收集內容。

To set up the mid-tier replication with these scripts, see Replicating the Primary File Systems to the Secondary Site in the Oracle Fusion Middleware Disaster Recovery Guide, and the Rsync Replication Approach section and Using a Staging Location steps in particular.



複本 -rsync-scripts-oracle.zip

範例 2:使用 WLS-HYDR 架構

附註:

此範例適用於 Oracle WebLogic Server 系統。它使用 WLS-HYDR 架構的複製模組,但適用於任何 Oracle WebLogic Server DR 環境,無論是否使用 WLS-HYDR 架構建立。

在此模型中,中央主機節點可作為總協調器,執行提取和推送作業。它會連線至每個需要複製的主機,並將內容複製到通用暫存位置。此節點也會協調從暫存位置到目的地主機的複本。這個方法會從複本的負荷偏移出個別節點。

WLS-HYDR 架構在 DR 設定期間會使用此方法進行初始複製。然後,您可以重複使用架構的複製模組,以重複提取並定期推送。請參閱本手冊中的「瀏覽更多內容」,以取得 WLS-HYDR 架構與其他資源的連結。

堡壘主機節點會以兩個步驟執行複本:

  • 提取作業,此作業會連線至主要主機,並將檔案系統內容複製到堡壘主機中的暫存資料夾。
  • 推送作業,它會將堡壘主機暫存資料夾的內容複製到所有次要主機。

中央節點會執行所有作業,因此在該節點上集中排程、日誌、維護等作業。當系統有多個節點時,與對等模型或上一個範例相比,這會更有效率。



複製 -wls-hydr-framework-oracle.zip

如果您使用 WLS-HYDR 架構來建立次要系統,則堡壘主機已準備好執行複本。否則,您就可以在此時進行設定。請依照下列步驟設定複本:

  1. 準備堡壘主機。

    如果您使用 WLS-HYDR 架構來建立次要系統,則堡壘主機已準備好執行複本。如果沒有,請檢查 WLS-HYDR 架構 GitHub 儲存區域中的 README 以準備堡壘主機。

  2. 複查 WLS-HYDR 配置檔。
    請確定 WLS-HYDR 組態檔 (replication.propertiesoci.envprem.env) 包含您系統的正確資訊。
  3. 執行 WLS-HYDR 複製模組。
    您可以使用架構的複製模組來同步所有項目 (Oracle WebLogic Server 網域和產品),或者您可以獨立同步這些項目。在所有情況下,完整同步包含兩個作業:拉引式作業、從主要擷取內容,以及推送作業,以將內容複製到次要作業。

    附註:

    一律在 PUSH 之前執行 PULL 作業。否則,您將不會推送最新版本的內容。
    1. 若要同步所有內容,請執行下列步驟:
      • 將主要主機的所有內容提取至堡壘主機的暫存:
        WLS-HYDR_BASE/lib/DataReplication.py pull
      • 將堡壘主機暫存的所有內容推送至次要主機:
        WLS-HYDR_BASE/lib/DataReplication.py push
    2. 若要僅同步產品人工因素,請執行下列步驟:
      • 將產品從主要主機提取至堡壘主機的暫存:
        WLS-HYDR_BASE/lib/DataReplication.py pull -d products
      • 將堡壘主機暫存的產品推送至次要主機:
        WLS-HYDR_BASE/lib/DataReplication.py push -d products
    3. 僅同步組態 (WebLogic 網域)
      • 若要從主要主機擷取組態至堡壘主機的暫存,請執行此提取作業:
        WLS-HYDR_BASE/lib/DataReplication.py pull -d private_config
      • 若要將組態從堡壘主機的暫存複製到次要主機,請執行此推送作業:
        WLS-HYDR_BASE/lib/DataReplication.py push -d private_config
    4. 如果有共用組態資料夾 ( OCI 檔案儲存檔案系統中的共用 Oracle WebLogic 網域):
      • 若要從主要主機擷取共用組態至堡壘主機的暫存,請執行此提取作業:
        WLS-HYDR_BASE/lib/DataReplication.py pull -d shared_config
      • 若要將共用組態從堡壘主機的暫存複製到次要主機,請執行此推送作業:
        WLS-HYDR_BASE/lib/DataReplication.py push -d shared_config
  4. 準備取代資料庫連線字串。
    複製 WebLogic 組態的一般 WLS-HYDR 提取和推送作業會略過複本中的 tnsnames.ora 檔案,因此您不需要在每個後續複製中更新 tnsnames.ora

    不過,此方法與資料庫是 Autonomous Database 不同。若要連線至自治式資料庫,TNS 管理資料夾也包含金鑰存放區和信任存放區檔案,與主要資料庫和待命資料庫不同。

    下表摘要說明如何管理每個案例中的資料庫連線資訊:
    資料庫類型 取代指令檔與下載步驟 使用情況
    Oracle Base Database Service 或 Oracle Exadata Database Service 管理 tnsnames.ora 的命令檔包含在 WLS-HYDR 架構複製模組中。

    請確定 replication.properties 檔案中的 JDBC 區段包含正確的資料。

    此作業會在堡壘主機中執行,並執行 tnsnames.ora 檔案的提取、更新及推送。若要執行完整作業:WLS-HYDR/lib/DataReplication.py tnsnames

    除非您對 tnsnames.ora 執行變更 (例如,新增別名),否則不需要執行。

    自治式資料庫

    fmwadb_switch_db_conn.sh

    前往 GitHub https://github.com/oracle-samples/maa 中的 Oracle MAA 儲存區域

    下載 app_dr_common 目錄中的所有命令檔。

    下載 fmw-wls-with-adb-dr 目錄中的所有命令檔。

    複製到所有中間層主機。指令碼會相互呼叫。將兩個目錄的所有命令檔都放在同一個資料夾中。

    此命令檔必須在所有待命中間層主機上執行。在啟動待命資料庫中的 WebLogic 伺服器進行驗證、切換或容錯移轉作業之前,必須先執行

    它會以指定為輸入的 TNS 管理資料夾取代 WebLogic 所使用的 TNS 管理資料夾。它也會更新資料來源中的公事包密碼特性。

    執行命令檔的語法:
    fmwadb_switch_db_conn.sh WALLET_DIR WALLET_PASSWORD
    其中 WALLET_DIR 是包含要連線至本機資料庫之 tnsnames.ora、金鑰存放區及信任存放區檔案的資料夾。確定複本中未覆寫 WALLET_DIR 資料夾。

使用中央暫存驗證 rsync 的複寫

在切換或容錯移轉作業中,複製的資訊必須在待命網站中使用,才能啟動處理作業。當您驗證次要系統 (透過以快照模式開啟待命資料庫) 時,也必須執行此動作。

此實作中,次要網站一律提供儲存體,您不需要連附或掛載任何磁碟區。您可能需要的唯一動作是確保其包含最新版本的內容如下。

  1. 執行複製。
    執行命令檔以複製內容的最新版本。
  2. 停用排定的複寫。
    最後一個複本完成後,停用所有複本命令檔。否則,它可能會干擾切換、容錯移轉或驗證程序。您將在作業之後以適當的方向再次啟用程序檔。
  3. 取代次要中間層主機中特定網站的資訊。
    如果您要複製的檔案系統使用者自建物件包含特定網站的資訊,請確定該檔案系統使用者自建物件不會被複本覆寫,或是在複本後更新。

    秘訣:

    例如,Oracle Fusion Middleware Disaster Recovery Guidersync 命令檔和 WLS-HYDR 複製模組會略過複製中的 tnsnames.ora 檔案,因此您不需要在每次複製之後更改檔案。

    如果系統使用 Oracle Autonomous Database ,請還原次要所需的公事包資料夾,以連線至次要區域的資料庫。您可以在所有待命中間層主機中使用取代命令檔 fmwadb_switch_db_conn.sh。它需要輸入次要原始公事包所在的路徑和公事包密碼。

接著,您可以執行驗證系統所需的其他步驟。

使用中央暫存位置執行 rsync 的進行中複寫

請定期執行複製命令檔,讓次要網域與主要網域保持同步。

使用這個實作時,請遵循以下建議來進行複製:

  • 使用作業系統 crontab 或其他排程工具,定期執行複製命令檔。例如,使用災難復原指南所提供的 rsync 命令檔時,請遵循 Oracle Fusion Middleware Disaster Recovery GuideScheduling Ongoing Replication With Rsync Scripts 小節中的步驟。請參閱本手冊中的「瀏覽更多內容」,以取得這些和其他資源的連結。如需複製頻率,請依照本手冊稍早的中間層檔案使用者自建物件中所述的準則進行操作。
  • 讓中間層處理作業停止在待命網站。複製變更時,如果伺服器位於待命位置中,則變更會在下次啟動時生效。只有在您驗證待命網站,或在切換或容錯移轉程序期間啟動它們。
  • 維護每個網站最新的特定資訊。例如,如果檔案系統包含具有要連線至 Autonomous Database 之使用者自建物件的資料夾,請維護此資料夾的備份複本。請確定在公事包中執行更新時,更新公事包資料夾的備份。如此一來,後續切換和容錯移轉就會正確回復。
  • 在切換或容錯移轉之後,反轉複本方向。這取決於特定實作。您可以使用動態檢查來識別作用中網站的使用者,或在切換或容錯移轉之後進行手動變更、停用及啟用適當的命令檔,以達到此目的。

    秘訣:

    • 使用 DR 指南提供的 rsync 程序檔 (範例 1) 時,請確定建立對等程序檔以按照另一個方向執行複本。在 crontab 或排定的工具中,只對實際角色啟用適當的命令檔。
    • 使用 WLS-HYDR (範例 2) 時,請變更 WLS-HYDR 架構中主要角色,讓下一個複製朝另一方向進行。因此,請編輯 WLS-HYRDR/lib/DataReplication.py 並從下列項目變更:
      if True:
             PRIMARY = PREM 
             STANDBY = OCI
            	 else:
      	        PRIMARY = OCI
                     STANDBY = PREM
      轉譯為:
      if False:
      	        PRIMARY = PREM
                      STANDBY = OCI
             	else:
                      PRIMARY = OCI
                      STANDBY = PREM