-
SAP BC 고군분투 EP. 1 -- System Copy(Oracle)SAP BC 2021. 10. 29. 22:00
BC 업무를 하다보면 가장 많이 하는 업무가 바로 QA 리뉴얼이다.
특히나 파트너사에서 근무하는 입장에서 정말 다양한 OS 및 DB 그리고 버전에 따라서 조금씩 다르다보니 정말 할 때 마다 새로운게 화가 난다.
그 중에서 가장 스탠다드한 DB인 Oracle 시스템 카피에 대해 설명하고자 한다.
1. 시스템 카피란 무엇인가?
시스템 카피란 기존 운영하고 있는 시스템을 그대로 다른 시스템으로 붓는 행위를 뜻한다.
일반적으로 QA 서버 리뉴얼을 위해 가장 많이 하게 된다.
--> 비슷한 목적(?)으로 클라이언트 카피가 있는데, 사실 클라이언트 카피보단 시스템 카피를 난 좀 더 선호한다. 일반적
여기서 중요한건 A라는 서버에 데이터를 B로 붓는 행위로 같은 데이터를 같지만 시스템적으로 볼 떈 결코 A와 B는 같지 않다는 것이다.
--> 같다면 그것은 복구이며, 카피가 아니다.
2. 유의 사항
1. SID 변경
2. 컨트롤 파일 수정
3. DB 접속 방법에 따른 후속 조치
사실 1,2번은 쉽게 초보자도 따라할 수 있지만 3번 부분에서 많은 시행착오를 거친다.
Oracle 12c 이상부터는 강제적으로 SSFS 방식으로 접속을 해야하며, 해당 부분은 나중에 다른 글로 다뤄보겠다.
그에 따른 OPS 방식으로 접속하는 시스템 카피 방식으로 설명
4. 데이터 이관 속도
운영서버 데이터는 일반적으로 TB 단위이며 그에 따른 이관 시간이 매우 길다.
5. 데이터 및 아카이브 파일 권한 및 소유자 확인
6. 기존 컨트롤 파일 삭제 후 복구 시작
3. 시스템 카피 시작
1. 컨트롤 파일 생성
--> 일반적으로 컨트롤 파일안에 데이터 파일에 대한 정보가 담겨있고, DB를 오픈할 떄 해당 컨트롤 파일을 읽어서 각 데이터 파일들을 인식한다. 그렇기 때문에 우리는 컨트롤 파일에 내용을 Source 서버 데이터 파일에 대해서 Target에 맞게 경로를 수정해야 한다.
※일반적으로 소스 서버에서 컨트롤 파일을 생성해서 타겟 서버에 맞게 맞춘다.
Target Server
SQL : alter database backup controlfile to trace as '/oracle/renewal.sql';
--> 이때 반드시 확인 사항
--
2. STMS 분리
QA 서버를 리뉴얼 할 경우 STMS를 묶은 것을 제거 후 작업해야 한다. STMS 제거는 도메인 컨트롤러에서 작업이 가능하며, 000 클라이언트 DDIC 계정으로 작업한다.
---> 반드시 QA를 제거 후 개발과 운영서버를 묶는다.
3. SAP 서비스 종료
시스템 카피 타겟 서버를 종료 한다.
Target Server
SAP 종료 - <sid>adm
stopsap r3
cleanipc <nr> remove
stopsap sapstartsrv
DB 종료 - ora<sid>
sqlplus "/as sysdba"
SQL : shutdown immediate;
SQL : exit
lsnrctl stop
4. 데이터 이관 시작
재생성한 컨트롤 파일에 맞게 Source 데이터파일을 Target 서버에 이관한다.
--> 데이터 파일을 백업한 시점에 아카이브파일을 1~3개까지 준비한다. 만약 더 필요 시 그때 갖고와도 된다.
5. 복구 시작.
sqlplus >> startup nomount;
sqlplus >> @[fileName].sql
sqlplus >> shutdown immediate;
sqlplus >> startup mount
항상 깔끔하게 재시작을 습관화한다.
sqlplus >>recover database using backup controlfile until cancel;
sqlplus >>auto
다음처럼뜨면 정상적으로 아카이브 먹인것을 확인
sqlplus >>alter database open resetlogs;
--> 리셋로그를 하는 이유는 오라클은 시퀀스 번호로 순서대로 물고 올라옵니다. 하지만 실제 mirrlog 및 orirog에 있는 시퀀스 번호와 복구한 번호가 다르기 때문에 로그를 초기화합니다.
sqlplus >>alter tablespace psaptemp1 add tempfile '/oracle/<SID>/sapdata5/temp_3/temp.data3' reuse autoextend off;
6. OPS 유저 생성
OPS는 SAP가 DB에 다이렉트로 접속할 수 있도록 DB 접속정보를 담고 있는 테이블로 해당 유저에 저장된 비밀번호로 SAP는 DB에 접속할 수 있다.
sqlplus >>create user "OPS$ORA<SID>" default tablespace SYSTEM temporary tablespace PSAPTEMP1 identified by externally;
sqlplus >>create user "OPS$<SID>ADM" default tablespace SYSTEM temporary tablespace PSAPTEMP1 identified by externally;
--> 유저를 생성하면 반드시 externally 속성인지 확인
sqlplus >>grant connect,resource,sapdba to "OPS$<SID>ADM";
sqlplus >>grant connect,resource,sapdba to "OPS$ORA<SID>";
--> SAP 유저가 DB에 접속할 수 있도록 권한 부여
CREATE TABLE "OPS$<SID>ADM".SAPUSER(USERID VARCHAR2(256), PASSWD VARCHAR2(256));
insert into "OPS$<SID>ADM".SAPUSER values ('SAPSR3','pass');
--> 해당 테이블에 DB 스키마 패스워드를 넣은 상태로 생성
기존 OPS$유저 삭제여부는 맘대로
7. 접속확인
R3trans -d의 값이 000으로 떨어지는 것이 가장 중요하다.
그런데 만약 윈도우의 경우 DB는 연결되어 000되지만 디스패쳐가 죽을 수 있으며 그럴 경우 Note 50088 확인
이정도면 카피는 완료했고, 그 이후 후속작업으로 SAP상에서 해주는 건 별거 없다.
1. SAP*로 접속해서 라이선스 갱신 --> 만약 파라미터로 막았을 경우 login/no_automatic_user_sapstar 파라미터값 수정
2. STMS 재설정 및 배치작업 중지
3. 아카이브백업 실행
4. 대문 변경 및 필요 유저를 제외한 나머지 유저 잠금처리 및 권한 설정
만약 궁금한게 있으면 댓글달면 아는 범위내로 글을 남기겠다.
'SAP BC' 카테고리의 다른 글
SAP BC 고군분투 EP. 6 - TP Hang 처리 (0) 2022.03.09 SAP BC 고군분투 EP. 5 - SP Upgrade Issue : Inactive Object 처리 (0) 2022.03.09 SAP BC 고군분투 EP. 4 - SP Upgrade Issue : GuI 종료로 인해 큐가 끊겼을 때 (0) 2022.03.09 SAP BC 고군분투 EP. 3 -- Time Sync 맞추기 (0) 2022.03.09 SAP BC 고군분투 EP. 2 -- ADS 간단한 테스트 및 오류 확인 (0) 2021.10.29