본문 바로가기

컴퓨터 엔지니어/DATABASE

mssql 2000 DB 를 2005로 이전하여 복원하기

mssql 2000 DB 를 2005로 이전하여 복원하기

2000 서버의 데이터를 2005로 이전하는 작업을 하게 되었습니다.
백업한 .bak를 가지고 2005에서 복원이 되는줄 알고 들고갔는데 되지를 않더군요..

대략 난감이었죠 ^^
2000 서버를 잠시 멈추고 mdf, ldf를 가지고 sp_attach_db 펑션을 사용해서
2005에서 DB를 복원시키니 2005버전에 맞게 업그레이드가 되면서
DB가 복원이 되더군요.

MSSQL 2005에 있는 설명을 좀 첨부합니다.

SQL Server 2005에서 분리 및 연결을 사용하여 사용자 데이터베이스를 SQL Server 7.0 또는 SQL Server 2000에서 업그레이드할 수 있습니다. 그러나 다음과 같은 제한 사항이 있습니다.

  • SQL Server 7.0 또는 SQL Server 2000을 사용하여 만든 master, model 또는 msdb 데이터베이스의 백업은 SQL Server 2005에 연결할 수 없습니다.

  • 인덱스 생성 작업을 포함한 SQL Server 7.0 로그 파일은 SQL Server 2000 또는 SQL Server 2005에 연결할 수 없습니다.
  • 분리되지 않고 복사된 복제 데이터베이스를 연결하는 경우에는 다음을 수행해야 합니다.

    • 동일한 서버 인스턴스의 업그레이드된 버전에 데이터베이스를 연결하는 경우 연결 작업이 완료된 후 sp_vupgrade_replication을 실행하여 복제를 업그레이드해야 합니다. 자세한 내용은 sp_vupgrade_replication(Transact-SQL)을 참조하십시오.

    • 버전에 관계없이 다른 서버 인스턴스에 데이터베이스를 연결하는 경우 연결 작업이 완료된 후 sp_removedbreplication을 실행하여 복제를 제거해야 합니다. 자세한 내용은 sp_removedbreplication(Transact-SQL)을 참조하십시오.

SQL Server 2005로 업그레이드되는 데이터베이스에 대해 APPLY, PIVOT, TABLESAMPLE 또는 UNPIVOT 키워드를 사용할 때 데이터베이스의 호환성 수준은 90으로 설정해야 합니다. 데이터베이스 호환성 수준을 설정하려면 sp_dbcmptlevel(Transact-SQL)을 참조하십시오.


스크립트는 다음과 같습니다. ^^

USE master;
Go
EXEC sp_attach_db @dbname = N'pubs', => DB 명
   @filename1 = 
      N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',  
-- 물리적으로 mdf의 경로를 명시해주면 됩니다.   @filename2 =      N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf';
-- 물리적인 ldf의 경로를 명시해주면 됩니다. GO

MS SQL 2005의 도움말 경로는
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.ko/udb9/html/99f66ed9-3a75-4e38-ad7d-6c27cc3529a9.htm
입니다.