SSMA를 써보고 나서
SSMA(Sql Server Migration Assistant)를 사용해볼 기회가 생겼다. 이글은 SSMA를 8.5일 사용해본 사용기이다.
SSMA
SSMA는 Sql Server Migration Assistant의 약자로 MS에서 배포한다. 3년전에 Java -> C# Converter
(정확한 이름이 생각 안난다.)를 써본 경험으로 분명 MS에서 이런걸 만들어서 배포했을 것이라고 짐작했다.
Java -> C#
의 경우 만족할만한 결과였다. 대체로 패턴이 비슷했기 때문에 Generics나 몇가지들만 손으로 수정해 주면 됐었다. 게다가 툴이 자동으로 제공하지 못하는 부분은 '나 못하겠다'라고 코멘트를 남겨주기 때문에 신뢰할 수 있었다.
SSMA를 사용하려면 Sql Server Express Edition으로는 안된다. 그래서 저는 Developer Edition을 사용했다.
SSMA는 두 가지 프로그램으로 구성된다. 하나는 'SSMA 2008 for Oracle'라는 툴이고 다른 하나는 Sql Server의 sysdb영역에 function이나 procedure형태로 설치되는 'SSMA 2008 for Oracle Extension Pack'이다.
결과
윈도우를 준비하고(VMware - 물론 윈도만 깔린 깨긋한 버전을 가지고 다님) Sql Server를 설치하기 까지(처음에는 Express Edition을 설치했으나 최종적으로 Developer Edition을 설치함) 이틀이 소요됐다. 역시 안하던 걸하려니 삽질을 하게 된다. Sql Server를 세번이나 설치했다.T_T;;
(여기까지 2일)
SSMA를 익히고 DB schema를 옮기는데 하루를 들었다. DB schema는 별로 손댈게 없었다. production 환경에서 'SSMA 2008 for Oracle Extension Pack'이 필요하지 않도록 'SSMA 2008 for Oracle Extension Pack'에서 제공하는 function를 제거하는 것까지 포함해서 하루였다.
(여기까지 3일)
데모 데이터를 이전하는데에도 하루가 걸렸다. SSMA에서도 Data Migration을 지원하긴 하지만 Oracle에 'Tester 어쩌구'하는 것을 설치해야 하는 듯 싶었다. 그래서 groovy gsql로 간단히 제작하여 이전하였다. 역시 groovy gsql은 강력하다. 약 30개 테이블의 데이터를 이전하는 스크립트를 작성하는데 6시간만에 만들었다. groovy를 자주 사용하면 4시간 정도로 단축할 수도 있을 것 같은데 잘 쓸일이 생기지 않아서 할 때마다 헤메고 있다.
eclipse groovy plugin의 groovy editor도 많이 좋아졌다. 이제 조금은 쓸만해 졌다. 2년안에 안정적으로 사용할 수 있을 듯 싶다.
(여기까지 4일)
그리고 간단한 function을 포팅하는데 반나절 정도 걸렸다.
(여기까지 4.5일)
그리고 마지막으로 procedure는 오래 걸렸다. procedure자체가 2000라인을 넘는 데다가 Dynamic sql은 SSMA가 전혀 포팅을 해주지 못한다. 그래서 하나하나 손으로 작업하고 변환하는데 4일 걸렸다. 언제나 지루하고 기계적인 일은 의욕을 감퇴시킨다.
(여기까지 8.5일)
사수분이 2주면 될 것이라고 했는데 처음 지켰다. 보통 사수분이 이틀이라고 말하면 1.5배인 사흘이 걸렸었는데 처음으로 기한을 지켜본다.
시간관계상 간단한 테스트밖에 하지 못했기 때문에 완벽히 포팅했다라고 할 수 없었다. 그부분을 확인해보지 못한 것이 좀 아쉽다.
2001년에 Sql Server를 처음이자 마지막으로 써본 경험에 비하면 굉장한 생산성이다. TSQL도 처음 써봤을 뿐만아니라 SQL Server의 데이터 타입, 내장 함수등등이 거의 아는게 없는 상태에서 빨리 끝낼 수 있어서 나름 기분이 좋았다.