將網路檔案儲存連附至專用 Exadata 基礎架構上的自治式 AI 資料庫
只要資料庫和檔案系統位於相同的專用網路,您就可以將網路檔案儲存 (NFS) 共用連附至您的自治式 AI 資料庫。專用 Exadata 基礎架構上的自治式 AI 資料庫預設支援 NFSv4。
支援網路檔案系統 (NFS) 可讓您執行下列作業:
-
以高度安全的方式,將高敏感度資料從其他資料庫載入 Exadata Cloud@Customer 上的 Autonomous AI 資料庫。
-
將資料移入或移出多個 Exadata Cloud@Customer 部署,以促進廠商資料、匯出傾印和其他業務流程。
如有需要,您必須明確地將 NFS 共用附加到下列資料庫:
-
從複製具有 NFS 掛載點的自治式 AI 資料庫所建立的複製資料庫。
-
待命資料庫:在將主要資料庫連附至 NFS 共用的自治式資料保全設定中,進行容錯移轉或切換作業之後,擔任主要角色。
網路檔案系統需求
將您的網路檔案儲存 (NFS) 共用連附至自治式 AI 資料庫之前,請確定:
-
客戶提供的 NFS 是可從自治式 VM 叢集節點存取的網路。
-
所有自治式 VM 叢集節點上的
oracle作業系統使用者都可以讀取和寫入 NFS 掛載的檔案系統。 -
如果在使用者層次控制權限,則自治式 VM 叢集之
oracle使用者的 uid:gid 為 1001:1001。
附加網路檔案系統
使用 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM,將檔案系統附加至您自治式 AI 資料庫中的目錄。
注意:當自治式 AI 資料庫執行處理位於專用端點時,DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 程序只能連附專用檔案儲存服務。
-
建立目錄或使用現有目錄在自治式 AI 資料庫中連附外部檔案系統。您必須具備自治式 AI 資料庫執行處理上目錄物件的
WRITE權限,才能將檔案系統附加至資料庫中的目錄位置。例如,下列命令會建立名為
NFS_DIR的資料庫目錄,並建立檔案系統目錄nfs:CREATE DIRECTORY NFS_DIR AS 'nfs';請參閱建立目錄以瞭解詳細資訊。
-
執行
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM,將檔案系統附加至您自治式 AI 資料庫中的目錄。若要執行此程序,您必須以 ADMIN 使用者身分登入,或具有DBMS_CLOUD_ADMIN的EXECUTE權限。-
依預設,
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM會使用 NFSv3。不過,您可以選擇明確使用params參數,並以值 3 指定nfs_version以指定 NFSv3。BEGIN DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM ( file_system_name => 'NFS', file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results', directory_name => 'NFS_DIR', description => 'Source NFS for sales data' );END; / -
若要使用 NFSv4,請包含
params參數與DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM,然後指定值為 4 的nfs_version來指定 NFSv4。BEGIN DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM ( file_system_name => 'NFS', file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results', directory_name => 'NFS_DIR', description => 'Source NFS for sales data', **params => JSON_OBJECT('nfs_version' value 4)** ); END; /
上方顯示的範例會將
file_system_name參數中指定的網路檔案系統附加至「自治式 AI 資料庫」。file_system_location參數會指定檔案系統的位置。您提供的file_system_location值包含「完整網域名稱 (FQDN)」以及格式為 FQDN:file_path 的檔案路徑。舉例而言:
-
FQDN:
myhost.sub000445.myvcn.oraclevcn.com -
檔案路徑:
/results
directory_name參數會指定您要附加檔案系統之「自治式 AI 資料庫」中的目錄名稱。這是您在步驟 1 中建立的目錄,或是您先前建立的其他目錄。description參數會指定工作的描述。params參數是指定其他屬性nfs_version的 JSON 值,其值可以是 3 或 4 (NFSv3 或 NFSv4)。 -
使用 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 的注意事項:
-
Oracle Cloud Infrastructure File Storage 使用 NFSv3 進行共用。如需詳細資訊,請參閱檔案儲存簡介。
-
如果您連附至非 Oracle Cloud Infrastructure File Storage 系統,此程序支援 NFSv3 和 NFSv4。
-
如果您連附的 NFS 伺服器使用 NFSv3,而 NFS 版本在 NFS 伺服器中會更新為 NFSv4,則必須執行
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM,然後執行DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM(使用params參數並將nfs_version設為 4)。這會將 NFS 連附至相符的協定,讓自治式 AI 資料庫能夠存取 NFSv4 伺服器。若未取消連附然後重新連附,將無法存取 NFS 伺服器,您可能會見到以下錯誤:"Protocol not supported"。
查詢 DBA_CLOUD_FILE_SYSTEMS
附加檔案系統後,您可以查詢 DBA_CLOUD_FILE_SYSTEMS 檢視,以擷取附加檔案系統的相關資訊。
例如:
SELECT file_system_name, file_system_location, directory_path
FROM dba_cloud_file_systems
WHERE file_system_name = 'FSS';
此查詢會傳回 FSS 檔案系統名稱的詳細資訊。如需詳細資訊,請參閱 DBMS_CLOUD_FILE_SYSTEMS 檢視。
使用附加的檔案系統,您可以使用任何接受目錄名稱的 PL/SQL API,在附加的檔案系統上讀取和寫入檔案。例如,您可以使用下列任一方法來使用附加的 FSS 目錄:
-
UTL_FILE套裝軟體。 -
「資料汲取」匯出與匯入公用程式。
-
使用
DBMS_CLOUD.LIST_FILES和DBMS_CLOUD.PUT_OBJECT等目錄的DBMS_CLOUDAPI。
顯示使用 UTL_FILE 在附加的檔案系統上寫入檔案的範例:
DECLARE
l_file UTL_FILE.FILE_TYPE;
l_location VARCHAR2(100) := 'FSS_DIR';
l_filename VARCHAR2(100) := 'test.csv';
BEGIN
-- Open the file.
l_file := UTL_FILE.FOPEN(l_location, l_filename, 'w');
UTL_FILE.PUT(l_file, 'Scott, male, 1000');
-- Close the file.
UTL_FILE.FCLOSE(l_file);
END;
/
顯示使用 UTL_FILE 在附加的檔案系統上讀取檔案的範例:
DECLARE
l_file UTL_FILE.FILE_TYPE;
l_location VARCHAR2(100) := 'FSS_DIR';
l_filename VARCHAR2(100) := 'test.csv';
l_text VARCHAR2(32767);
BEGIN
-- Open the file.
l_file := UTL_FILE.FOPEN(l_location, l_filename, 'r');
UTL_FILE.GET_LINE(l_file, l_text, 32767);
-- Close the file.
UTL_FILE.FCLOSE(l_file);
END;
/
使用 DBMS_CLOUD.LIST_FILES 顯示附加檔案系統上的清單檔案範例:
SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FSS_DIR');
DBMS_CLOUD_FILE_SYSTEMS 檢視
DBA_CLOUD_FILE_SYSTEMS 視觀表會列出附加至資料庫中目錄位置的外部檔案系統相關資訊。
| 欄 | 資料類型 | 描述 |
|---|---|---|
FILE_SYSTEM_NAME |
VARCHAR2(128) |
檔案系統名稱 |
FILE_SYSTEM_LOCATION |
VARCHAR2(4000) |
檔案系統地點 |
DIRECTORY_NAME |
VARCHAR2(128) |
附加的目錄名稱 |
DIRECTORY_PATH |
VARCHAR2(4000) |
附加的目錄路徑 |
NFS_VERSION |
NUMBER |
NFS 版本 |
DESCRIPTION |
VARCHAR2(4000) |
當您執行 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 時,提供的描述參數值 |
CREATION_TIME |
TIMESTAMP(6) WITH TIME ZONE |
建立時戳 |
UPDATE_TIME |
TIMESTAMP(6) WITH TIME ZONE |
更新時戳 |
分離網路檔案系統
請使用 DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序從自治式 AI 資料庫中的目錄取消連附檔案系統。
注意:DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序只能從專用端點上的資料庫取消連附專用檔案儲存服務。
您必須具有目錄物件的 WRITE 權限,才能從目錄位置分離檔案系統。
執行 DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序,從自治式 AI 資料庫中的目錄位置切離檔案系統。若要執行此程序,您必須以 ADMIN 使用者身分登入,或具有 DBMS_CLOUD_ADMIN 的 EXECUTE 權限。
BEGIN
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
file_system_name => 'NFS'
);END;
/
此範例會從「自治式 AI 資料庫」切離 file_system_name 參數中指定的網路檔案系統。您必須提供此參數的值。此檔案系統的資訊將從 DBA_CLOUD_FILE_SYSTEMS 視觀表中移除。