將外部檔案儲存連附至專用 Exadata 基礎架構上的自治式 AI 資料庫
如果資料庫和檔案系統位於相同的專用網路中,您可以將部署在 Oracle Cloud Infrastructure 或內部部署的外部檔案儲存連附至您的自治式 AI 資料庫。專用 Exadata 基礎架構上的自治式 AI 資料庫預設支援 NFSv4。
這可讓您從虛擬雲端網路 (VCN) 中的 OCI 檔案儲存或內部部署資料中心中的任何其他網路檔案系統載入資料。
支援外部檔案儲存體可讓您執行下列作業:
-
從舊版應用程式連線至自治式 AI 資料庫執行處理,並使用檔案系統載入及取消載入資料。
-
分析自治式 AI 資料庫中不同來源的資料。
-
從內部部署資料中心或私人 VCN 中的檔案系統,安全地存取自主 AI 資料庫中的資料。
外部檔案儲存需求
若要從檔案系統存取「自治式 AI 資料庫」中的資料,請執行下列動作:
-
內部部署資料中心:設定 FastConnect 或網站至網站 VPN 以連線至內部部署資料中心。請參閱 FastConnect 和網站至網站 VPN 以瞭解詳細資訊。
-
Oracle Cloud Infrastructure
-
建立 OCI 檔案儲存服務 (FSS) 存取的虛擬雲端網路 (VCN) 安全規則: 您必須先設定安全規則,才能使用特定協定和連接埠,將流量傳送至掛載目標的 VNIC。安全規則可啟用下列項目的流量:
-
開啟網路運算遠端程序呼叫 (ONC RPC) rpcbind 公用程式協定
-
網路檔案系統 (NFS) 協定
-
網路檔案系統 (MOUNT) 協定
-
網路鎖定管理程式 (NLM) 協定
請參閱設定檔案儲存的 VCN 安全規則以瞭解詳細資訊。
-
-
在 OCI FSS 中建立檔案系統:使用 OCI 主控台建立檔案系統。設定檔案系統的掛載目標詳細資訊時,請選取資料庫部署所在之 VCN 的 VCN 和專用子網路,並且提供主機名稱以自動產生完整網域名稱 (FQDN)。如需更多資訊,請參閱 Creating File Systems 。
-
取得掛載目標的 FQDN:從 OCI 主控台檢視您檔案系統掛載目標的詳細資訊,如檢視掛載目標的詳細資訊所述,以取得其 FQDN。
-
附加外部檔案系統
使用 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM,將檔案系統附加至您自治式 AI 資料庫中的目錄。
注意:DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 程序只能將專用檔案儲存服務連附至專用端點上的資料庫。
-
建立目錄或使用現有目錄在自治式 AI 資料庫中連附外部檔案系統。您必須具備自治式 AI 資料庫執行處理上目錄物件的
WRITE權限,才能將檔案系統附加至資料庫中的目錄位置。例如,下列命令會建立名為
FSS_DIR的資料庫目錄,並建立檔案系統目錄fss:CREATE DIRECTORY FSS_DIR AS 'fss';請參閱建立目錄以瞭解詳細資訊。
-
執行
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 => 'FSS', file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results', directory_name => 'FSS_DIR', description => 'Source FSS 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 => 'FSS', file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results', directory_name => 'FSS_DIR', description => 'Source FSS 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參數會指定任務的描述。 -
使用 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 的注意事項:
-
Oracle Cloud Infrastructure File Storage 使用 NFS 第 3 版進行共用。如需詳細資訊,請參閱檔案儲存簡介。
-
如果您連附至非 Oracle Cloud Infrastructure File Storage 系統,此程序支援 NFSv3 和 NFSv4。
-
如果您連附的 NFS 伺服器使用 NFSv3,而 NFS 版本在 NFS 伺服器中更新為 NFSv4,則必須執行
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM,然後使用params參數執行DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM,並將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 => 'FSS'
);
END;
/
此範例會從「自治式 AI 資料庫」切離 file_system_name 參數中指定的網路檔案系統。您必須提供此參數的值。此檔案系統的資訊將從 DBA_CLOUD_FILE_SYSTEMS 視觀表中移除。
相關內容
如需詳細資訊,請參閱下列內容:
-
Oracle Database 19c PL/SQL Packages and Types Reference 或 Oracle Database 26ai PL/SQL Packages and Types Reference 中的 UTL_FILE 。