2022/06/29 - 업무 기록

SainTo·2022년 6월 29일
0

업무기록

목록 보기
2/3

오늘의 업무 기록 (나중에 추가되면 수정해야지)

어제, 한 Site에서 DB Trigger가 제대로 동작하지 않는다는 연락을 받았다.
(특정 데이터가 변경되면, Interface DB Table에 데이터를 입력해주는 방식이었다.)

VPN등을 이용하여 DB를 접속할 수 없는 Site였기 때문에 담당자에게 데이터를 부탁해서 데이터를 받은 후, 본사환경에 있는 Trigger를 참조해서 무엇이 문제인지 살펴보았다.

처음에는 SELETE할 때 조건이 안맞아서 데이터를 못가져오지 않나 싶었다.

받은 데이터를 천천히 살펴보니 문제가 없었다. 눈을 씻고 찾아봐도...

Trigger에 물려있는(?) Table은 다행히 Hist Table을 가지고 있어서 해당 데이터를 보내달라고 요청 후, History를 파악하는데.. 분명 Interface Trigger에 걸려야 하는 것이 걸리지 않고 있었다.

이리저리 보다가 이상한 점을 발견했는데... Interface Table에 기록이 남은 부분에서 다른 Column의 Data값이 넘어가지 않았다.

예를 들어서 A / B / C 컬럼이 있고, Trigger에서는 A / B 컬럼이 변경될 때 Interface Table에 데이터를 저장한다고 하자.

Tigger의 PL/SQL에서는 A / B 변경 시 Flag를 'Y'로 Setting하는 로직이 분명히 존재하였으나.

A 변경 시에만 Interface Table에 데이터를 저장하고, B 변경에는 데이터가 저장되지 않았다.

심지어 A 변경 시에 Interface Table에 B 컬럼의 값도 같이 저장하도록 되어 있었는데 현장에서 받은 데이터에서는 B 컬럼이 값이 누락되어 저장되어 있었다.

그래서 현장에 원격 요청을 했는데..

현장에서 답변이 오기를 DB Dump를 하는 과정 중 최신화가 누락된 Trigger가 있었고, 현재 문제가 되는 Trigger가 최신화가 누락되어 있었다는 이야기였다.

조금 허무했다.. 본사 환경과 현장 환경이 다를 수 있다는 생각을 전혀 못했기 때문에..

다음에 비슷한 이슈가 오면 데이터를 먼저 확인하기 보다는 현장의 DB가 최신화되어 있는지 먼저 확인할 필요가 있어보인다.

profile
발전 하려는 개발자

0개의 댓글