PaaS/Data

(Oracle DB) Oracle2Oralce 다른 스키마로 이관하는 과정

armyost 2021. 7. 26. 08:39
728x90

1. 이관대상 스키마의 데이터파일 사용량 확인(DATA, INDEX)

 

SELECT b.file_name "FILE_NAME",
b.tablespace_name "TABLESPACE_NAME",
b.bytes / 1024 / 1024 "TOTAL SIZE(MB)",
((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024 "USED(MB)",
(sum(nvl(a.bytes,0))) / 1024 "FREE SIZE(KB)",
(sum(nvl(a.bytes,0)) / (b.bytes)) * 100 "FREE %",
round((b.bytes / 1024 / 1024) - ((((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024) + 150)) ForFree
FROM DBA_FREE_SPACE a, DBA_DATA_FILES b
WHERE a.file_id(+) = b.file_id
AND (b.tablespace_name ='테이블스페이스 이름')
GROUP BY b.tablespace_name, b.file_name, b.bytes
ORDER BY b.tablespace_name;

 

2. SOURCE 데이터 파일로 추출

 

expdp system/비밀번호 DIRECTORY=PUMP경로 schemas=스키마명 DUMPFILE=파일이름.dmp logfile=파일이름.log

 

3. DESTINATION의 PUMP경로로 추출된 파일 이동

 

WinSCP 등의 방법으로 .dmp 파일이동

 

 

4. DESTINATION 인스턴스에도 스키마 및 테이블스페이스(DATA,INDEX) 생성

CREATE USER 스키마명
IDENTIFIED BY 비밀번호
DEFAULT TABLESPACE 테이블스페이스명
TEMPORARY TABLESPACE TEMP;

GRANT CONNECT TO 스키마명;
GRANT RESOURCE TO 스키마명;

create tablespace 테이블스페이스명 datafile '경로' size 사이즈M;

 

5. 데이터 파일 IMPORT

impdp system/비밀번호 dumpfile=파일이름.dmp directory=PUMP경로 logfile=파일이름.log SCHEMAS=스키마명

 

 

※ EXPORT/IMPORT 시 옵션 들

 

1) 특정 테이블 제외

 

- export

expdp system/비밀번호 DIRECTORY=PUMPDIR경로 schemas=추출대상스키마명 DUMPFILE=덤프파일경로.dmp EXCLUDE=TABLE:\"IN \(\'테이블1\', \'테이블2\'\)\" logfile=로그파일명.log

expdp system/비밀번호 DIRECTORY=PUMPDIR경로 schemas=추출대상스키마명 DUMPFILE=덤프파일경로.dmp EXCLUDE=TABLE:\"IN \(\'테이블1\', \'테이블2\'\)\" logfile=로그파일명.log

 

- import

impdp system/비밀번호 dumpfile=덤프파일경로.dmp directory=PUMPDIR경로 logfile=로그파일명.log SCHEMAS=추출대상스키마명

 

 

 

2) 특정 테이블의 일부분만 이관

 

- export

expdp system/비밀번호 DIRECTORY=PUMPDIR경로 tables=테이블명 query=\"WHERE TO_CHAR\(REG_DT,\'yyyymmdd\'\)\>\'20200101\'\" DUMPFILE=덤프파일경로.dmp

expdp system/비밀번호 DIRECTORY=PUMPDIR경로 tables=ⓐ테이블명 query=\"WHERE TO_CHAR\(REG_DT,\'yyyymmdd\'\)\>\'20200101\'\" DUMPFILE=덤프파일경로.dmp

 

- import

impdp system/비밀번호 dumpfile=덤프파일경로.dmp directory=PUMPDIR경로 TABLES=ⓐ스키마.테이블명

impdp system/비밀번호 dumpfile=덤프파일경로.dmp directory=PUMPDIR경로 TABLES=ⓐ스키마.테이블명

 

 

 

3) 스키마 이름 변경

- export : 일반적인 export 수행

 

- import

impdp system/비밀번호 dumpfile=덤프파일경로.dmp directory=PUMPDIR경로 logfile=로그파일명.log remap_schema=ASIS스키마명:TOBE스키마명

impdp system/비밀번호 dumpfile=덤프파일경로.dmp directory=PUMPDIR경로 logfile=로그파일명.log remap_schema=ASIS스키마명:TOBE스키마명

 

 

※ 기타 필요 쿼리

 

1. PUMP경로 확인 쿼리

SELECT * FROM DBA_DIRECTORIES;

 

2. ADD DATAFILE : DATAFILE 증설 시

ALTER TABLESPACE 테이블스페이스명
ADD DATAFILE 'DATA파일경로'
SIZE 사이즈M;

 

 

'PaaS > Data' 카테고리의 다른 글

(RDBMS) 인덱스에 대해서  (0) 2022.01.25
(Oralce DB) 유용한 쿼리들  (0) 2021.07.26
(Oralce DB) Oralce 서버 구축  (0) 2021.07.26
(Oralce DB) SHA512 암호화 프로시저 만들기  (0) 2021.07.26
Oracle To PostgreSQL import(Centos)  (0) 2021.05.12