류짱:Beyond MySelf

SQL Server를 실행하는 컴퓨터 간에 데이터베이스를 이동하는 방법 본문

Microsoft/MS SQL

SQL Server를 실행하는 컴퓨터 간에 데이터베이스를 이동하는 방법

リュちゃん 2011. 11. 12. 12:15

SQL Server를 실행하는 컴퓨터 간에 데이터베이스를 이동하기 위해서는 많은 준비가 필요하며 다양한 방법이 있을 듯 합니다만  최근에 제가 진행한 SQL Server 마이그레이션 방법을 정리 해 봅니다.

[환 경]
현 운영 서버(A) : Windows Server 2003 IA64 / MS SQL Server 2005 Failover Cluster
신규 운영서(B) : Windows Server 2008 / MS SQL Server 2005 Failover Cluster

[시나리오]
신규 서버에는 이미 Cluster가 설치 되어 있고 클러스터 관리자에서 SQL 그룹을 만들고 해당 그룹에 모든 디스크 리소스가 추가 된 상태라고 가정 함
신규 서버가 현재 운영 중인 SQL Server 장애 조치 클러스터 네트워크 이름과  서비스 IP를 사용할 예정이라고 가정 함

1. 현 운영 서버의 모든 database  백업 및 SQL Server 구성 확인

가. SQL Server 데이터베이스  시스템 버전 확인 
      Select @@version
나. ServerName, MachinName, InstanceName, Edition, ProductVersion, ProductLevel 확인
      SELECT
      SERVERPROPERTY('ServerName') AS ServerName,
      SERVERPROPERTY('MachinName') AS MachinName,
      SERVERPROPERTY('InstanceName') AS InstanceName,
      SERVERPROPERTY('Edition') AS Edition,
      SERVERPROPERTY('ProductVersion') AS ProductVersion,
      SERVERPROPERTY('ProductLevel') AS ProductLevel,
      GO

다. OS 환경 확인
     msinfo32

라. 데이터베이스 시스템 구성 확인
     sp_helpdb;

마. 데이터베이스별 파일 구성 확인
     select * from sys.master_files;

바. Database 구성 정보 확인
     sp_configure; 실행 시 모든 구성정보가 보이지 않는다면 명령어 실행 
     sp_configure 'show advanced options','1';
     reconfigure;

사. 암호 전송 스크립트 실행 및 정보 저장
    
http://support.microsoft.com/kb/918992

아. SQL Server 에이전트에서 실행 중인 작업 확인 및 스크립트 생성
   
http://support.microsoft.com/kb/314546

자. 기타 Linked server 나 다른 필요 사항 확인


2. 엑셀을 이용하여 '마' 항목에서 확인한 데이터베이스 Attache 스크립트 작성
    위 '마' 항목에서 확인 한 데이터베이스 파일 정보를 바탕으로 엑셀의 CONCATENATE 함수를 이용하여 아래와 같이
    스크립트용 파일 준비

=CONCATENATE(F,G,H,I,J,K,L,M,N)"
EXEC sp_attach_db @dbname=N'test',@filename1 = N'G:\test.mdf',@filename2 = N'F:\LogData\test_log.LDF' 

 

3. 현재 운영 중인 SQL Server 장애 조치 클러스터 이름 및 IP를 임시로 변경
   
http://support.microsoft.com/kb/244980

4. DB 파일 copy를 위해 현 운영 서버의 SQL Server 리소스만 offline 
   만약 SQL sever 그룹 전체를 offline 할 경우 운영 서버에서 사용 중인 Data를 copy 할 수 없기 때문에 주의^^

5. Robocopy 나 xcopy 혹은 다른 방법을 이용하여 원본 서버(A)에서 신규 서버(B)로 데이터 베이스 파일 copy
   robocopy 명령어를 이용한 파일 복사
  
http://ryuchan.kr/entry/robocopy-명령어를-이용한-파일-복사

6. 파일 복사 완료 후 신규 서버에 SQL Server 장애조치 클러스터 구성 
    Window server 2008R2 환경에 MS SQL Server 2005 설치 시 약간의 주의가 필요 함(추가 블로그 포스팅 예정)

7. SQL Server 장애조치 클러스터 설치 완료 후 '2번에서 작성한 attache 스크립트를 이용하여 데이터베이스 attache

8. '1번 - 사, 아' 에서 생성 된 로그인 및  암호 전송 스크립트와 작업 스크립트 실행

9. 신규 서버의 Datatabase 적합성 확인 및 '1-바'에서 확인 한 Configuration 값 확인 및 설정

[참고 자료]
SQL Server를 실행하는 컴퓨터 간에 데이터베이스를 이동하는 방법
http://support.microsoft.com/kb/314546

SQL Server 2005 인스턴스 간에 로그인 및 암호를 전송하는 방법
http://support.microsoft.com/kb/918992

감사합니다. ^^