먼소린지 못 알아 먹으면 삽질 당첨
1. ORACLE RDS생성하기
2. S3 생성
3. IAM 설정으로 S3와 ORACLE RDS연결하기
4. S3에 DMP파일 올리기 (AWS클라이언트)
4-1. 옵션 생성하고 RDS에 옵션 연결하기
5. S3에 올려진 DMP파일을 ORACLE RDS로 보내기
6. SQLPLUS 또는 SQL DEVELOPER를 사용하여 ORACLE에 올리기
AWS 공식 메뉴얼에 다 있는 내용이지만
포인트만 뽑아서 다시 올리겠다
1, 2 생성은 AWS콘솔에서 각각 알아서 생성
4. S3에 DMP 파일 올리기
[root@ip-172-31-44-30 ~]# aws s3 cp 디비파일명.dmp s3://S3이름
upload: ./디비파일명.dmp.dmp to s3://S3이름/디비파일명.dmp.dmp
이렇게 올리면 S3메뉴에서 파일등록 내역 확인.
aws cli로 파일올릴때 (이런젠장 ㅋ)
참고: Amazon S3 콘솔을 사용하는 경우 업로드할 수 있는 최대 파일 크기는 160GB입니다. 160GB보다 큰 파일을 업로드하려면 AWS CLI, AWS SDK 또는 Amazon S3 REST API를 사용합니다.
aws.amazon.com/ko/premiumsupport/knowledge-center/s3-large-file-uploads/
4-1 옵션을 RDS에 추가하자
추가 안하고 파일전송 쿼리 날리면 아래 같은 에러 무조건 뜬다
ERROR at line 1:
ORA-00907: missing right parenthesis
다시말해 옵션등록을 하면 프로시저로 rdadmin 업/다운로드가 등록되어
오라클 서버로 파일을 보낼수가 있는데
옵션 등록이 없으니 죽어도 파일 못보낸다
등록된 프로시저 목록에 s3로 검색해서 안나오면 옵션등록 안된거
이걸로 삽질하지 말자
5. 파일 보내기
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
DATA_PUMP_DIR은 기본등록된 디렉토리명
위 명령은 해당 디렉토리에 등록된 파일 리스트 확인용
쿼리는 입맛대로 잘 수정하자
SQL> SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
p_bucket_name => 's3버켓명',
p_s3_prefix => '디비파일명.dmp',
p_directory_name => 'DATA_PUMP_DIR')
AS TASK_ID FROM DUAL;
공식 메뉴얼에 잘 설명되어 있지만
포인트만 뽑으면
S3생성할때 만든 버켓이름과
디비파일명을 잘 챙겨서 쿼리를 날리면 파일이 업로드 된다.
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
이 명령 쿼리로 잘 올라갔나 확인해 보자
잘못올라가면 로그파일로 오류가 표시되니 확인할것
6. 데이터 IMPORT하기
공식 메뉴얼에 나온거 그대로 쓰면 된다.
DECLARE
v_hdnl NUMBER;
BEGIN
v_hdnl := DBMS_DATAPUMP.OPEN(
operation => 'IMPORT',
job_mode => 'SCHEMA',
job_name => null);
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => '디비파일명.dmp',
directory => 'DATA_PUMP_DIR',
filetype => dbms_datapump.ku$_file_type_dump_file);
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => '로그파일명.log',
directory => 'DATA_PUMP_DIR',
filetype => dbms_datapump.ku$_file_type_log_file);
DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''스키마명'')');
DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
SQLDEVELOPER등으로 실행해 주면 된다
정상적으로 데이터가 올라가면
"PL/SQL 프로시저가 성공적으로 완료되었습니다."
메세지 받고 끝
'aws' 카테고리의 다른 글
AWS 패키지 설치하기 (0) | 2021.04.15 |
---|---|
오라클 RDS 파라미터 설정 (0) | 2021.03.10 |