출처 : http://blog.naver.com/jicany/140053701788

 목차

   데이터 이동방법

[1/2] SQL Server 2000 (2005) 에서 SQL Server 2008 로 데이터 이동

        1. [마법사] 풀백업파일로 이동시키는 방법

        2. [마법사] MDF,LDF 파일을 직접 이동시키는 방법

 

[2/2] SQL Server 2000 (2005) 에서 SQL Server 2008 로 데이터 이동

        3. [스크립트] 풀백업파일로 이동시키는 방법

        4. [스크립트] MDF,LDF 파일을 직접 이동시키는 방법

 

 

3. [스크립트] 풀백업파일로 이동 시키는 방법

 

     1) SQL Server 2000 에서 데이터베이스를 풀백업한다.

        (KSD 란 이름의 데이터베이스를 백업하였다.)

 

     2) 백업한 파일을 SQL Server 2008 로 이동시킨다.

        (C:\KSD.bak 에 위치시켰다.)

 

     3) 쿼리실행창에서 RESTORE 문을 실행시킨다.

 

USE master

RESTORE DATABASE [KSD] FROM  DISK = N'C:\KSD.bak' WITH  FILE = 1

       ,  MOVE N'KSD' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD.mdf'

       ,  MOVE N'KSD_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD_Log.ldf'

GO

 

※  위의 문장은 기존에 SQL Server 가 설치되어 있어서 SQL Server 2008 은 TEST1 이라는 인스턴스로 설치했기 때문에

     아래와 같이 기본 데이터 파일 저장위치가 다음과 같다

      N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD.mdf'

      N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD_Log.ldf'

  

     그러나 SQL Server가 설치되지 않은 컴퓨터에 SQL Server 2008을 최초 디폴트로 설치하게 되면 기본 데이터 파일 저장위치는

     다음과 같으므로 아래의 문장으로 바꾸어서 실행하면 된다.

      N'C:\Program Files\Microsoft SQL Server\MSSQL10\MSSQL\DATA\KSD.mdf'

      N'C:\Program Files\Microsoft SQL Server\MSSQL10\MSSQL\DATA\KSD_Log.ldf'

  

     4) 데이터베이스의 "속성"을 확인한다.

         A) 호환성 수준 확인

              a.  KSD 데이터베이스의 현재 호환성 수준을 확인

select name,compatibility_level

from master.sys.databases

where name='KSD'

              b. 호환성수준 SQL Server 2008 로 변경

                  b-1. ALTER DATABASE SET SINGLE_USER를 사용하여 데이터베이스를 단일 사용자 액세스 모드로 설정합니다.
                  b-2. 데이터베이스의 호환성 수준을 변경합니다.
                  b-3. ALTER DATABASE SET MULTI_USER를 사용하여 데이터베이스를 다중 사용자 액세스 모드로 설정합니다.

USE master

ALTER DATABASE KSD SET SINGLE_USER

 

ALTER DATABASE KSD

SET COMPATIBILITY_LEVEL = 100

 

ALTER DATABASE KSD SET MULTI_USER

 

 

2. [스크립트] MDF,LDF 파일을 직접 이동시키는 방법

 

     1) SQL Server 2000 의 서비스를 중시시킨다.

        (서비스가 실행중이면 파일을 카피 할 수 없다.)

        KSD.mdf , KSD_Log.LDF 파일을 카피하였다

 

     2) SQL Server 2008 데이터베이스 연결 을 실행한다.

         A) SQL Server 2008 데이터베이스 mdf,ldf 파일이 위치한 곳에 파일을 카피한다.

 

         B) 쿼리 실행창에서 파일을 데이터베이스로 연결하는 문장을 실행시킨다.

USE [master]

GO

CREATE DATABASE [KSD] ON

( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD.mdf' ),

( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD_Log.ldf' )

 FOR ATTACH

GO

※  위의 문장은 기존에 SQL Server 가 설치되어 있어서 SQL Server 2008 은 TEST1 이라는 인스턴스로 설치했기 때문에

     아래와 같이 기본 데이터 파일 저장위치가 다음과 같다

      N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD.mdf'

      N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD_Log.ldf'

 

     그러나 SQL Server가 설치되지 않은 컴퓨터에 SQL Server 2008을 최초 디폴트로 설치하게 되면 기본 데이터 파일 저장위치는

     다음과 같으므로 아래의 문장으로 바꾸어서 실행하면 된다.

      N'C:\Program Files\Microsoft SQL Server\MSSQL10\MSSQL\DATA\KSD.mdf'

      N'C:\Program Files\Microsoft SQL Server\MSSQL10\MSSQL\DATA\KSD_Log.ldf'

 

     3) 데이터베이스의 "속성"을 확인한다.

         A) 호환성 수준 확인

              a.  KSD 데이터베이스의 현재 호환성 수준을 확인

select name,compatibility_level

from master.sys.databases

where name='KSD'

              b. 호환성수준 SQL Server 2008 로 변경

                  b-1. ALTER DATABASE SET SINGLE_USER를 사용하여 데이터베이스를 단일 사용자 액세스 모드로 설정합니다.
                  b-2. 데이터베이스의 호환성 수준을 변경합니다.
                  b-3. ALTER DATABASE SET MULTI_USER를 사용하여 데이터베이스를 다중 사용자 액세스 모드로 설정합니다.

USE master

ALTER DATABASE KSD SET SINGLE_USER

 

ALTER DATABASE KSD

SET COMPATIBILITY_LEVEL = 100

 

ALTER DATABASE KSD SET MULTI_USER

 

  ※ sp_attach_db 를 이용해 데이터베이스를 연결하는 방법

        기존의 SQL Server 에서는 아래와 같은 저장프로시저를 이용하여 데이터베이스를 연결하였으나

        SQL Server 2008 이후 버전에는 지원하지 않으므로 CREATE DATABASE database_name FOR ATTACH문을
             이용하는 방법을 사용하는 것이 좋습니다.

USE [master]

GO

EXEC sp_attach_db @dbname = N'KSD',

   @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD.mdf',

   @filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL10.TEST1\MSSQL\DATA\KSD_Log.ldf'

GO

  

+ Recent posts