728x90
반응형
상황
- 오라클 데이터베이스로 프로젝트 진행 중 일부 schema를 통으로 Export받아야 할 일이 생겼다.
처리방법
- DataPump 유틸리티중 expdp를 사용해서 스키마를 Export받아봤다.
Directory확인
- export 된 dmp파일이 저장되는 경로를 지정해야 하기 때문에, db에 접속하여 export할 디렉토리를 검색해 보자.
- sysdba계정으로 오라클 database 접속.
bash-4.2$ sqlplus / as sysdba;
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 10 00:36:05 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
- dba_directories 테이블을 조회해봤다.
(예전에 DATA_PUMP_DIR로 디렉토리를 만들었기 때문에 조건절에 PUMP를 넣어 검색해봤다) - expdp 실행 시 directory를 DATA_PUMP_DIR로 지정하면 "/opt/oracle/admin/yun/dpdump/" 여기 폴더로 저장된다.
SQL> select * from dba_directories where directory_name like '%PUMP%';
OWNER
--------------------------------------------------------------------------------
DIRECTORY_NAME
--------------------------------------------------------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
ORIGIN_CON_ID
-------------
SYS
DATA_PUMP_DIR
/opt/oracle/admin/yun/dpdump/
1
SQL> exit;
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
- 오라클 Directory만드는 방법은 아래와 같다.
create directory DATA_PUMP_DIR as '/opt/oracle/admin/yun/dbdump';
expdp
- 이제 expdp를 사용해서 schema를 export하면 된다.
- expdp Syntax (자세한 내용은 여기 참조)
자주쓰는 파라미터 위주
expdp user/password@servicename directory=directoryname dumpfile=dumpfilename logfile=logfilename [ tables=table_name | schemas=schema_name | full={y|n}]
directory : 오라클에서 생성한 디렉토리명을 적어주면된다. (DATA_PUMP_DIR)
dumpfile : 지정된 디렉토리 아래 생성될 덤프파일 명
tables : 테이블단위로 덤프 시 , 테이블 명을 적는다. (여러개 지정시 ","로 구분하여 나열)
schemas : 스키마단위로 덤프 시 , 스키마 명을 적는다. (여러개 지정시 ","로 구분하여 나열)
full : database 전체 덤프 시, y/n으로 지정한다.
- yun이라는 user를 통으로 DATA_PUMP_DIR 디렉토리에 dev.dmp 파일로 export 받았다.
bash-4.2$ expdp system/yun123456789 directory=DATA_PUMP_DIR dumpfile=dev.dmp schemas=yun;
Export: Release 19.0.0.0.0 - Production on Fri Feb 10 00:59:59 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Warning: Oracle Data Pump operations are not typically needed when connected to the root or seed of a container database.
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** directory=DATA_PUMP_DIR dumpfile=dev.dmp schemas=yun
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/VIEW/VIEW
Processing object type SCHEMA_EXPORT/VIEW/COMMENT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
. . exported "..." 1.114 MB 16812 rows
Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
/opt/oracle/admin/yun/dpdump/dev.dmp
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Fri Feb 10 01:00:20 2023 elapsed 0 00:00:21
확인
- expdp 명령이 정상적으로 종료되었으면 아래 덤프파일 위치로 가보자
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
/opt/oracle/admin/yun/dpdump/dev.dmp
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Fri Feb 10 01:00:20 2023 elapsed 0 00:00:21
- 덤프파일이 있다.
- 이 dmp파일을 impdp명령을 사용해서 다른 DB에 넣으면 된다.
- impdp 사용방법은 아래 포스팅을 참고한다.
2022.12.05 - [개발팁/개발 팁] - 오라클 impdp, 오라클 데이터 임포트(Oracle Data Pump Import 유틸리티 impdp) - Schema
728x90
반응형