AWS 환경에서 S3 통한 덤프파일 전달 받아 데이터펌프 사용하기
# 외부 Oracle 환경에서 expdp 로 덤프 파일 생성
expdp username/password@database_link \
DIRECTORY=data_pump_dir \
DUMPFILE=export_dump.dmp \
SCHEMAS=schema_name \
LOGFILE=export_dump.log
case 1. ec2 oracle 환경에서 impdp
1) 생성된 덤프 파일 S3 버킷에 업로드
- AWS CLI를 사용하여 덤프 파일을 S3 버킷에 업로드합니다:
aws s3 cp export_dump.dmp s3://your-bucket-name/export_dump.dmp
2) EC2 인스턴스 접속, S3 버킷으로부터 덤프 파일 다운로드
- EC2 인스턴스에 접속합니다:
ssh -i "your-key.pem" ec2-user@your-ec2-instance-public-dns
- S3 버킷에서 덤프 파일 다운로드
aws s3 cp s3://your-bucket-name/export_dump.dmp /tmp/export_dump.dmp
3) ec2 Oracle 에 impdp 로 데이터 로드
impdp username/password@database \
DIRECTORY=data_pump_dir \
DUMPFILE=export_dump.dmp \
SCHEMAS=schema_name \
LOGFILE=import_dump.log \
TABLE_EXISTS_ACTION=REPLACE
- 작업 후 파일 삭제
aws s3 rm s3://your-bucket-name/export_dump.dmp
case 2. rds oracle 환경에서 impdp
1) 생성된 덤프 파일 S3 버킷에 업로드
aws s3 cp export_dump.dmp s3://your-bucket-name/export_dump.dmp
2) S3에서 덤프 파일을 다운로드
BEGIN
rdsadmin.rdsadmin_s3_tasks.download_from_s3(
p_bucket_name => 'your-bucket-name',
p_s3_prefix => 'export_dump.dmp',
p_directory_name => 'DATA_PUMP_DIR'
);
END;
/
3) rds Oracle 에 impdp 로 데이터 로드
DECLARE
v_hdnl NUMBER;
BEGIN
v_hdnl := DBMS_DATAPUMP.OPEN(
operation => 'IMPORT',
job_mode => 'SCHEMA',
job_name => 'IMPORT_JOB'
);
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => 'export_dump.dmp',
directory => 'DATA_PUMP_DIR'
);
DBMS_DATAPUMP.METADATA_FILTER(
handle => v_hdnl,
name => 'SCHEMA_EXPR',
value => 'IN (''schema_name'')'
);
DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
# impdp 작업 모니터링
SELECT *
FROM DBA_DATAPUMP_JOBS
WHERE JOB_NAME = 'IMPORT_JOB';
'생계 > Oracle' 카테고리의 다른 글
[oracle] 소프트 파싱 과 하드파싱 (0) | 2024.12.11 |
---|---|
오라클 스탠다드 SE 엔터프라이즈 EE 차이 및 활용 (0) | 2024.06.01 |
oracle wallet 사용하기 (0) | 2023.09.20 |
[oracle] 히든 파라미터 체크 hidden parameter (0) | 2023.07.03 |
oracle audit 파일 삭제 (0) | 2023.05.29 |