우리 회사 데이터베이스를 티베로로 변경하기
1단계 환경 구축 0 0 77,403

by 티베로 티베로 리플레이 [2017.05.09]


환경 구축 단계는 티베로를 기동하고 운영하기 위한 인프라 환경을 구성하고 티베로를 설치하는 단계로써 다음의 4가지 항목을 수행한다.

  • 1. 티베로 DBMS 엔진이 설치될 서버, OS, 네트워크 및 스토리지 구성
  • 2. 티베로 엔진 설치
  • 3. 외산 DBMS로부터 데이터 이관(Migration)
  • 4. 3rd Party 솔루션 연동 및 품질 개선

본 과정에서 중요한 점은 프로젝트 시작 전 POC 등을 통해 DBMS 사용 요건에 알맞은 사양을 정의하고 필요한 자원을 미리 확보해야 한다는 것이다.

또한 외산 DBMS와 호환되는 다양한 내부 시스템들이 티베로에서도 잘 호환되는지 모두 확인하는 등 티베로 사용 환경을 완벽하게 준비한 이후 본 단계를 시작해야 원활한 진행이 가능하다.

특히 3rd Party 솔루션의 경우 문제 발생 시 해결에 장기간이 소요되거나 해결 자체가 불가능한 문제들도 있을 수 있으므로 기존에 사용하던 솔루션들이 티베로와 완벽하게 호환이 되는지, 향후 티베로 버전 업그레이드 등 변경에 따른 제품 패치가 원활할 만큼 양 연구소간의 협력 관계가 튼튼하게 구축되어 있는지 등을 꼼꼼하게 사전에 확인하고 프로젝트 시작 전에 계속 사용 여부를 결정해야 한다.

소속 회사의 경우 POC 과정 중 외산 DBMS에 사용중이었던 암호화 솔루션에서 티베로와의 호환되지 않는 부분이 발견되어 티베로와 완벽하게 호환이 가능한 이글로벌 시스템의 Cubeone 제품으로 프로젝트 시작 전에 교체하였다.

그리고 모니터링 솔루션인 엑셈의 Maxgauge와 접근 통제/감사 시스템인 웨어벨리의 샤크라 제품 또한 일부 기능이 제대로 동작하지 않는 것을 POC 과정에서 발견하여 양 연구소간의 적극적인 협력 관계를 사전에 요구하여 외산 DBMS에서 동작하는 수준의 품질로 개선하는 작업을 프로젝트 시작 전 시작하여 본 단계에서 완료할 수 있었다.

위와 같은 사전 준비만 철저히 한다면 본 환경 구축 단계는 비교적 짧은 시간안에 큰 이슈 없이 진행이 가능할 것이다.

  • [그림 3-2] 환경 구축 단계에서의 티베로 전환 인프라 구성
  • 환경 구축 단계에서의 티베로 전환 인프라 구성

참고 1) 소속 회사는 2단계 [비호환 SQL 분석 및 개선 단계] 완료시점 까지는 업무 담당자 테스트 없이 리플레이를 통한 자동화 테스트만 진행하기로 정의 하였으므로 티베로 DBMS 설치 서버, 리플레이 PLAY 수행 서버 외에 별도의 서버는 불필요했다.

참고 2) 업무 담당자 테스트는 오픈 1개월 전 외산 DBMS와 연동되어 있던 개발 서버를 티베로로 연동한 이후 진행하였다(이는 오픈 1개월 전 시점에서 더 이상 외산 DBMS와 연동되어 있는 상태에서 어플리케이션을 변경/개발하여 오픈하는 것은 불가 능하다는 업무(개발) 제약을 의미한다).

참고 3) 만약 환경 구축 단계 이후 리플레이를 통한 자동 테스트와 함께 업무 담당자 수동 테스트도 동시에 진행하길 원한다면 본 단계에서 티베로와 연동하는 별도의 웹/와스서버를 준비하고 외산 DBMS와 연동하는 웹/와스서버와 소스를 동기화해야 한다.

앞에서 안내한 환경 구축 관련 필요 사항 외에 리플레이의 용이한 수행을 위해서는 그림 3-3과 같은 스토리지 추가 구성을 고려할 필요가 있다.

  • [그림 3-3] 티베로 리플레이 수행을 위한 스토리지 추가 구성
  • 티베로 리플레이 수행을 위한 스토리지 추가 구성

리플레이의 목표는 외산 DBMS에서 특정 시간 동안 수행된 SQL을 수집하고 수집을 시작한 시간의 데이터로 Migration되어 있는 티베로 DB에 수집한 로그를 반복 수행(그림 3-1 참고. 재현 > 분석 > 패치 > 재현 > 분석 > 패치…)하며 원하는 수준까지 엔진을 개선시키는 것이다.

따라서 1회 수집한 외산 DBMS 로그를 티베로 DB에는 수회~수십회 반복 재현을 하게 되는데 문제는 재현할 때마다 DML로 인한 데이터 변경이 발생하므로 그 다음 재현 시에는 외산 DBMS SQL 수집을 시작한 시간의 데이터로 다시 변경해 주어야 정확한 재현 테스트가 가능하다는 것이다.

만약 이 문제를 해결하기 위해 재현을 할 때마다 외산 DBMS로부터 Migration을 수행한다면 그에 따른 시간 소비가 매우 크므로 리플레이 재현에 큰 제약을 갖게 된다.

그러나 그림 3-3과 같이 동일한 Datafile의 복사본 및 그에 대응되는 컨트롤 파일을 추가 구성해둔다면 재현할 때마다 db shutdown > 컨트롤 파일 재생성 > db open with resetlogs의 수행으로 수집을 시작한 시간의 데이터로 돌릴 수 있으므로 간단하게 문제가 해결된다(상세방법은 하단을 참고한다).

1. REPLAY 재현을 위한 STORAGE 최초 구성 : REPLAY SQL 수집 시점의 외산 DBMS를 마이그레이션한 티베로 데이터 파일 1SET를 DD COPY하여 총 3SET의 데이터 파일을 구성한다.

2. STORAGE - 1차 재현 : 티베로 DBMS를 데이터 파일 SET #1을 통해 OPEN하고 수집 로그를 PLAY(재현)한다. - 이때 SET #1은 데이터 변경이 발생한다.

3. STORAGE - 2차 재현 : 1차 재현 시 발생한 이슈의 개선이 완료되면 데이터 파일 SET #2를 통해 티베로를 OPEN하고 PLAY(재현)한다. 그리고 동시에 SET #3을 SET #1로 DD COPY하여 1차 재현 시 변동된 데이터를 수집 시점으로 원복한다.

4. STORAGE - 3차 재현 : 2차 재현 시 발생한 이슈의 개선이 완료되면 데이터 파일 SET #1을 통해 티베로를 OPEN하고 PLAY(재현)한다. 그리고 동시에 SET #3을 SET #2로 DD COPY하여 2차 재현 시 변동된 데이터를 수집 시점으로 원복한다.

5. 앞의 3, 4 과정을 만족스러운 수준까지 반복 수행하며 엔진을 개선한다.

  • - 해당 강좌는 도서 " [우리 회사 데이터베이스를 티베로로 변경하기]"의 내용을 옮겼습니다.
  • - 해당 도서는 기간계 DBMS(DATABASE MANAGEMENT SYSTEM)를 티베로로 전환하는 실제 프로젝트를 수행한 실무자가 DBMS 전환 과정과 실제 적용 사례, 문제 해결 과정 등을 자세하게 설명하고 있습니다.

- 강좌 URL : http://www.gurubee.net/lecture/2975

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입