2007~2011/SQL Server2009. 6. 15. 00:01

SQL Server 2000 SP3 (8.00.977) 환경에서 SQL Server 서비스를 중지한 뒤 시스템 데이터베이스, 사용자 데이터베이스 모두 MDF, LDF 파일을 복사하여 다른 머신에 설치된 MDF, LDF 파일과 REPLACE 하여 서비스를 살려보고자 합니다. Backup, Restore 과정이 아닌 file copy 방법으로 시스템 데이터베이스까지 모두 옮겼을 때 문제가 될 만한 점이 없을까요? 


[시나리오]
SQL2000v1 인스턴스에는 LAIGO 데이터베이스가 생성되어 있습니다. 서비스를 중지한 상태에서 시스템 데이터베이스와 사용자 데이터베이스의 데이터 파일(MDF,LDF)을 다른 머신의 SQL2000v2 인스턴스로 이전하고자 합니다. 단, 백업, 복원 방법이 아닌 FILE REPLACE 방법으로 이 작업을 진행합니다.


[작업과정]
1. SQL Server 설치
Virtual PC 를 사용하여 2개의 가상 서버를 만들었습니다. 두 대 모두 SQL Server 2000 SP3 (8.00.977)을 설치합니다.
SQL2000v1 인스턴스에 LAIGO 데이터베이스를 만듭니다. 로그인 계정 LAIGO도 만들어 놓습니다.




2. SQL 서비스 중지 및 데이터베이스 파일 복사
두 인스턴스 모두 SQL 서비스를 중지하고 SQL2000v1 의 데이터베이스 파일을 모두 SQL2000v2 로 옮겨 REPLACE 합니다. (tempdb 는 옮기지 않아도 자동 생성됩니다)


3. SQL 서비스 시작
다른 머신에 있는 MDF, LDF 파일이 복사된 SQL2000v2 인스턴스를 시작해 봅니다.

서비스가 정상적으로 실행됩니다.
Administrator 계정으로도 잘 접속이 되며, syslogins sid 값 또한 동일합니다. sp_configure 정보 또한 모두 동일합니다.
시스템 데이터베이스가 정상적으로 옮겨왔기 때문입니다. 




SOURCE 인스턴스와 DESTINATION 인스턴스간에 시스템 데이터베이스, 사용자 데이터베이스가 위치한 경로로 동일했고 설치한 에디션, 서비스팩, 누적 업데이트 버전 또한 동일한 환경입니다.

특별히 문제가 될 만한 side effect 는 없어보입니다. 제가 생각하지 못한 부분이 있을까요?
이럴 때 덧글에 조언을 남겨주는 센스가 필요합니다. 네? 

아래는 포스팅 후 업데이트 된 내용입니다.
C:\Program Files\Microsoft SQL Server 폴더를 그대로 OVERWRITE 하는 방법도 사용한다고 합니다. 물론 Registry 및 기존 바이너리 백업은 필수입니다.

그리고 LEGATO 클러스터 환경에서 Passive Node 를 교체할 때도 이런 방법을 사용할 수 있습니다. 


[참고자료]
사용자 데이터베이스 이동 (분리/연결)
http://laigo.kr/60

SQL Server 2000 시스템 데이터베이스 복구
http://laigo.kr/37

시스템 데이터베이스 이동 (msdb,model,tempdb)
http://laigo.kr/77


작성자 : Lai Go / 작성일자 : 2009.06.14

Posted by Lai Go