RDS for Oracle Table PUMP 방법 여쭤봅니다. 0 1 2,430

by 보상 [Oracle 백업/복구] rds for oracle oracle pump aws [2023.05.31 17:41:47]


-- Datapump 를 이용하여 Export (Scott 스키마의 emp, dept 테이블)
DECLARE
    hdnl NUMBER;
BEGIN
    hdnl := DBMS_DATAPUMP.OPEN(operation=>'EXPORT', job_mode=>'TABLE', job_name=>'expdp_scott');
    DBMS_DATAPUMP.ADD_FILE(handle=>hdnl, file_name=>'exp_scott_2ea.dmp', directory=>'DUMP_DIR', filetype=>dbms_datapump.ku$_file_type_dump_file);
    DBMS_DATAPUMP.ADD_FILE(handle=>hdnl, file_name=>'exp_scott_2ea.log', directory=>'DUMP_DIR', filetype=>dbms_datapump.ku$_file_type_log_file);
    DBMS_DATAPUMP.METADATA_FILTER(handle=>hdnl, name=> 'SCHEMA_EXPR', value=>'IN (''SCOTT'')');
    DBMS_DATAPUMP.METADATA_FILTER(handle=>hdnl, name=> 'NAME_EXPR', value=>'IN (''EMP'',''DEPT'')', object_type=>'TABLE');
    DBMS_DATAPUMP.START_JOB(hdnl);
END;
/

질문 입니다. 

목적은 scott 계정의 모든 테이블들의 데이터만! 옮겨야 합니다. 

1. 이 쿼리에서 Scott 스키마의 모든 테이블을 import 하려면value값을 어떻게 하면 될까요? value를  빼면 될까요?

2. table에서 데이터만 옮기려고 한다면 object_type에 옵션을 줘야 할까요?

by 포동푸우 [2023.06.01 22:27:14]

서버에서 expdp 로 수행하는 명령어를 PL/SQL 로 작성한 것 같네요 

1. 이 쿼리에서 Scott 스키마의 모든 테이블을 import 하려면 ~~~ 

  >> 올려 주신 것은 import 는 아니고, export ( expdp 명령어 ) 를 수행하는 부분이구요

  >> " DBMS_DATAPUMP.METADATA_FILTER(handle=>hdnl, name=> 'NAME_EXPR', value=>'IN (''EMP'',''DEPT'')', object_type=>'TABLE'); " <~~ Table 중 EMP, DEPT 이렇게 2개를 대상으로 한다는 의미 입니다. 이 줄만 제외 하시면 될 것 같습니다.

2. 2. table에서 데이터만 옮기려고 한다면 object_type에 옵션을 줘야 할까요? 

  >> 아닙니다. 

  >> expdp 시 ~~~ 생략 ... CONTENT=DATA_ONLY .... 생략 <~~~ 이 부분을 위에 넣어 주어야 합니다.  어떤 식으로 넣을 지는 테스트를 못 해 봐서,,  조언 드리기 어렵네요.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입