將外部檔案儲存連附至專用 Exadata 基礎架構上的 Autonomous Database
您可以將部署在 Oracle Cloud Infrastructure 或內部部署的外部檔案儲存連附至您的 Autonomous Database ,前提是資料庫和檔案系統位於相同的專用網路。依照預設,Autonomous Database on Dedicated Exadata Infrastructure 支援 NFSv4。
這可讓您從虛擬雲端網路 (VCN) 中的 OCI 檔案儲存或內部部署資料中心內任何其他網路檔案系統載入資料。
- 從傳統應用程式連線至 Autonomous Database 執行處理,並使用檔案系統來載入和卸載資料。
- 分析來自 Autonomous Database 中不同來源的資料。
- 從內部部署資料中心或私有 VCN 中的檔案系統安全地存取 Autonomous Database 中的資料。
外部檔案儲存需求
-
內部部署資料中心:設定 FastConnect 或網站至網站 VPN 以連線至內部部署資料中心。如需詳細資訊,請參閱 FastConnect 和 Site-to-Site VPN 。
-
Oracle Cloud Infrastructure
-
建立 OCI 檔案儲存服務 (FSS) 存取的虛擬雲端網路 (VCN) 安全規則: 您必須先設定安全規則,以允許使用特定協定和連接埠傳送流量至掛載目標的 VNIC,才能掛載檔案儲存。安全規則會啟用下列項目的流量:
- Open Network Computing Remote 程序呼叫 (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
將檔案系統附加至 Autonomous Database 中的目錄。
附註:
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
程序只能將專用檔案儲存體服務連附至專用端點上的資料庫。
-
在您的 Autonomous Database 中建立目錄或使用現有目錄來附加外部檔案系統。您必須具備 Autonomous Database 執行處理上目錄物件的
WRITE
權限,才能將檔案系統附加至資料庫中的目錄位置。例如,下列命令會建立名為FSS_DIR
的資料庫目錄,並建立檔案系統目錄fss
:CREATE DIRECTORY FSS_DIR AS ‘fss’;
請參閱建立目錄以取得詳細資訊。
-
執行
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
,將檔案系統附加至 Autonomous Database 中的目錄。若要執行此程序,您必須以 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
參數中指定的網路檔案系統附加到 Autonomous Database 。file_system_location
參數會指定檔案系統的位置。您提供給file_system_location
的值包含「完整網域名稱 (FQDN)」,且檔案路徑的格式為:FQDN:
file_path 。舉例而言:-
- FQDN:
myhost.sub000445.myvcn.oraclevcn.com
- 檔案路徑:
/results
- FQDN:
directory_name
參數會指定您要附加檔案系統之 Autonomous Database 中的目錄名稱。這是您在步驟 1 中建立的目錄,或是之前建立的另一個目錄。description
參數會指定工作的描述。 -
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
的注意事項:
-
Oracle Cloud Infrastructure File Storage 使用 NFS 第 3 版共用。如需詳細資訊,請參閱檔案儲存簡介。
- 如果您連附至非 Oracle Cloud Infrastructure 檔案儲存系統,此程序支援 NFSv3 和 NFSv4。
-
如果您有使用 NFSv3 的附加 NFS 伺服器,且 NFS 版本已更新為 NFS 伺服器中的 NFSv4,則必須執行
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
,然後執行DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
(使用params
參數並將nfs_version
設為 4)。這會連附具有相符協定的 NFS,讓 Autonomous Database 可以存取 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_CLOUD
API。
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
程序從 Autonomous Database 中的目錄分離檔案系統。
附註:
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
程序只能從專用端點上的資料庫切離專用檔案儲存服務。
您必須具備目錄物件的 WRITE
權限,才能從目錄位置切離檔案系統。
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
程序,從 Autonomous Database 中的目錄位置分離檔案系統。若要執行此程序,您必須以 ADMIN 使用者身分登入,或具備 DBMS_CLOUD_ADMIN
的 EXECUTE
權限。BEGIN
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
file_system_name => 'FSS'
);END;
/
此範例會從 Autonomous Database 切離 file_system_name
參數中指定的網路檔案系統。您必須提供此參數的值。此檔案系統的相關資訊會從 DBA_CLOUD_FILE_SYSTEMS
檢視中移除。
如需詳細資訊,請參閱DETACH_FILE_SYSTEM 程序。