-- hr 스키마의 table 을 expdp 로 추출하면, table 과 table 종속된 object 가 함께 추출 됩니다. 주석, 통계 등이 모두 포함됩니다. expdp system/ schemas=hr content=all include=table,index directory=DATA_PUMP_DIR dumpfile=hr_test1014ti_expdp.dmp logfile=hr_1014ti_expdp.log expdp system/ schemas=hr content=all include=table directory=DATA_PUMP_DIR dumpfile=hr_test1014t_expdp.dmp logfile=hr_1014t_expdp.log >> 위 명령어 추출대상 동일 객체 유형 SCHEMA_EXPORT/TABLE/TABLE 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/COMMENT 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/INDEX/INDEX 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/TRIGGER 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS 처리 중 -- 우리가 흔히 말하는 Table 과 index 만 추출하는 명령어는 아래와 같습니다 expdp system/ schemas=hr content=all include=TABLE/TABLE, TABLE/INDEX/INDEX directory=DATA_PUMP_DIR dumpfile=hr_test1014w_expdp.dmp logfile=hr_1014w_expdp.log >> 위 명령어 추출대상 객체 객체 유형 SCHEMA_EXPORT/TABLE/TABLE 처리 중 객체 유형 SCHEMA_EXPORT/TABLE/INDEX/INDEX 처리 중
-- 저는 아래처럼 하시길 권해 드립니다. -- 추출은 항상 전체를 expdp system/ schemas=hr content=all directory~~ dumpfile~~ logfile~~ -- 적재는 필요한 것만 impdp system/ schemas=hr content=metadata_only include=TABLE/COMMENT, INDEX/STATISTICS/INDEX_STATISTICS directory~~ dumpfile~~ logfile~~ impdp system/ schemas=hr content=data_only include=TABLE/TABLE directory~~ dumpfile~~ logfile~~ 등....
-- 작업하신 전체 내역을 몰라서 Index 가 만들어 지지 않는 이유를 알기 어렵네요 -- 위 댓글에서 제가 언급한 impdp 문장은 하나의 셈풀 입니다. 대상 객체/상황에 따라 여러 옵션을 조정해야 합니다. -- 제가 아는 개념으로는, impdp 방법을 포함해서, 특정 테이블에 data 가 입력되면, 존재하는 index 는 data 가 반영 되 변경됩니다. impdp 수행 시, content=all 혹은 metadata_only 를 사용하면, table 생성 SQL 수행 후, Index 생성 SQL 도 수행됩니다. impdp 수행 시, content=data_only 를 사용하면, DDL (Create/alter table/index ... 등) , DCL ( grant .... 등) 없이 이미 존재하는 table 에 data rows 만 Insert 합니다. -- expdp/impdp 수행 시 오류가 발생 되었다면, logfile 에 기록되니 확인해 봐야 합니다. impdp 수행 후, index 는 안 만들어져 있는데, logfile 에 index 생성을 실패한 기록이 없다면, 아래 경우를 예상해 볼 수 있습니다. ....case1) impdp 수행 시점에 index 가 없었는데 content=data_only 로 data 만 적재되었다 ....case2) impdp 수행 명령어에 index 에 대한 요청이 없다 index 생성하려 했으나 권한부족 등으로 수행하지 못했다면 logfile 에 기록이 남습니다.
-- 만약 hr 유저의 EMPLOYEES 테이블 및 관련 object 들만 추출/적재 하시려면 간략하게 아래처럼 할 수 있습니다. expdp system/ content=all tables=HR.EMPLOYEES directory=DATA_PUMP_DIR dumpfile=hr_test1014e_expdp.dmp logfile=hr_1014e_expdp.log HR.EMPLOYEES 및 관련 object 삭제 impdp system/ content=all tables=HR.EMPLOYEES directory=DATA_PUMP_DIR dumpfile=hr_test1014e_expdp.dmp logfile=hr_1014i_expdp.log -- schemas 와 tables 는 함께 사용할 수 없는 옵션 입니다. -- 만약 hr 유저의 EMPLOYEES 테이블을 추출해, 같은 DB의 sh 유저로 적재 테스트를 해 본다면 ? -- remap 라는 옵션을 사용할 수 있습니다. impdp system/ content=all tables=HR.EMPLOYEES remap_schema=HR:SH directory=DATA_PUMP_DIR dumpfile=hr_test1014e_expdp.dmp logfile=hr_1014sh_expdp.log -- 그럼 아마 대부분은 적재 될 겁니다. Table 생성,, Index 생성,, grant 등.. -- FK 들은 대부분 실패하게 됩니다. ==> HR 스키마에 있던 다른 object 들이 SH 스키마에 없을 테니까요 -- Package/Function/Procedure/View 들은 다수 Invalid 상태가 됩니다. ==> Create/Alter 등 구문만 SH 에서 수행하지 그 SQL 내부 HR 스키마를 SH 로 변경하지 않기 때문입니다. ...