SAP 품질 시스템 재구성 가이드 (시스템 카피) 에 이어서, 클라이언트 카피 방법에 대해서 기록한다.
품질 재구성에 대한 필요성과 목적, 재구성 방법 등에 대해서는 아래 글의 서론을 참조하기 바란다.
이번 글에서는 품질을 재구성하고 최신화하는 방법 중, 클라이언트 카피 방법에 대해서 기록한다.
클라이언트 카피는 다음과 같이 두가지 방식이 있다.
리모트 클라이언트 카피 (Remote Client Copy)
Tcode : SCC9 / SCC9N (신규)
리모트 클라이언트 카피는 말 그대로 원격 연결을 통해 클라이언트를 카피하는 방법이다. 같은 서버가 아닌 다른 서버로 카피를 할때 사용한다.
시스템 카피와는 다르게, 클라이언트 만을 카피하므로 클라이언트 종속적인 데이터만 카피가 된다.
로컬 클라이언트 카피 (Local Client Copy)
Tcode : SCCL / SCCLN (신규)
로컬 클라이언트 카피는 자기 시스템 내에서 클라이언트를 카피할때 사용한다. 같은 시스템 내에서 추가로 클라이언트를 생성할때 사용하며 같은 로컬이기에 속도가 빠르다. 역시 클라이언트 카피이므로 클라이언트 종속적인 데이터만 카피가 되지만 어차피 같은 시스템이기에 클라이언트 독립적인 데이터를 전부 공유한다.
S/4HANA 1909 부터 신규 클라이언트 복사 도구 SCC9N 과 SCCLN 이 추가 되었다. 주요 차이점으로는 속도 개선과 더불어 타겟 클라이언트에 접속하지 않고도 복사 수행이 가능하다.
자세한 사항은 다음 Notes 에서 확인 가능하다.
SAP Notes 2962811 - New Client Copy Tool: General Information
여기서는 기존 SCC9 을 사용하여 복사를 한다.
리모트와 로컬은 매우 비슷한 방식으로 진행되기에 리모트 카피 방식만 안다면 로컬 카피도 쉽게 진행할 수 있다.
이 글에서는 리모트 클라이언트 카피에 대해서만 설명한다.
이하 운영 시스템은 PRD, 품질 시스템은 QAS 으로 명칭
Remote Client Copy 는 DB 사이즈에 따라 다르지만 기본적으로 상당한 시간이 소요된다.
이를 해결 하기 위해 사전에 클라이언트 복사 툴의 최적화 패치나 개선점에 대한 Notes 를 확인하여 적용하는 것이 좋다.
추후 관련 Notes 들에 대해서 올리도록 하겠다.
QAS 에 신규 클라이언트를 생성한다.
클라이언트 생성 전, 이전에 없던 새로운 클라이언트 번호라면 시스템 논리 이름 (Logical System Name) 을 먼저 생성해야 한다.
시스템 논리 이름 생성
Tcode : BD54
-> 신규 엔트리 (New Entries)
-> <신규 논리 시스템 이름과 설명 입력 후, 생성>
신규 클라이언트 생성
Tcode : SCC4
-> Display->change (Ctrl+F1)
-> 신규 엔트리 (New Entries)
-> 신규 클라이언트 번호와 이름, 도시, 표준 통화를 입력한다.
-> 신규 클라이언트를 세부 조회하여 내부 옵션을 설정하고 저장한다.
신규로 생성한 클라이언트는 생성된 계정이 없으므로, sap* 계정으로만 접속할 수 있다.
따라서 sap* 계정에 로그인할 수 있도록 풀어둔다.
Tcode : RZ10
-> login/no_automatic_user_sapstar
-> set 0
해당 파라미터는 서비스 재시작이 필요하다.
✅ QAS 신규 클라이언트 로그인하여 수행
소스 시스템(PRD) 과 타겟 시스템(QAS) 사이의 RFC 연결을 설정해야 한다.
해당 RFC 연결을 통해 데이터가 복사된다.
RFC 연결은 QAS 시스템에서 생성하며, 로그온 계정은 DDIC 또는 슈퍼 어드민 계정으로 설정한다.
✅ QAS 신규 클라이언트 로그인하여 수행
클라이언트 카피 작업을 시작하기 전, 테스트 복사를 수행하여 카피 오브젝트들에 대해서 점검한다.
테스트 실행 시, 오류가 발생하는 오브젝트들에 대해서 따로 기록을 하여 실제 작업에서 제외시킬지 결정할 수 있다.
Tcode : SCC9
-> Target Client : <자동으로 현재 접속한 QAS 클라이언트 지정>
-> Selected Profile : SAP_ALL
-> Source destinat. : <1-3 에서 생성한 RFC 목적지>
-> Test run : 체크
-> 매뉴 탭 오른쪽 Pararllel Processes (Shift+F1) : <서버 리소스를 고려하여 설정>
-> Schedule as Background Job 클릭
-> 백그라운드 서버 : <클라이언트 카피가 수행될 서버 지정>
-> Immediately : 바로 수행한다면 체크
-> No Printer Dialog : 체크 (SCC3 에서 로그 확인)
-> 작업일정 클릭
-> 선택 옵션 Review 확인 후, 작업 시작
✅ QAS 신규 클라이언트 로그인하여 수행
1-4 테스트 수행 정보와 개발자/사용자 요청 등에 의해 클라이언트 카피에 제외될 테이블을 설정한다.
보통 Log 성 테이블, 임시용도 테이블, 테스트시 오류가 나는 테이블에 대해서 복사 제외를 한다.
Tcode : SCC9
-> 상단 매뉴탭 Edit
-> Expert Settings
-> Erpert Settings 메뉴탭 중 Table 선택
-> 복사 제외할 테이블 입력
PRD 클라이언트를 품질로 카피하기 전, QAS 에 충분한 여유 공간이 있는지 확인해야 한다.
Oracle DB 의 경우
QAS PSAPSR3, PSAPSR3USR 테이블스페이스의 여유공간을 확인한다.
대략적으로, PRD PSAPSR3, PSAPSR3USR 테이블스페이스 사용량의 70~80% 의 크기가,
QAS PSAPSR3, PSAPSR3USR 테이블스페이스에 여유가 있어야 한다.
또한 PSAPSR3<BasisSP>X 테이블스페이스에도 약간의 여유공간이 있어야 한다.
PRD PSAPSR3 테이블스페이스 사용량이 1TB 라면, QAS 에는 최소 700~800GB 정도의 여유 공간이 있어야 한다. PSAPSR3USR 의 경우도 마찬가지다.
이 때, 보다 정확한 사용량/ 여유량을 확인하기 위해서 PRD 와 QAS 시스템의 전체 테이블에 대해서 Reorg 를 진행한다면 불필요한 스토리지 낭비를 막을 수 있다.
Reorg 방법에 대해서는 아래 글을 참조한다.
(❗❗❗❗ Oracle DB 의 경우, Archive Log FUll 에 대한 대책이 있어야한다.)
Test Run - Resource check 로 대략적인 필요 공간을 확인할 수 있다. 물론 해당 데이터도 정확한건 아니기 때문에, 해당 데이터를 참고하여 QAS 여유공간을 확보하는 것이 중요하다.
HANA DB 의 경우
QAS /hana/data/<SID> 의 공간이 충분한지 확인한다.
Oracle DB 의 경우와 마찬가지로 PRD 사용량의 70~80% 정도의 크기가 QAS 에 여유 공간으로 있어야 한다.
Tcode : SCC8
-> Selected Profile : SAP_USER
클라이언트 익스포트 티코드에서 SAP_USER 프로파일로 현재 QAS User 정보를 익스포트한다.
이때, Export CTS 번호는 따로 기록해둬야 한다.
QAS 와 PRD User 정보가 다르다면 해야하는 작업
✅ QAS 신규 클라이언트 로그인하여 수행
Tcode : SCC9
-> Target Client : <자동으로 현재 접속한 QAS 클라이언트 지정>
-> Selected Profile : SAP_ALL
-> Source destinat. : <1-3 에서 생성한 RFC 목적지>
-> Test run : 체크 안함
-> 매뉴 탭 오른쪽 Pararllel Processes (Shift+F1) : <서버 리소스를 고려하여 설정>
-> Schedule as Background Job 클릭
-> 백그라운드 서버 : <클라이언트 카피가 수행될 서버 지정>
-> Immediately : 바로 수행한다면 체크
-> No Printer Dialog : 체크 (SCC3 에서 로그 확인)
-> 작업일정 클릭
-> 선택 옵션 Review 확인 후, 작업 시작
위에서도 서술 했듯이, Remote Client Copy 는 DB 사이즈에 따라 다르지만 상당한 시간이 소요된다.
Tcode : SCC3
-> 매뉴탭 All Client
-> <신규 생성 QAS 클라이언트 선택>
-> 진행 중인 클라이언트 카피를 더블클릭하여 Log 확인 가능
리모트 클라이언트 카피가 성공적으로 종료되었다면, 이제 후속작업을 진행해야 한다.
시스템 카피에 비해서 리모트 클라이언트 카피 후, 사후 작업의 양은 조금 적다.
Tcode : SICK
초기 일치성 검사 확인
Tcode : SE38
-> RKEDRCHECK 레포트 실행
-> check in all clients 체크 후, 실행
SCC4 설정 풀기
-> Tcode : SCC4
-> Automatic recording or changes
-> Changes to repository and cross-client customizing allowed
-> Protection level 0: No restriction
SE06 설정 풀기
-> Tcode : SE06
-> System Change Option
-> Global Setting : Modifiable
-> 상단 매뉴탭 Edit
-> Software Components Modifiable
-> Namespaces Modifiable
STMS 도메인에 접근해야 하기 때문에 DEV 000 클라이언트로 접속해야 한다.
TMS 구성 환경에 따라 각 시스템에 맞게 설정한다.
또는 기존 구성본을 참고하여 설정한다.
QAS 전체 유저를 삭제한 다음, 사전준비 1-4 에서 Export 받은 유저를 Import 한다.
기존 유저 삭제
-> Tcode : SU10
-> DDIC 을 제외한 전체 유저 선택 후 삭제
유저 Import
-> Tcode : STMS
-> 1-4 에서 Export 한 CTS 를 QAS Import Queue 에서 ADD 하여 Import 한다.
-> Import 완료 후, Tcode SCC7 이동
-> SCC7 Post Client Import 수행
Tcode : SE61
-> Document Class : General text (TX)
-> Document Name : ZLOGIN_SCREEN_INFO
-> Change
만약 ZLOGIN_SCREEN_INFO 수정이 되지 않는 다면, 삭제 후 재생성
Tcode : RZ10
Profile : DEFAULT
Parameter : login/system_client
Tcode : SXMB_ADM/ SXMB_ADMIN
-> Administration
-> Schedule Delete Jobs
-> 기존 스케줄된 배치잡 확인 후, 없다면 등록
-> Schedule Delete Job for XML Messages : 체크 및 시작일자, 주기 설정
-> Schedule Delete Job for History Entries : 체크 및 시작일자, 주기 설정
-> 배치잡 등록 확인 후, 기존 배치잡 삭제
시스템에서 PI, PO 를 사용한다면,
아래 3-11, 3-12, 3-13 작업을 해야 한다.
Tcode : SXMB_ADMIN
-> 메뉴트리 Configuration
-> Configuration Data (Intergration Engine)
-> 상단 메뉴탭 Edit
-> Change Selected Configuration data
-> Corresponding Integ. Server : <QAS dest 로 변경>
✅ PI 시스템에 로그인하여 설정
Tcode : SM59
-> HTTP Connections to ABAP System
-> <QAS 연결 RFC 선택>
-> Longon & Security 에서 클라이언트를 신규 클라이언트로 변경하고, User 패스워드를 입력하여 저장한다.
시스템에서 PI, PO 를 사용한다면, 해당 작업을 해줘야 한다.
PI/PO Process intergration Tools 접속
Url : http://<PI/PO IP 주소>:<HTTP 포트번호>/dir
-> System Landscape Directory
-> Admin 계정 로그인
-> Business System
-> Filter : QAS 시스템 검색
-> 검색된 QAS 시스템 선택
-> Integration
-> Technical System - Change
-> Clint 변경 후 Save
-> QAS 시스템 Details 에서 한번 더 Save
PRD Number Range 를 QAS 로 내려준다.
Tcode : SE09
-> CTS 신규 생성
-> 복사 전송
-> CTS 이름과 목적지 설정
-> 해당 CTS 편집
-> R3TR/ TABU/ NRIV 입력 후 엔터
-> 옆에 키 버튼 클릭, 키값을 *
또는 <PRD Client 번호>*
입력 후 저장
-> 해당 CTS 릴리즈
-> 품질 임포트 큐에서 위 NRIV CTS 추가 후, Import
SCC4 설정 풀기
-> Tcode : SCC4
-> No changes allowed
-> No Changes to repository/cross-client customizing objects
-> Protection level 1: No Overwriting
SE06 설정 풀기
-> Tcode : SE06
-> System Change Option
-> Global Setting : Modifiable
-> 상단 매뉴탭 Edit
-> Software Components Not Modifiable
-> Namespaces Not Modifiable
클라이언트 카피 이후, 기존에 클라이언트는 사용하지 않는다면 삭제하여 공간을 확보해 두는 것이 좋다.
보통 초기 프로젝트 때를 제외하면 품질에 여러 클라이언트를 운영하진 않는다.
✅ QAS 삭제할 클라이언트 DDIC 계정 접속
Tcode : SCC5
-> T000에서 엔트리 삭제 체크
-> 백그라운드 수행
만약 QAS 에서 클라이언트 번호를 순환사용해서, 다음에 다시 사용할 클라이언트 번호라면, T000 엔트리 삭제는 체크하지 않아도 된다.
클라이언트 삭제 완료 후, 전체 테이블에 대해서 Reorg 를 수행해주면 여유공간 확보에 도움이 된다.