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:
-
옵션 1: 데이터 펌프 익스포트를 사용하여 자율운영 AI 데이터베이스 디렉토리로 데이터 이동
Oracle Data Pump를 사용하여 데이터베이스의 디렉토리로 데이터를 엑스포트한 다음 디렉토리에서 Cloud Object Store로 데이터를 이동합니다. 이 방법은 자율운영 AI 데이터베이스에서 여러 대상 데이터베이스로 데이터를 이동하려는 경우 유용할 수 있습니다. 데이터를 여러 클라우드 객체 저장소로 익스포트하는 대신 덤프 파일 세트를 한 번 생성한 후 여러 대상 데이터베이스에 사용할 수 있습니다.
데이터베이스의 디렉토리로 데이터를 익스포트하여 자율운영 AI 데이터베이스에서 데이터를 이동하려면 다음 단계를 수행하십시오.
-
자율운영 AI 데이터베이스의 디렉토리로 데이터를 익스포트하고 덤프 파일 세트를 디렉토리에서 클라우드 객체 저장소로 이동합니다. 자율운영 AI 데이터베이스에서 디렉토리를 사용하여 데이터 익스포트를 참조하십시오.
-
클라우드 객체 저장소에서 덤프 파일을 다운로드하고, 데이터를 대상 데이터베이스로 임포트하고, 클라우드 객체 저장소를 정리합니다. Download Dump Files, Run Data Pump Import, and Clean Up Object Store을 참조하십시오.
-
-
옵션 2: Data Pump 엑스포트를 사용하여 객체 저장소로 데이터 이동
이 엑스포트 방식을 사용하면 Oracle Data Pump를 사용하여 데이터를 객체 저장소로 직접 엑스포트할 수 있습니다. 이 익스포트 방식은 Oracle Cloud Infrastructure Object Storage 및 Oracle Cloud Infrastructure Object Storage Classic에서 지원됩니다. 이렇게 하면 자율운영 AI 데이터베이스의 디렉토리에 덤프 파일 세트를 생성한 후 덤프 파일 세트를 클라우드 객체 저장소로 이동하는 오버헤드가 방지됩니다. 데이터를 단일 Target Database로 이동하려는 경우 이 방법을 사용하면 작업을 절약하고 엑스포트 프로세스의 속도를 높일 수 있습니다.
객체 저장소로 직접 익스포트하여 자율운영 AI 데이터베이스에서 데이터를 이동하려면 다음 단계를 수행하십시오.
- 자율운영 AI 데이터베이스에서 클라우드 객체 저장소로 직접 데이터를 익스포트합니다. 데이터를 자율운영 AI 데이터베이스에서 객체 저장소로 직접 익스포트를 참조하십시오.
- 클라우드 객체 저장소에서 덤프 파일을 다운로드하고, 데이터를 대상 데이터베이스로 임포트하고, 클라우드 객체 저장소를 정리합니다. Download Dump Files, Run Data Pump Import, and Clean Up Object Store을 참조하십시오.
자율운영 AI 데이터베이스의 디렉토리를 사용하여 데이터 익스포트
자율운영 AI 데이터베이스의 디렉토리를 사용하여 데이터를 익스포트하려면 먼저 데이터베이스의 디렉토리에 익스포트된 데이터가 포함된 덤프 파일 세트를 생성한 다음 데이터베이스 디렉토리에서 클라우드 객체 저장소로 해당 파일을 업로드해야 합니다.
데이터 펌프를 사용하여 자율운영 AI 데이터베이스에 덤프 파일 세트 생성
-
익스포트된 데이터가 포함된 덤프 파일을 저장할 디렉터리를 만듭니다. 예:
CREATE DIRECTORY data_export_dir as 'data_export'; -
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개인 경우parallel는expdp를 사용하여 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... -
참고:
- 전체 익스포트를 수행하거나 다른 사용자가 소유한 객체를 익스포트하려면
DATAPUMP_CLOUD_EXP롤이 필요합니다. - 덤프 파일을 오브젝트 스토리지로 이동하는 데 사용하는 API는 최대 50GB의 파일 크기를 지원하므로 filesize 인수에서 크기보다 높은 크기를 지정하지 않아야 합니다.
- 자세한 내용은 Oracle Database 19c Utilities 또는 Oracle Database 26ai Utilities의 Oracle Data Pump Export를 참조하십시오.
클라우드 객체 저장소로 자율운영 AI 데이터베이스에서 덤프 파일 세트 이동
-
자율운영 AI 데이터베이스에 접속합니다.
-
DBMS_CREDENTIAL.CREATE_CREDENTIAL절차를 사용하여 클라우드 오브젝트 스토리지 인증서를 저장합니다. 예:BEGIN DBMS_CREDENTIAL.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'adb_user@oracle.com', password => 'password' ); END; /username및password에 대해 제공하는 값은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다.-
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 비밀번호입니다.이 작업은 인증서를 암호화된 형식으로 데이터베이스에 저장합니다. 인증서 이름에 임의의 이름을 사용할 수 있습니다. 이 단계는 객체 저장소 인증서가 변경되지 않는 한 한 한 번만 필요합니다. 인증서를 저장한 후 모든 데이터 로드에 대해 동일한 인증서 이름을 사용할 수 있습니다.
-
-
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 데이터베이스에서 클라우드 객체 저장소로 직접 데이터를 익스포트하는 방법을 보여줍니다.
-
자율운영 AI 데이터베이스에 접속합니다.
-
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 비밀번호입니다.
이 작업은 인증서를 암호화된 형식으로 데이터베이스에 저장합니다. 인증서 이름에 임의의 이름을 사용할 수 있습니다. 이 단계는 객체 저장소 인증서가 변경되지 않는 한 한 한 번만 필요합니다. 인증서를 저장한 후 모든 데이터 로드에 대해 동일한 인증서 이름을 사용할 수 있습니다.
-
-
ADMIN사용자는 위 단계에서 정의한 인증서를 자율운영 AI 데이터베이스의 기본 인증서로 설정합니다.예:
ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME'; -
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이 예에서
dumpfile는us-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 Utilities의 COMPRESSION 또는 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 Utilities의 Parameters Available in Data Pump Export Command-Line Mode를 참조하십시오.
-
최상의 익스포트 성능을 위해서는 익스포트 접속에
high데이터베이스 서비스를 사용하고,parallel매개변수를 ECPU 수의 0.25배 또는 자율운영 AI 데이터베이스의 OCPU 수와 동일하게 설정하십시오. 데이터 펌프 익스포트를 실행하기 위해 접속할 데이터베이스 서비스 이름에 대한 자세한 내용은 자율운영 AI 데이터베이스에 대해 미리 정의된 데이터베이스 서비스 이름을 참조하십시오. -
서로 다른 클라우드 오브젝트 스토리지 서비스에 대한 덤프 파일 URL 형식은 Cloud Object Storage URI 형식을 참조하십시오.
자율운영 AI 데이터베이스의 허용되지 않는 객체에 대한 자세한 내용은 SQL 명령 사용에 대한 제한 사항을 참조하십시오.
-
-
결과 검증.
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 임포트를 사용하여 덤프 파일 세트를 대상 데이터베이스로 임포트합니다. 그런 다음 필요한 정리를 수행합니다.
-
클라우드 객체 저장소에서 덤프 파일을 다운로드합니다.
참고: 데이터를 다른 자율운영 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_aaaaaaOracle 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.dmpcURL 명령은 해당 URL에서 와일드카드나 대체 문자를 지원하지 않습니다. 객체 저장소에서 덤프 파일 세트를 다운로드하려면 여러 cURL 명령을 사용해야 합니다. 또는 대체 문자를 지원하는 스크립트를 사용하여 객체 저장소의 모든 덤프 파일을 단일 명령으로 다운로드할 수 있습니다.
-
Data Pump 임포트를 실행하여 덤프 파일 세트를 Target Database로 임포트합니다.
주: 데이터를 다른 자율운영 AI 데이터베이스로 임포트하는 경우 Oracle Data Pump를 사용하여 데이터 로드를 참조하십시오.
자율운영 AI 데이터베이스에서 객체 저장소로 직접 데이터 익스포트에 표시된 대로 Oracle Data Pump를 사용하여 객체 저장소로 직접 익스포트된 파일의 경우
'datapump'값을 가진format매개변수type를 지원하는DBMS_CLOUD프로시저가 포함된 파일을 임포트하는 경우 기본 파일 이름만 제공해야 합니다.'datapump'형식 유형을 지원하는 프로시저는 청크를 자동으로 검색하고 다운로드합니다. -
사후 임포트 정리 태스크를 수행합니다. 덤프 파일을 대상 데이터베이스로 임포트한 경우 데이터가 포함된 버킷을 삭제하거나 클라우드 객체 저장소 버킷에서 덤프 파일을 제거하고 덤프 파일을 다운로드한 위치에서 데이터 펌프 임포트를 실행하도록 덤프 파일을 제거하십시오.
자세한 내용은 Oracle Database 19c Utilities 또는 Oracle Database 26ai Utilities의 Parameters Available in Oracle Data Pump Import Command-Line Mode을 참조하십시오.