Oracle Data Pump를 사용하여 데이터 엑스포트

Oracle Data Pump는 자율운영 AI 데이터베이스와 다른 Oracle 데이터베이스 간에 매우 빠른 대량 데이터 및 메타데이터 이동을 제공합니다.

Oracle은 자율운영 AI 데이터베이스에서 다른 Oracle 데이터베이스로 데이터를 익스포트하기 위해 최신 Oracle Data Pump 버전을 사용할 것을 권장합니다. 더 나은 경험을 위한 개선사항 및 수정사항이 포함되어 있기 때문입니다. 최신 버전의 Oracle Instant Client를 다운로드하고 Oracle Instant Client 다운로드에서 플랫폼용 Oracle Data Pump가 포함된 툴 패키지를 다운로드합니다. Oracle Instant Client 및 도구 패키지를 다운로드한 후 필요한 설치 단계는 플랫폼 설치 다운로드 페이지의 설치 지침을 참조하십시오.

To move data from an Autonomous AI Database to other Oracle databases using Oracle Data Pump, use one of the following options:

자율운영 AI 데이터베이스의 디렉토리를 사용하여 데이터 익스포트

자율운영 AI 데이터베이스의 디렉토리를 사용하여 데이터를 익스포트하려면 먼저 데이터베이스의 디렉토리에 익스포트된 데이터가 포함된 덤프 파일 세트를 생성한 다음 데이터베이스 디렉토리에서 클라우드 객체 저장소로 해당 파일을 업로드해야 합니다.

데이터 펌프를 사용하여 자율운영 AI 데이터베이스에 덤프 파일 세트 생성

  1. 익스포트된 데이터가 포함된 덤프 파일을 저장할 디렉터리를 만듭니다. 예:

     CREATE DIRECTORY data_export_dir as 'data_export';
    
  2. dumpfile 매개변수 세트, filesize 매개변수가 50G 미만으로 설정된 경우 및 directory 매개변수 세트를 사용하여 데이터 펌프 익스포트를 실행하십시오. 예를 들어, 다음은 ECPU가 64개인 ATPC1라는 자율운영 AI 데이터베이스에서 SALES이라는 스키마를 익스포트하는 방법을 보여줍니다.

     expdp sales/password@ATPC1_high
     directory=data_export_dir
     dumpfile=exp%L.dmp
     parallel=16
     encryption_pwd_prompt=yes
     filesize=1G
     logfile=export.log
    

    데이터 펌프 파라미터에 대한 참고 사항:

    • ECPU의 경우 parallel를 ECPU 수의 0.25배로 설정해야 합니다. 따라서 위의 예에서 ECPU가 64개인 경우 parallel는 0.25 x 64, 즉 16(expdp 포함)로 설정됩니다.

    • OCPU의 경우 parallel를 OCPU 수와 동일한 값으로 설정해야 합니다. 위 예에서 OCPU가 16개인 경우 parallelexpdp를 사용하여 16으로 설정됩니다.

    • expdp를 사용하여 익스포트하는 동안 encryption_pwd_prompt=yes 매개변수를 사용하는 경우 임포트와 함께 encryption_pwd_prompt=yes를 사용하고 impdp 프롬프트에 동일한 비밀번호를 입력하여 덤프 파일을 해독해야 합니다(익스포트와 함께 제공한 비밀번호 기억). 암호화 암호의 최대 길이는 128바이트입니다.

    • dumpfile 매개변수는 레거시 %U%u 와일드카드와 함께 %L%l 와일드카드를 지원합니다. 예: dumpfile=export%L.dmp.

      Oracle Database 릴리스 12.2 이상에서 익스포트하려면 %L 또는 %l 와일드카드를 사용하십시오. 이 와일드카드는 덤프 파일 이름을 100에서 시작하여 2147483646으로 끝나는 3자리 가변 너비 증분 정수로 확장합니다.

    최상의 엑스포트 성능을 위해 엑스포트 연결에 HIGH 데이터베이스 서비스를 사용하고 PARALLEL 파라미터를 데이터베이스의 CPU 수로 설정합니다. 데이터 펌프 익스포트를 실행하기 위해 접속할 데이터베이스 서비스 이름에 대한 자세한 내용은 자율운영 AI 데이터베이스에 대해 미리 정의된 데이터베이스 서비스 이름을 참조하십시오.

    엑스포트가 완료되면 다음과 같은 query를 실행하여 생성된 덤프 파일을 확인할 수 있습니다.

     SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');
    

    예를 들어, 이 query의 출력은 생성된 덤프 파일과 엑스포트 로그 파일을 보여줍니다.

     OBJECT_NAME                 BYTES  CHECKSUM                   CREATED          LAST_MODIFIED
    
     ---------------------- ---------- --------- ------------------------------- --------------------
     exp01.dmp                   12288               12-NOV-19 06.10.47.0 PM GMT       12-NOV-19...
     exp02.dmp                    8192               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
     exp03.dmp                 1171456               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
     exp04.dmp                  348160               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
     export.log                   1663               12-NOV-19 06.10.50.0 PM GMT       12-NOV-19...
    

