전용 Exadata 인프라의 Autonomous Database에 외부 파일 스토리지 연결

데이터베이스와 파일 시스템이 동일한 개인 네트워크에 있는 경우 Oracle Cloud Infrastructure 또는 온프레미스에 배포된 외부 파일 스토리지를 Autonomous Database에 연결할 수 있습니다. Autonomous Database on Dedicated Exadata Infrastructure는 기본적으로 NFSv4를 지원합니다.

이를 통해 VCN(가상 클라우드 네트워크)의 OCI 파일 스토리지 또는 온프레미스 데이터 센터의 다른 네트워크 파일 시스템에서 데이터를 로드할 수 있습니다.

외부 파일 저장소를 지원하면 다음을 수행할 수 있습니다.
  • 레거시 애플리케이션에서 Autonomous Database 인스턴스에 접속하고 파일 시스템을 사용하여 데이터를 로드 및 언로드합니다.
  • Autonomous Database에서 다양한 소스의 데이터를 분석합니다.
  • 온프레미스 데이터 센터 또는 프라이빗 VCN의 파일 시스템에서 Autonomous Database의 데이터에 안전하게 액세스할 수 있습니다.

외부 파일 스토리지 요구사항

다음 위치에 있는 파일 시스템에서 Autonomous Database의 데이터에 액세스하려면
  • 온프레미스 데이터 센터: 온프레미스 데이터 센터에 접속하도록 FastConnect 또는 사이트 간 VPN을 설정합니다. 자세한 내용은 FastConnectSite-to-Site VPN을 참조하십시오.

  • Oracle Cloud Infrastructure
    • OCI FSS(파일 스토리지 서비스) 액세스에 대한 VCN(가상 클라우드 네트워크) 보안 규칙 생성: 파일 스토리지를 마운트하려면 특정 프로토콜 및 포트를 사용하여 마운트 대상의 VNIC에 대한 트래픽을 허용하도록 보안 규칙을 구성해야 합니다. 보안 규칙은 다음에 대한 트래픽을 사용으로 설정합니다.
      • Open Network Computing Remote Procedure Call(ONC RPC) rpcbind 유틸리티 프로토콜
      • NFS(Network File System) 프로토콜
      • MOUNT(Network File System) 프로토콜
      • NLM(Network Lock Manager) 프로토콜

      자세한 내용은 파일 스토리지의 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 프로시저는 프라이빗 끝점에 있는 데이터베이스에만 프라이빗 파일 스토리지 서비스를 연결할 수 있습니다.
  1. 디렉토리를 생성하거나 기존 디렉토리를 사용하여 Autonomous Database에 외부 파일 시스템을 연결합니다. 파일 시스템을 데이터베이스의 디렉토리 위치에 연결하려면 Autonomous Database 인스턴스의 디렉토리 객체에 대한 WRITE 권한이 있어야 합니다.

    예를 들어, 다음 명령은 FSS_DIR이라는 데이터베이스 디렉토리를 생성하고 fss 파일 시스템 디렉토리를 생성합니다.
    CREATE DIRECTORY FSS_DIR AS ‘fss’;

    자세한 내용은 Create a Directory를 참조하십시오.

  2. DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM를 실행하여 Autonomous Database의 디렉토리에 파일 시스템을 연결합니다. 이 프로시저를 실행하려면 ADMIN 사용자로 로그인하거나 DBMS_CLOUD_ADMIN에 대한 EXECUTE 권한이 있어야 합니다.

    • 기본적으로 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM는 NFSv3를 사용합니다. 그러나 params 매개변수를 명시적으로 사용하고 nfs_version를 값 3과 함께 지정하여 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를 사용하려면 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMparams 매개변수를 포함하고 nfs_version를 값 4로 지정하여 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

    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를 차례로 실행해야 합니다(nfs_version가 4로 설정된 params 매개변수 사용). 그러면 Autonomous Database가 NFSv4 서버에 액세스할 수 있도록 일치하는 프로토콜을 사용하여 NFS가 연결됩니다. 분리한 후 다시 연결하지 않으면 NFS 서버에 액세스할 수 없으며 "Protocol not supported"과 같은 오류가 표시될 수 있습니다.

자세한 내용은 ATTACH_FILE_SYSTEM Procedure를 참조하십시오.

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 패키지입니다.

  • Data Pump 익스포트 및 임포트 유틸리티

  • DBMS_CLOUD.LIST_FILESDBMS_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;                                                                          
/    

이 예에서는 file_system_name 매개변수에 지정된 네트워크 파일 시스템을 Autonomous Database에서 분리합니다. 이 매개변수에 대한 값을 제공해야 합니다. 이 파일 시스템에 대한 정보가 DBA_CLOUD_FILE_SYSTEMS 뷰에서 제거됩니다.

자세한 내용은 DETACH_FILE_SYSTEM Procedure를 참조하십시오.