본 테스트는 CentOS 7.9 Oracle 11g EE 환경에서 진행되었습니다
Source / Target DB 중 Target DB 서버에서 진행하시면 됩니다
DB Export 는 아래 글을 참고해 주세요
2023.03.10 - [IT/ORACLE] - [Oracle] DB Export
기존 DB USER를 옮기시려면 Target 서버에서
user_ddl.sql 실행 해주시면 됩니다
create user 부터 grant 까지 metadata 를 한번에 받을 수 있습니다
user_ddl link
https://oracle-base.com/dba/script?category=script_creation&file=user_ddl.sql
1. 테이블스페이스 생성하기
기존 DB 에서 사용하던 dbf 파일의 개수를 확인 후 사이즈에 맞추어 새로운 테이블스페이스를 생성해줍니다
기존 DB SQL > select tablespace_name , (sum(bytes)/1024/1024/1024/32) as count from dba_segments where owner ='[OWNER 값]' group by tablespace_name;
bytes 를 32로 나눈 이유는 하나의 dbf 파일이 32GB 까지 Auto Extend 되기 때문입니다~!
위 쿼리로 조회 해보면 TABLESPACE_NAME 과 COUNT 가 나오는데..
0.01 이어도 1개의 dbf 파일이 필요합니다
옮길 DB에서 dbf 파일을 만들어 줍니다
CREATE TABLESPACE 테이블스페이스 이름 DATAFILE '경로/이름_01.dbf' SIZE 11256K AUTOEXTEND ON NEXT 10M MAXSIZE unlimited ;
다 더해도 32GB가 안되기 때문에,, remap table 옵션을 통해 합쳐줄 수 있습니다
2. user 생성하기
기존 user를 똑같이 copy 하려면 user_ddl.sql 실행 한 결과를 복붙 해주시면 됩니다
3. data_pump 디렉토리 확인 및 dmp 파일 옮기기
select * from dba_directories; 쿼리 후
Oracle 의 Directory_name 경로와 OS 의 Directory Path 를 확인
directory name 과 directory path를 기억 해주세요
Directory Path 로 import 할 dmp 파일을 옮겨주세요
4. par file 작성
위에서 확인한 directory path 에 parfile 을 작성합니다
# vi /oracle/oraprod/PROD/12.1.0/rdbms/log/impdp.par
내용
directory=DATA_PUMP_DIR
dumpfile=test_schema.dmp
logfile=imp_test_schema.log
full=y
:wq! 로 저장
5. imp 하기
# impdp parfile=impdp.par
끝!
문의나 오류 수정은 댓글로 부탁드립니다
감사합니다
'IT > ORACLE' 카테고리의 다른 글
[오라클/oracle] session kill 쿼리 (0) | 2023.08.22 |
---|---|
[Oracle] DB Export (0) | 2023.03.10 |