참고:

클라우드 객체 저장소로 자율운영 AI 데이터베이스에서 덤프 파일 세트 이동

  1. 자율운영 AI 데이터베이스에 접속합니다.

  2. DBMS_CREDENTIAL.CREATE_CREDENTIAL 절차를 사용하여 클라우드 오브젝트 스토리지 인증서를 저장합니다. 예:

     BEGIN
       DBMS_CREDENTIAL.CREATE_CREDENTIAL(
         credential_name => 'DEF_CRED_NAME',
         username => 'adb_user@oracle.com',
         password => 'password'
       );
     END;
     /
    

    usernamepassword에 대해 제공하는 값은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다.

    • Oracle Cloud Infrastructure Object Storage: username은 Oracle Cloud Infrastructure 사용자 이름이고 password은 Oracle Cloud Infrastructure 인증 토큰입니다. 인증 토큰 작업을 참조하십시오.

    • Oracle Cloud Infrastructure Object Storage Classic: username은 Oracle Cloud Infrastructure Classic 사용자 이름이고 password은 Oracle Cloud Infrastructure Classic 비밀번호입니다.

      이 작업은 인증서를 암호화된 형식으로 데이터베이스에 저장합니다. 인증서 이름에 임의의 이름을 사용할 수 있습니다. 이 단계는 객체 저장소 인증서가 변경되지 않는 한 한 한 번만 필요합니다. 인증서를 저장한 후 모든 데이터 로드에 대해 동일한 인증서 이름을 사용할 수 있습니다.

  3. DBMS_CLOUD.PUT_OBJECT을 호출하여 자율운영 AI 데이터베이스에서 클라우드 객체 저장소로 덤프 파일을 이동합니다.

    예:

     BEGIN
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp01.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp01.dmp');
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp02.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp02.dmp');
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp03.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp03.dmp');
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp04.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp04.dmp');
     END;
     /
    

    PUT_OBJECT에 대한 자세한 내용은 PUT_OBJECT 프로시저를 참조하십시오.

자율운영 AI 데이터베이스에서 객체 저장소로 직접 데이터 익스포트

