Friday, February 10, 2012
Retabbed
Login | Register
블로그
  Search
블로그 목록
블로그 아카이브
블로그 검색
MS SQL Server 2000 에서 2005으로 업그레이드 또는 마이그래이션
Location: Blogs불나방의 소프트 블로그    
Posted by: 불나방 2008-05-05 오전 1:51

서비스되고 있는 DB를 업그레이드 하는 일은 매우 신경이 쓰이는 일이다. 과정중에 뭔가 잘못되면 서비스가 중단되는 사태가 발생하기 때문이다. SQL 2000과 2005는 같은 기계에서 동시에 실행될 수 있는데 이것을 잘 이용하는 것이 방법이다. 직접적인 업그레이드는 잘못될 경우 거의 되돌리는 것이 불가능하므로 절대 하지 않는것이 좋다. 일단 업그레이드가 되면 다시 다운그레이드 하는것은 생각지도 못하는 복잡한 작업을 동반하며 그 결과도 그리 좋다고 장담하기 어렵다.

두개의 SQL을 한기계에 설치하는 것은 간단하다. 새로 설치하는 2005 서버를 새로운 이름의 인스턴스로 설치하면 된다. 즉 SQL서버의 기본 인스턴스 이름은 MSSQLSERVER인데 이 이름을 사용하는 인스턴스는 DB접속시 인스턴스 이름을 명시할 필요가 없다. 2005를 설치할때 기존 인스턴스를 업그레이드 할 수 있는데 이를 택하지 말고 새로운 인스턴스로 설치하는 것이다. 여기서는 편의상 MSSQLSERVER2005라 이름을 지었다고 가정한다.

다른 이름으로 설치를 하게되면 기존 프로그램의  DB접속시 서버이름을 명시할때 HostName\MSSQLSERVER2005 식으로 주면 된다. 즉 모든  DB접속 문자열을 다 수정해야 한다는 것이다. 물론 프로그램을 원칙대로 잘 설계 했다면 이 접속 문자열은 프로그램의 어디 한곳 또는  ASP.NET이라면 Web.config파일 안에 있을 것이므로 이것만 수정해주면 끝이다.

새로운 인스턴스로 2005를 설치했으면 기존 2000서버의 DB를 백업한후 2005에서 복원하면 된다. DB를 분리(Detach) 했다가 다시 연결(Attach)하는 방법이 빠른 방법이기는 하나 이는 기존 2000의 DB파일을 2005가 수정해 버리기 때문에 다시 원상복구가 안된다. 즉 다시 2000으로 Attach하는 것이 불가능 해진다. 가장 안전한 방법은 백업, 복원을 하여 2005에서 충분한 테스트를 수행한 후 안전하다고 판단되면 서비스를 잠시중단하고 DB의 최종 snapshot을 백업하고 복원 하면 된다. 서비스 중단 시간은 DB크기에 따라 다르지만 대략 5분내에 끝낼 수 있다.(snapshot은 우리말로 뭐라고 번역하는 거지? ㅠㅠ)

그리하여,,, 업그레이드된 서비스가 모두 제대로 잘 동작한다면 기존의 2000 서버를 업그레이드하여 기본 인스턴스를 2005로 사용하는 것도 방법이다. 방법은 설치 프로그램을 다시 수행하여 기존 인스턴스를 업그레이드 하는 것으로 설정하여 업그에이드를 실시하면 된다.

Permalink |  Trackback
Terms | Privacy | host
Copyright 2005 Code99.NET
 | 아티클 | 자료실 | 블로그 | Q&A | 관리자에게