Skip to main content
Enterprise applications
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

Oracle Direct NFS ( DNFS )

貢獻者

Oracle 資料庫可使用 NFS 的方式有兩種。

首先、它可以使用以作業系統一部分的原生 NFS 用戶端所掛載的檔案系統。這有時稱為核心 NFS 或 kNFS 。NFS 檔案系統是由 Oracle 資料庫安裝及使用、與任何其他應用程式使用 NFS 檔案系統的方式完全相同。

第二種方法是 Oracle Direct NFS ( DNFS )。這是在 Oracle 資料庫軟體中實作 NFS 標準。它不會改變 DBA 設定或管理 Oracle 資料庫的方式。只要儲存系統本身有正確的設定、就應該對 DBA 團隊和終端使用者透明使用 DNFS 。

啟用 DNFS 功能的資料庫仍會掛載一般的 NFS 檔案系統。資料庫開啟後、 Oracle 資料庫會開啟一組 TCP/IP 工作階段、並直接執行 NFS 作業。

Direct NFS

Oracle Direct NFS 的主要值是略過主機 NFS 用戶端、並直接在 NFS 伺服器上執行 NFS 檔案作業。啟用它只需要變更 Oracle 磁碟管理程式( ODM )程式庫。Oracle 說明文件中提供此程序的說明。

使用 DNFS 可大幅提升 I/O 效能、並降低主機和儲存系統的負載、因為 I/O 是以最有效率的方式執行。

此外、 Oracle DNFS 還包含 * 選項 * 、可用於網路介面多重路徑和容錯功能。例如、兩個 10Gb 介面可以結合在一起、以提供 20Gb 的頻寬。如果某個介面發生故障、則會在另一個介面上重試 I/O 。整體作業與 FC 多重路徑非常類似。多重路徑在數年前是最常見的標準、那就是 1 個乙太網路。10Gb NIC 足以應付大多數 Oracle 工作負載、但如果需要更多 10Gb NIC 、則可加以連結。

使用 DNFS 時、必須安裝 Oracle Doc 1495104.1 中所述的所有修補程式。如果無法安裝修補程式、則必須評估環境、確保該文件中所述的錯誤不會造成問題。在某些情況下、無法安裝所需的修補程式會導致無法使用 DNFS 。

請勿將 DNFS 用於任何類型的循環名稱解析、包括 DNS 、 DDNS 、 NIS 或任何其他方法。這包括 ONTAP 中可用的 DNS 負載平衡功能。當使用 DNFS 的 Oracle 資料庫將主機名稱解析為 IP 位址時、後續查詢時不得變更。這可能會導致 Oracle 資料庫當機、並可能導致資料毀損。

啟用 DNFS

Oracle DNFS 可與 NFSv3 搭配使用,除了啟用 DNFS 程式庫之外,不需要任何組態(請參閱 Oracle 說明文件以取得所需的特定命令),但如果 DNFS 無法建立連線,則可無訊息還原至核心 NFS 用戶端。如果發生這種情況,效能可能會受到嚴重影響。

如果您想要在多個介面上使用 NFSSv4.X 的 DNFS 多工處理,或是使用加密,則必須設定一個 fstab 檔案。語法非常嚴格。檔案中的小錯誤可能會導致啟動掛起或略過 oranfstab 檔案。

寫入時, DNFS 多重路徑功能無法與 NFSv4.1 搭配最新版本的 Oracle 資料庫一起使用。將 NFSv4.1 指定為傳輸協定的 oranFstab 檔案只能使用單一路徑陳述式進行指定的匯出。原因是 ONTAP 不支援用戶端 ID 主幹。解決此限制的 Oracle 資料庫修補程式可能會在未來推出。

要確保某些 DNFS 正常運作,唯一的方法是查詢 v$dnfs 表格。

以下是位於 /et. 的範例 oranfstab 檔案這是可放置 oranfstab 檔案的多個位置之一。

[root@jfs11 trace]# cat /etc/oranfstab
server: NFSv3test
path: jfs_svmdr-nfs1
path: jfs_svmdr-nfs2
export: /dbf mount: /oradata
export: /logs mount: /logs
nfs_version: NFSv3

第一步是檢查 DNFS 是否可用於指定的檔案系統:

SQL> select dirname,nfsversion from v$dnfs_servers;

DIRNAME
------------------------------------
NFSVERSION
----------------
/logs
NFSv3.0

/dbf
NFSv3.0

此輸出表示 DNFS 正與這兩個檔案系統搭配使用,但 * 不 * 表示 oranfstab 可以運作。如果出現錯誤, DNFS 會自動探索主機的 NFS 檔案系統,您仍可能會看到此命令的相同輸出。

多重路徑檢查方式如下:

SQL> select svrname,path,ch_id from v$dnfs_channels;

SVRNAME
------------------------------------
PATH
------------------------------------
     CH_ID
----------
NFSv3test
jfs_svmdr-nfs1
         0

NFSv3test
jfs_svmdr-nfs2
         1

SVRNAME
------------------------------------
PATH
------------------------------------
     CH_ID
----------

NFSv3test
jfs_svmdr-nfs1
         0

NFSv3test
jfs_svmdr-nfs2

[output truncated]

SVRNAME
------------------------------------
PATH
------------------------------------
     CH_ID
----------
NFSv3test
jfs_svmdr-nfs2
         1

NFSv3test
jfs_svmdr-nfs1
         0

SVRNAME
------------------------------------
PATH
------------------------------------
     CH_ID
----------

NFSv3test
jfs_svmdr-nfs2
         1


66 rows selected.

這些是 DNFS 正在使用的連線。每個 SVRNAME 項目都會顯示兩個路徑和通道。這表示多重路徑功能正常運作,這表示 oranfstab 檔案已被辨識及處理。

直接 NFS 和主機檔案系統存取

使用 DNFS 有時會導致依賴掛載在主機上的可見檔案系統的應用程式或使用者活動發生問題、因為 DNFS 用戶端會從主機作業系統不定期存取檔案系統。DNFS 用戶端可以在不瞭解作業系統的情況下建立、刪除及修改檔案。

使用單一執行個體資料庫的掛載選項時、會啟用檔案和目錄屬性的快取、這也表示目錄內容會快取。因此、 DNFS 可以建立檔案、而且在作業系統重新讀取目錄內容和讓使用者看到檔案之前、會有短暫的延遲。這通常不是問題、但在極少數情況下、 SAP BR*Tools 等公用程式可能會發生問題。如果發生這種情況、請變更掛載選項、以使用 Oracle RAC 的建議來解決此問題。這項變更會導致停用所有主機快取。

只有在使用( a ) DNFS 時才變更掛載選項、且( b )檔案可見度延遲所造成的問題。如果未使用 DNFS 、在單一執行個體資料庫上使用 Oracle RAC 掛載選項會導致效能降低。

註 如需可產生異常結果的 Linux 特定 DNFS 問題、請參閱中的"Linux NFS 裝載選項"說明 nosharecache