Oracle Data Pump를 사용하여 자율운영 AI 데이터베이스에서 클라우드 객체 저장소로 직접 데이터를 익스포트하는 방법을 보여줍니다.

  1. 자율운영 AI 데이터베이스에 접속합니다.

  2. DBMS_CREDENTIAL.CREATE_CREDENTIAL 절차를 사용하여 클라우드 오브젝트 스토리지 인증서를 저장합니다. 예:

     BEGIN
       DBMS_CREDENTIAL.CREATE_CREDENTIAL(
         credential_name => 'DEF_CRED_NAME',
                username => 'adb_user@oracle.com',
         password => 'password'
         );
     END;
     /
    

    사용자 이름과 비밀번호에 대해 제공하는 값은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다.

    • Oracle Cloud Infrastructure Object Storage: username은 Oracle Cloud Infrastructure 사용자 이름이고 password은 Oracle Cloud Infrastructure 인증 토큰입니다. 인증 토큰 작업을 참조하십시오.

    • Oracle Cloud Infrastructure Object Storage Classic: username은 Oracle Cloud Infrastructure Classic 사용자 이름이고 password은 Oracle Cloud Infrastructure Classic 비밀번호입니다.

    이 작업은 인증서를 암호화된 형식으로 데이터베이스에 저장합니다. 인증서 이름에 임의의 이름을 사용할 수 있습니다. 이 단계는 객체 저장소 인증서가 변경되지 않는 한 한 한 번만 필요합니다. 인증서를 저장한 후 모든 데이터 로드에 대해 동일한 인증서 이름을 사용할 수 있습니다.

  3. ADMIN 사용자는 위 단계에서 정의한 인증서를 자율운영 AI 데이터베이스의 기본 인증서로 설정합니다.

    예:

     ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
    
  4. dumpfile 매개변수가 Cloud Object Storage의 기존 버킷에 대한 URL로 설정된 상태에서 Data Pump 익스포트를 실행합니다(파일 이름 또는 대체 변수(예: exp%U.dmp)가 있는 파일 이름으로 끝남).

    • Oracle Data Pump 버전 19.9 이상:

      credential 매개변수를 2단계에서 생성한 인증서의 이름으로 설정합니다. 예:

      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      credential=DEF_CRED_NAME \
      dumpfile=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index
      

      이 예에서 dumpfileus-ashburn-1 영역의 mybucket 버킷에 있는 export<number>.dmp와 이름이 일치하는 모든 파일을 지정하는 Oracle Cloud Infrastructure Swift URI입니다. (adbdpreview1는 버킷이 상주하는 오브젝트 스토리지 네임스페이스입니다.)

    • 19.9 이전 버전의 Oracle Data Pump:

      dumpfile 매개변수의 값을 default_credential 키워드와 콜론으로 시작합니다. 예:

      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      dumpfile=DEF_CRED_NAME:https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index
      

      이 예에서는 dumpfile 매개변수의 default_credential 키워드가 필요합니다.

    Oracle Data Pump 파라미터 참고 사항:

    • 기본적으로 Oracle Data Pump Export는 덤프 파일 세트에 기록하기 전에 메타 데이터만 압축합니다. 덤프 파일 세트에 쓰기 전에 메타데이터 및 데이터를 압축하도록 compression 매개변수를 ALL로 설정할 수 있습니다. 자세한 내용은 Oracle Database 19c UtilitiesCOMPRESSION 또는 Oracle Database 26ai Utilities를 참조하십시오.

    • dumpfile 매개변수는 레거시 %U%u 와일드카드와 함께 %L%l 와일드카드를 지원합니다. 예: dumpfile=export%L.dmp.

      Oracle Database 릴리스 12.2 이상에서 익스포트하려면 %L 또는 %l 와일드카드를 사용하십시오. 이 와일드카드는 덤프 파일 이름을 100에서 시작하여 2147483646으로 끝나는 3자리 가변 너비 증분 정수로 확장합니다.

      자세한 내용은 Oracle Database 19c Utilities 또는 Oracle Database 26ai UtilitiesParameters Available in Data Pump Export Command-Line Mode를 참조하십시오.

    • 최상의 익스포트 성능을 위해서는 익스포트 접속에 high 데이터베이스 서비스를 사용하고, parallel 매개변수를 ECPU 수의 0.25배 또는 자율운영 AI 데이터베이스의 OCPU 수와 동일하게 설정하십시오. 데이터 펌프 익스포트를 실행하기 위해 접속할 데이터베이스 서비스 이름에 대한 자세한 내용은 자율운영 AI 데이터베이스에 대해 미리 정의된 데이터베이스 서비스 이름을 참조하십시오.

    • 서로 다른 클라우드 오브젝트 스토리지 서비스에 대한 덤프 파일 URL 형식은 Cloud Object Storage URI 형식을 참조하십시오.

    자율운영 AI 데이터베이스의 허용되지 않는 객체에 대한 자세한 내용은 SQL 명령 사용에 대한 제한 사항을 참조하십시오.

  5. 결과 검증.

    Oracle Data Pump는 업로드 속도를 높이기 위해 각 덤프 파일 부분을 작은 조각으로 나눕니다. Oracle Cloud Infrastructure Object Storage 콘솔에는 내보낸 각 덤프 파일 부분에 대해 여러 파일이 표시됩니다. 실제 덤프 파일의 크기는 0으로 표시되고 관련 파일 조각은 10MB 이하로 표시됩니다. 예:

     exp01.dmp
     exp01.dmp_aaaaaa
     exp02.dmp
     exp02.dmp_aaaaaa
    

    참고:

    콘솔에서 또는 CLI를 사용하여 0바이트 덤프 파일을 다운로드해도 전체 덤프 파일은 제공되지 않습니다. 객체 저장소에서 전체 덤프 파일을 다운로드하려면 curl과 같은 Swift를 지원하는 도구를 사용하고 사용자 로그인 및 Swift 인증 토큰을 제공합니다. 예:

       curl -O -v -X GET -u 'user1@example.com:auth_token' \
        https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/export01.dmp
    

