關於 Oracle Database File System

Oracle Database File System (DBFS) 利用資料庫的優點來儲存檔案,以及使用資料庫的優點來有效管理關聯式資料,為儲存在資料庫中的檔案實行標準檔案系統介面。 使用此介面,使用任何對檔案採取動作的作業系統程式,即可通透地存取資料庫中的檔案。

DBFS 與 NFS 類似,它提供了一個看起來像本機檔案系統的共用網路檔案系統,並且同時具有伺服器元件和用戶端元件。DBFS 檔案系統可以從中間層主機掛載,並當作一般共用檔案系統來存取。

由於 DBFS 掛載所需的組態與維護,因此 DBFS 引進了一些複雜性。您必須在掛載資料庫從屬端的主機中安裝資料庫從屬端,且必須在資料庫 (表格空間、使用者等等) 和從屬端 (公事包、tnsnames.ora 等等) 中執行某些使用者自建物件的初始設定。資料庫需要額外的容量,因為複製至 DBFS 掛載的內容會儲存在資料庫中。

不建議直接將網域組態或二進位檔儲存在 DBFS 掛載中。這會在 Oracle Fusion Middleware 檔案與資料庫之間建立非常強大的相依性。不過,有些使用者自建物件和作業會比 DBFS 功能更有利

關於使用 DBFS 作為 runtime 資料夾

您可以使用 Oracle Database File System (DBFS) 掛載來掛載共用程式實際執行資料,以作為 NFS 的替代方式。儲存在 DBFS 掛載中的任何內容都位於資料庫中,且會透過基礎的 Oracle Data Guard 複製自動複製到待命網站。如此,次要站台一律會有同步複本。您不需要設定程式實際執行內容的其他複寫。

若要實作此方法,請在所有中間層主機 (主要和次要) 中安裝資料庫從屬端。您必須在資料庫 (DBFS 表格空間、使用者等) 和從屬端 (公事包、tnsnames.ora 等) 中執行某些使用者自建物件的初始設定。

請參閱命令檔 dbfs_dr_setup_root.sh 作為範例命令檔,以設定中間層主機中的 DBFS 掛載。此命令檔會安裝資料庫從屬端、在資料庫中建立 DBFS 綱要、設定從屬端使用者自建物件,以及在中間層主機中掛載 DBFS 檔案系統。

請前往下載代碼以取得下載指令碼的連結。

使用此程序檔時,請考量下列幾點:

  • 您必須先在主機中正確設定 "yum" 公用程式,才能執行命令檔。此命令檔使用 yum 下載安裝資料庫從屬端所需的部分套裝程式。
  • 您必須在命令檔的 "CUSTOMIZABLE VARIABLES" 區段中提供您的環境值 (使用者名稱、路徑等)。
  • 變數 DBFS_CONFIG_DIR 可用來自訂 DBFS 組態使用者自建物件的位置 (公事包、tnsnames.ora 以及用來掛載 DBFS 的命令檔)。使用未在網站之間複製的位置,因此每個網站都有自己的組態。請勿將它放在網域資料夾底下,因為複製網域時會將它複製到次要資料夾。
  • 您必須在主要中間層主機 (指向主要資料庫) 和次要中間層主機 (指向次要資料庫) 中執行命令檔。您會看到警告,因為有些項目已經建立 (資料庫使用者、表格空間等),但是您可以忽略這些訊息。
  • 若要在次要中間層主機中執行組態,必須以快照待命模式開啟待命資料庫。這是因為 DBFS 只能在開啟資料庫時掛載。當 Oracle Data Guard 不是 Active Data Guard 時,待命資料庫會處於掛載狀態。在這類情況下,您必須將資料庫轉換為快照待命資料庫,才能存取待命網站的 DBFS 掛載。

在所有中間層主機中配置 DBFS 掛載之後,您就可以將它當作執行階段資料的共用資料夾 (例如,檔案配接卡或自訂應用程式讀取 / 寫入的檔案)。您不需要手動將此內容複寫至次要網站,而是使用 Oracle Data Guard 自動複寫內容。如果發生切換或容錯移轉,則新的主要會提供程式實際執行內容,以及儲存在資料庫中的其他資訊。

對程式實際執行資料使用 DBFS 掛載的優點:

  • 在網站之間進行複製是隱含的。儲存在主要網站之 DBFS 掛載中的內容會透過 Oracle Data Guard 複製到次要網站。

缺點:

  • DBFS 效能比 NFS 解決方案 (Oracle Cloud Infrastructure File Storage ,Oracle ZFS) 更差。
  • Oracle 建議您在切換後將 dbfs 重新掛載至新主要資料庫,以確保 DBFS 掛載正常。DBFS 掛載可能會過時,而且如果資料庫指出未開啟某段時間 (例如,資料庫處於待命模式時),就需要重新掛載。

關於使用 DBFS 複製 Oracle WebLogic Server 組態

Oracle Database File System (DBFS) 是您可以用來複製組態的另一個方法。在此情況下,您可以使用 DBFS 掛載作為中介位置,以複製組態。儲存在 DBFS 掛載中的任何內容都位於資料庫中,且會透過基礎的 Oracle Data Guard 複寫自動複製到待命網站。

此方法利用 Oracle Data Guard 複本的強大功能。透過 Oracle 驅動程式的重試邏輯提供良好的可用性,並提供彈性的行為。在資料中心之間有中等或高延遲的情況下,即可使用此模式。不過,從設定、資料庫儲存體以及週期觀點來看,使用 DBFS 進行組態複製時,會有額外的影響:

  • 它會引進 DBFS 掛載所需組態和維護的一些複雜性。它需要在要掛載的主機中安裝資料庫從屬端,它需要在資料庫 (表格空間、使用者等) 和從屬端 (公事包、tnsnames.ora 等等) 中初始設定某些使用者自建物件。請參閱命令檔 dbfs_dr_setup_root.sh 作為安裝資料庫從屬端的範例命令檔、在資料庫中建立 DBFS 綱要、設定從屬端使用者自建物件,以及在中間層主機中掛載 DBFS 檔案系統。
  • 資料庫需要額外的容量,因為複製至 DBFS 掛載的內容會儲存在資料庫中。
  • 不建議直接將網域組態或二進位檔儲存在 DBFS 掛載中。這會在 Oracle Fusion Middleware 檔案與資料庫之間建立非常強大的相依性。建議您使用 DBFS 作為輔助檔案系統:中介暫存檔案系統來放置將要複製到待命網站的資訊。複製到待命資料庫有兩個步驟:從主要來源資料夾到中介 DBFS 掛載,然後在待命位置,從 DBFS 掛載到待命目的地資料夾。
  • 只有在資料庫開啟時才能掛載 DBFS。當 Oracle Data Guard 不是 Active Data Guard 時,待命資料庫會處於掛載狀態。因此,為了在此情況下存取待命網站的 DBFS 掛載,資料庫必須轉換成快照待命資料庫。使用 Active Data Guard 時,可以掛載檔案系統以進行讀取,且無須轉換至快照。

基於上述原因,不建議將 DBFS 複製到備用資料庫,作為一般用途的解決方案。例如,使用 DBFS 複製二進位檔案是一個重疊項。

不過,當儲存體複製或 rsync 等其他方法無法執行時,此方法適用於在生命週期期間 (例如網域共用組態 (ASERVER_HOME) 複寫某些動態使用者自建物件。請參閱 Oracle WebLogic Server for Oracle Cloud Infrastructure Disaster Recovery 說明文件,瞭解如何使用 DBFS 作為協助檔案系統來複製網域組態的範例。

請前往下載代碼以取得下載指令碼的連結。