운영(Prod)하고 있는 서버에는 대게 테스트 서버가 있다. 그러면 운영서버와 테스트서버의 DB의 스키마는 완전히 똑같을 것이다. 테스트(QA) 서버에서는 운영에 있는 데이터와 똑같이 해서 테스트 해보는게 가장 이상적인 방법인데 너무 불편할것이다. 왜냐하면 운영에 있는 테이블의 데이터들을 그대로 가져오는게 여간 귀찮은 작업일수밖에 없으니 말이다.
그런데 그 귀찮은 작업을 가장 쉽게 하는 방법으로 DB Link를 이용하는 방법이 있다.
DB Link를 이용한 데이터 옮기는법.
1. 우선 테스트 -> 운영 으로 DB Link를 생성한다. (방법을 모르면 아래 링크 참조)
https://deftkang.tistory.com/110?category=1089009
2. DB Link를 활용해서 운영의 테이블을 조회하여 테스트의 테이블에 데이터 INSERT.
--운영 테이블을 조회하고 조회한데이터를 바로 INSERT
INSERT INTO 테이블
(
SELECT * FROM 테이블@DB_LINK
);
|
원래 INSERT INTO 테이블 VALUES(); 지만 VALUES를 빼고 SELECT 문을 이용하여 데이터를 넣을 수 있다. 조건은 테이블 구조가 같아야한다.
만약 테스트에선 없는 데이터만 추가 하고 싶다면 운영 테이블에 OUTER JOIN을 걸어서 QA의 테이블의 데이터가 NULL인것만 조회를 하여 INSERT 해주면 된다.
사용사례
QA 디비에서 운영 ECS_ITEM 테이블의 데이터를 INSERT
INSERT INTO ECS_ITEM (
SELECT PITM.*
FROM ECS_ITEM ITM, ECS_ITEM@PG_PROD PITM
WHERE ITM.GTIN(+) = PITM.GTIN
AND ITM.GLN(+) = PITM.GLN
AND ITM.GLN IS NULL
);
'Project > iRT' 카테고리의 다른 글
[RDS] 스냅샷(Snapshot)을 이용한 백업및 복구 방법. (0) | 2020.06.17 |
---|---|
[Java 에러원인] java.lang.InterruptedException (0) | 2020.04.09 |
[Oracle] ORA-54033 오류해결방법, 컬럼 수정이 안될때 (0) | 2020.03.11 |
[Windows] batch파일 이용해서 파일 자동으로 삭제하기 (7) | 2020.03.10 |
[Oracle] DELETE와 TRUNCATE 차이점 (0) | 2020.02.24 |