將網路檔案儲存連附至專用 Exadata 基礎架構上的自治式 AI 資料庫

只要資料庫和檔案系統位於相同的專用網路,您就可以將網路檔案儲存 (NFS) 共用連附至您的自治式 AI 資料庫。專用 Exadata 基礎架構上的自治式 AI 資料庫預設支援 NFSv4。

支援網路檔案系統 (NFS) 可讓您執行下列作業:

如有需要,您必須明確地將 NFS 共用附加到下列資料庫:

網路檔案系統需求

將您的網路檔案儲存 (NFS) 共用連附至自治式 AI 資料庫之前,請確定:

附加網路檔案系統

使用 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM,將檔案系統附加至您自治式 AI 資料庫中的目錄。

注意:當自治式 AI 資料庫執行處理位於專用端點時,DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 程序只能連附專用檔案儲存服務。

  1. 建立目錄或使用現有目錄在自治式 AI 資料庫中連附外部檔案系統。您必須具備自治式 AI 資料庫執行處理上目錄物件的 WRITE 權限,才能將檔案系統附加至資料庫中的目錄位置。

    例如,下列命令會建立名為 NFS_DIR 的資料庫目錄,並建立檔案系統目錄 nfs

    CREATE DIRECTORY NFS_DIR AS 'nfs';
    

    請參閱建立目錄以瞭解詳細資訊。

  2. 執行 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM,將檔案系統附加至您自治式 AI 資料庫中的目錄。若要執行此程序,您必須以 ADMIN 使用者身分登入,或具有 DBMS_CLOUD_ADMINEXECUTE 權限。

    • 依預設,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 的注意事項:

查詢 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 在附加的檔案系統上寫入檔案的範例:

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_ADMINEXECUTE 權限。

BEGIN
  DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'NFS'
  );END;
/

此範例會從「自治式 AI 資料庫」切離 file_system_name 參數中指定的網路檔案系統。您必須提供此參數的值。此檔案系統的資訊將從 DBA_CLOUD_FILE_SYSTEMS 視觀表中移除。

相關內容