導入 Oracle Database 檔案系統 (DBFS) 複製
任何待命資料庫複製都代表此模型中的兩個步驟:從主要來源資料夾到中繼 DBFS 掛載,然後在次要位置,從 DBFS 掛載到待命目的地資料夾。中繼複本是使用 rsync 來完成。由於這是低延遲和本機 rsync 複製,因此此模型可避免遠端 rsync 複製作業中發生的一些問題。
附註:
Oracle Autonomous Database 不支援此方法,此方法不允許 DBFS 連線。使用 DBFS 實作中間層複本的優點如下:
- 這個方法充分利用 Oracle Data Guard 複本的健全性。
- 真正的中間層儲存體可以維持掛載在次要節點。在每一項切換移轉或容錯移轉作業中,並無其他步驟可將儲存體附加或掛載至次要儲存體。
以下為使用 DBFS 實作中間層複本的考量:
- 此方法需要搭配 Oracle Data Guard 的 Oracle Database。
- 中間層主機需要 Oracle Database 從屬端掛載 DBFS。
- 使用 DBFS 進行複製對設定、資料庫儲存體和生命週期的觀點有影響。它需要在中間層主機安裝 Oracle Database 從屬端、特定資料庫維護 (清除、壓縮及減少表格儲存體),並且充分瞭解 DBFS 掛載點的運作方式。
- 只有開啟資料庫時,才能掛載 DBFS 目錄。當 Oracle Data Guard 不是作用中資料保全時,待命資料庫會處於掛載狀態。因此,若要存取次要站台中的 DBFS 掛載,您必須將資料庫轉換成快照待命資料庫。使用 Active Data Guard 時,可以掛載檔案系統進行讀取,而且不需要轉換成快照。
- 不建議使用 DBFS 作為一般用途的解決方案,將所有使用者自建物件 (特別是程式實際執行檔案) 複製到待命資料庫。使用 DBFS 複寫二進位檔已被覆寫。不過,當儲存體複製或
rsync等其他方法不符合系統需求時,此方法適用於複製一些人工因素 (例如組態)。 - 使用者需負責為每個環境建立自訂指令碼,並定期執行。
- 使用者有責任實施反向複製方向的方法。
設定資料庫檔案系統的複寫
此實作使用 rsync 技術並遵循點對點模型。在此模型中,會在中間層對等主機之間直接進行複製。每個節點都有與其對等的 SSH 連線,並使用 SSH 上的 rsync 命令來複製主要中間層檔案使用者自建物件。
實作使用 DBFS 的中間層複本需要下列項目:
- 在中間層主機上安裝執行複製的 Oracle Database 用戶端,包括主要和次要主機。
- 資料庫中建立的 DBFS 檔案系統。
- 掛載在中間層主機的 DBFS,負責執行主要和次要複製。這會掛載資料庫的 DBFS 檔案系統。此檔案系統可掛載於多個主機,因為 DBFS 是可共用的檔案系統。
- 將中間層檔案使用者自建物件複製到主要網站之 DBFS 掛載的命令檔。
- 將中間層檔案使用者自建物件從 DBFS 掛載複製到次要網站中資料夾的命令檔。視實行而定,此方法可能需要中間層主機與遠端資料庫之間的 SQL*net 連線,才能進行資料庫作業 (例如角色轉換)。
- 管理網站特定資訊的一種方式,不論是從複本中排除該資訊,或是在複本後以適當的資訊加以更新。
- 排定這些指令碼持續執行。
- 在切換或容錯移轉後變更複本方向的機制。
附註:
下列範例適用於 Oracle WebLogic 系統。您可以使用它作為透過 DBFS 複製中間層系統之其他資料夾的參照,但此特定範例使用命令檔,透過 DBFS 將 WebLogic 管理員的網域資料夾複製到次要資料夾。此範例顯示如何透過 DBFS 複製 WebLogic 管理主機的網域資料夾。此範例中不包含位於網域資料夾外部的內容以及其他主機上的內容。網域資料夾不會直接位於 DBFS;DBFS 掛載只是儲存網域資料夾複本的中繼暫存資料夾。
此範例提供執行這些動作的 script ,這些動作必須定期在主要和待命位置執行。此命令檔會複製「WebLogic 管理」網域資料夾,略過一些項目,例如 tmp、.lck、.state 檔案和 tnsnames.ora 檔案。程序包含下列項目:
- 當命令檔在主要網站的「WebLogic 管理」主機上執行時,命令檔會將 WebLogic 網域資料夾複製到 DBFS 資料夾。
- 複製到 DBFS 的檔案 (儲存在資料庫中) 會透過 Oracle Data Guard 自動傳輸至待命資料庫。
- 當命令檔在次要網站的 WebLogic 管理主機上執行時:
- 此命令檔會將待命資料庫轉換成快照待命。
- 接著,它會從待命資料庫掛載 DBFS 檔案系統。
- 此 DBFS 資料夾現在提供複製的網域資料夾。命令檔會將它從 DBFS 掛載複製到實際的網域資料夾。
- 最後,命令檔會再次將待命資料庫轉換成實體待命。
- 如果是角色變更,命令檔會自動調整執行為新角色。它會透過檢查資料庫角色來收集網站的實際角色。
此命令檔僅複製 WebLogic 管理主機的網域資料夾。當受管理伺服器啟動時,DOMAIN_HOME/config 資料夾底下的內容會自動複製到屬於 WebLogic 網域的所有其他節點。此資料夾之外的檔案和位於其他主機上的檔案不會被複製,因此需要個別同步。
對於應用程式部署作業,請使用 WebLogic 管理主控台中的上傳您的檔案部署選項。如此一來,建置的檔案會放置在管理伺服器 ($DOMAIN_HOME/servers/admin_server_name/upload) 的上傳目錄下,而組態複本命令檔會將它們同步至待命網站。
此範例提供其他命令檔來安裝資料庫從屬端,以及在中間層主機設定 DBFS 掛載。此影像是含有 DBFS 複製之 Oracle WebLogic Server for OCI 系統的範例。
wls-dbfs-replication-oracle.zip
執行下列動作以使用 DBFS 方法複製 WebLogic 網域:
驗證資料庫檔案系統的複寫
在切換或容錯移轉作業中,複製的資訊必須在待命網站中使用,才能啟動處理作業。當您驗證次要系統 (透過以快照模式開啟待命資料庫) 時,也必須執行此動作。
在此實作中,儲存一律可在待命資料庫中使用;您不需要連附或掛載任何磁碟區。您所需的唯一動作是確保其包含最新版本的內容。
若要使用待命資料庫中的複製內容,請執行下列動作:
執行進行中的資料庫檔案系統複寫
請定期執行複製命令檔,讓次要網域與主要網域保持同步。
rsync 時,請遵循下列建議:
- 您可以使用 OS crontab 或其他排程工具來排定複寫。它必須允許命令檔才能完成複製。否則,後續的工作可能會重疊。
- 讓中間層處理作業在待命網站中停止。複製變更時,如果伺服器位於待命位置中,則變更會在下次啟動時生效。只有在驗證待命網站時,或在切換或容錯移轉程序期間啟動它們。
- 維護每個網站特定的資訊並保持在最新狀態。例如,略過複本中的
tnsnames.ora,讓每個系統都有其連線詳細資訊。如果您在主要tnsnames.ora中執行變更 (例如,新增別名),請視需要手動更新次要的tnsnames.ora。 - 在切換或容錯移轉之後,反轉複本方向。這取決於特定實作。指令碼可以使用動態檢查來識別誰是作用中網站,或者您可以在切換或容錯移轉後執行手動變更 (例如停用和啟用適當的指令碼)。在提供的範例中,
config_replica.sh命令檔會檢查本機資料庫角色,自動將執行調整為網站的實際角色。