덤프 파일 다운로드, Data Pump 임포트 실행 및 객체 저장소 정리

필요한 경우 클라우드 객체 저장소에서 덤프 파일을 다운로드하고 Oracle Data Pump 임포트를 사용하여 덤프 파일 세트를 대상 데이터베이스로 임포트합니다. 그런 다음 필요한 정리를 수행합니다.

  1. 클라우드 객체 저장소에서 덤프 파일을 다운로드합니다.

    참고: 데이터를 다른 자율운영 AI 데이터베이스로 임포트하는 경우 이 단계는 필요하지 않습니다.

    Export Data From Autonomous AI Database to Object Store Directly와 같이 Oracle Data Pump를 사용하여 객체 저장소로 직접 익스포트하는 경우 객체 저장소의 덤프 파일에 크기 0이 표시됩니다. Oracle Data Pump는 업로드 속도를 높이기 위해 각 덤프 파일 부분을 작은 조각으로 나눕니다. Oracle Cloud Infrastructure Object Storage 콘솔에는 내보낸 각 덤프 파일 부분에 대해 여러 파일이 표시됩니다. 실제 덤프 파일의 크기는 0으로 표시되고 관련 파일 조각은 10MB 이하로 표시됩니다. 예:

    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    

    Oracle Cloud Infrastructure 콘솔에서 또는 Oracle Cloud Infrastructure CLI를 사용하여 0바이트 덤프 파일을 다운로드해도 전체 덤프 파일은 제공되지 않습니다. Object Store에서 전체 덤프 파일을 다운로드하려면 curl과 같은 Swift를 지원하는 도구를 사용하고 사용자 로그인 및 Swift 인증 토큰을 제공합니다. 예:

    curl -O -v -X GET -u 'user1@example.com:auth_token' \
    https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp
    

    cURL 명령은 해당 URL에서 와일드카드나 대체 문자를 지원하지 않습니다. 객체 저장소에서 덤프 파일 세트를 다운로드하려면 여러 cURL 명령을 사용해야 합니다. 또는 대체 문자를 지원하는 스크립트를 사용하여 객체 저장소의 모든 덤프 파일을 단일 명령으로 다운로드할 수 있습니다.

  2. Data Pump 임포트를 실행하여 덤프 파일 세트를 Target Database로 임포트합니다.

    주: 데이터를 다른 자율운영 AI 데이터베이스로 임포트하는 경우 Oracle Data Pump를 사용하여 데이터 로드를 참조하십시오.

    자율운영 AI 데이터베이스에서 객체 저장소로 직접 데이터 익스포트에 표시된 대로 Oracle Data Pump를 사용하여 객체 저장소로 직접 익스포트된 파일의 경우 'datapump' 값을 가진 format 매개변수 type를 지원하는 DBMS_CLOUD 프로시저가 포함된 파일을 임포트하는 경우 기본 파일 이름만 제공해야 합니다. 'datapump' 형식 유형을 지원하는 프로시저는 청크를 자동으로 검색하고 다운로드합니다.

  3. 사후 임포트 정리 태스크를 수행합니다. 덤프 파일을 대상 데이터베이스로 임포트한 경우 데이터가 포함된 버킷을 삭제하거나 클라우드 객체 저장소 버킷에서 덤프 파일을 제거하고 덤프 파일을 다운로드한 위치에서 데이터 펌프 임포트를 실행하도록 덤프 파일을 제거하십시오.

자세한 내용은 Oracle Database 19c Utilities 또는 Oracle Database 26ai UtilitiesParameters Available in Oracle Data Pump Import Command-Line Mode을 참조하십시오.