R3trans 를 이용한 테이블 Export / Import 는 <SID>adm 계정을 사용한다.
R3trans 는 SAP 시스템 간에 마이그레이션 등의 사례에서 데이터를 전송하는데 사용되는 SAP 도구이다.
SAP Notes 1942 - How does R3trans work?
SAP 시스템을 운영하다 보면, 가끔 단일 테이블 또는 소수의 테이블에 대해서 DEV-QAS-PRD 시스템 사이, 또는 다른 SAP 시스템으로 데이터를 이관해야 하는 일이 생긴다. (테이블 복구, 테스트 데이터셋 필요, 데이터 정합성 맞추기 등등)
테이블 데이터를 이관 방법에 대해서는 여러가지 방법이 있는데, 여기서는 R3trans 를 통해 테이블 데이터를 이관하는 방법에 대해 설명한다.
여러 방법 중 R3trans 를 사용하는 방법은 다음과 같은 장점이 있다.
OS, DB 와 독립적(Independent) 이다.
따라서, 옮기는 시스템 사이에 OS, DB 차이가 있어도 이관이 된다. 또한 Oracle, HANA 관계없이 R3trans 만 있다면 가능하다.
(ECC/Oracle -> S4/HANA 이관도 가능하다.)
Export 조건을 설정할 수 있다.
전체 데이터 또는, 필요한 데이터에 대해서만 Export 가 가능하다.
클라이언트 번호를 변경하여 Import 가 가능하다.
R3trans 외 에도 다음과 같은 방법으로 테이블 데이터를 이관할 수 있다.
1. SAP CTS 를 이용한 테이블 엔트리 전송 (복사전송)
2. 마이그레이션 툴 사용
3. (오라클 DB의 경우) 오라클 export, import
4. (오라클 DB의 경우) 오라클 Data Pump expdp, impdp
Export 조건을 설정할 Control 파일을 작성한다. 작성 구문은 다음과 같다.
export
client = 'Export 시스템의 클라이언트'
file = 'Export 파일이 저장되는 위치'
SQL 조건 구문
개발시스템 300 클라이언트에서 ZTEST1 테이블 전체를 Export 하여, /usr/sap/trans/exp_test 에 덤프파일 ZTEST1.dump 저장
export
client = 300
file = '/usr/sap/trans/exp_test/ZTEST1.dump'
select * from ZTEST1
개발시스템 320 클라이언트에서 ZSET1, ZSET2, ZSET3 테이블 전체를 Export 하여, /SAP_NAS 에 덤프파일 ZSET.dump 저장
export
client = 320
file = '/SAP_NAS/ZSET.dump'
select * from ZSET1
select * from ZSET2
select * from ZSET3
운영시스템 100 클라이언트에서 ZPRD1 테이블의 ZFLAG = 'X' 인 값만 Export 하여, /SAP_NAS 에 덤프파일 ZPRD1_ZFLAG_X.dump 저장
export
client = 100
file = '/SAP_NAS/ZPRD1_ZFLAG_X.dump'
select * from ZPRD1 where ZFLAG = 'X'
품질시스템 210 클라이언트에서 ZQAS1 테이블전체를 Export 하여, /SAP_NAS 에 덤프파일 ZQAS1.dump 저장, Import 전에 ZQAS1 테이블의 모든 데이터를 삭제하고 Import 하도록 설정
export
client = 210
file = '/SAP_NAS/ZQAS1.dump'
delete from ZQAS1
select * from ZQAS1
Export Control 파일 SQL 구문은 명령이 아니므로 delete 구문은 Export 시스템의 데이터에 영향을 주지 않는다.
여기서 delete 구문은 Import 전에 Import 대상 시스템에서 이전 내용을 삭제할때 사용된다.
작성된 Export Control 파일을 사용하여, Export 를 수행한다.
R3trans -w <Export Log 파일 위치> <Export Control 파일 위치>
현재 프롬프트 위치에 로그파일 exp_test.log 를 남기고, 현재 위치의 컨트롤 파일 exp_test.ctl 를 사용하여 R3trans Export 수행
R3trans -w exp_test.log exp_test.ctl
현재 프롬프트 위치에 로그파일 exp_Z1.log 를 남기고, /usr/sap/trans/exp_test 위치의 exp_Z1.ctl 컨트롤 파일을 사용하여 R3trans Export 수행
R3trans -w exp_ZZ.log /usr/sap/trasn/exp_test/exp_Z1.ctl
Export 때와 마찬가지로, Import Control 파일을 작성한다. 구문의 다음과 같다.
import
client = 'Import 시스템의 클라이언트'
file = 'Import 할 파일의 저장 위치'
개발시스템 350 클라이언트에 /usr/sap/trans/exp_test/ZTEST1.dump 덤프 파일을 Import
improt
client = 350
file = 'usr/sap/trans/exp_test/ZTEST1.dump'
품질시스템 200 클라이언트에 /SAP_NAS/ZSET.dump 덤프 파일을 10만건 당 Commit 하여 Import
import
client = 200
file = '/SAP_NAS/ZSET.dump'
commit = 100000
작성된 Import Control 파일을 사용하여, Import 를 수행한다.
R3trans -w <Import Log 파일 위치> <Import Control 파일 위치>
R3trans -w imp_test.log imp_test.ctl