DetailPage-MSS-KB

기술 자료

기술 자료: 304692 - 마지막 검토: 2011년 5월 15일 일요일 - 수정: 4.0

이 페이지에서

요약

이 문서에서는 사용자와 시스템의 데이터베이스 백업을 이 데이터베이스를 원래 백업했던 서버와 다른 드라이브 문자 구성을 가진 다른 SQL Server 7.0 설치로 복원하는 방법을 설명합니다. 이 방법은 데이터베이스 백업 또는 데이터베이스 복원을 사용하여 데이터베이스를 이동할 때 사용할 수 있습니다. 다른 방법의 사용에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
224071  (http://support.microsoft.com/kb/224071/ ) INF: 분리/연결(Detach/Attach)을 사용하여 새 위치로 SQL Server 데이터베이스 이동
참고: 이 문서에 나와 있는 지침은 SQL Server 2000에 적용되지 않습니다.

SQL Server 7.0 master, model, msdb 또는 배포 시스템 데이터베이스를 SQL Server 2000으로 복원할 수 없습니다. SQL Server 7.0 시스템 데이터베이스는 SQL Server 2000과 호환되지 않습니다.

추가 정보

이 문서에 나와 있는 예제는 다음 가정을 기반으로 합니다.
  • SQL Server 7.0의 대상 설치는 D:\Mssql7 디렉터리에 있고, 데이터베이스 파일과 로그 파일은 기본 디렉터리 D:\Mssql7\data에 있습니다.
  • SQL Server 7.0의 원본 설치는 C:\Mssql7 디렉터리에 있고, 데이터베이스 파일과 로그 파일은 기본 디렉터리 C:\Mssql7\data에 있습니다.

필요 조건

  • 모든 데이터베이스, 특히 master 데이터베이스, model 데이터베이스 및 msdb 데이터베이스의 현재 백업을 이들 데이터베이스의 현재 위치에서 만듭니다.
  • 사용자에게 시스템 관리지 권한이 있어야 합니다.
  • 복원할 데이터베이스의 모든 데이터 및 로그 파일에 대한 논리적 이름과 물리적 이름을 모두 알고 있어야 합니다.

    참고: 벡업 세트에서 복원할 모든 파일의 논리적 이름과 물리적 이름을 확인하려면 쿼리 분석기 연결에서 다음 명령을 실행하십시오. 여기서 mydbdata.bak는 데이터베이스 백업이 포함되어 있는 파일 이름입니다.
    RESTORE FILELISTONLY FROM DISK='d:\mssql7\backup\mydbdata.bak'
    go
    					
  • 원본 및 대상 SQL Server 7.0 설치에 같은 서비스 팩과 패치가 적용되어 있어야 합니다.
이 과정 중에 문제가 발생하고 이동한 데이터베이스에 액세스할 수 없거나 SQL Server를 시작할 수 없으면 SQL Server 오류 로그 및 SQL Server 7.0 Books Online에서 발생한 오류의 정보를 확인하십시오.

데이터베이스 복원

  1. master 데이터베이스를 복원합니다.

    다음 예제에서 master 데이터베이스에는 전체 데이터베이스 백업 파일 Master_db.bak의 데이터 파일 Master.mdf와 로그 파일 Mastlog.ldf가 하나씩 포함되어 있습니다.
    1. 명령 프롬프트에서 다음 명령을 실행하여 SQL Server를 시작합니다.
      d:\mssql7\binn\sqlservr -c -m

      참고: -m 스위치는 SQL Server를 단일 사용자 모드로 시작합니다. 단일 사용자 모드에서는 연결을 하나만 만들 수 있습니다. SQL Server 쿼리 분석기를 사용하여 연결하기 전에 그러한 단일 연결을 만들 수 있는 다른 모든 클라이언트나 서비스에 대해 알고 있어야 합니다.
    2. SQL Server 쿼리 분석기에서 다음 구문을 사용하여 master 데이터베이스의 백업을 복원합니다.
      RESTORE DATABASE master FROM disk='d:\mssql7\backup\master_db.bak'
      WITH MOVE 'master' to 'd:\mssql7\data\master.mdf',
      MOVE 'mastlog' to 'd:\mssql7\data\mastlog.ldf',
      REPLACE
      go
      참고: master 데이터베이스를 복원한 후에는 SQL Server가 자동으로 종료됩니다.
    3. 명령 프롬프트에서 다음 명령을 실행하여 SQL Server를 시작합니다.
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
      참고: 이 구문을 사용하여 시스템 테이블 업데이트를 수행할 수 있습니다.
    4. SQL Server 쿼리 분석기에서 다음 문 집합을 실행합니다.

      경고: 시스템 테이블을 잘못 업데이트하면 심각한 문제가 발생할 수 있으며 문제를 해결하기 위해 SQL Server를 다시 설치해야 할 수도 있습니다. Microsoft는 시스템 테이블을 절못 업데이트하여 발생하는 문제에 대해 해결을 보증하지 않습니다. 시스템 테이블의 업데이트에 따른 모든 책임은 사용자에게 있습니다.
      USE master go UPDATE sysdatabases SET filename='d:\mssql7\data\tempdb.mdf' WHERE name='tempdb' go ALTER DATABASE tempdb MODIFY FILE (name = tempdev, filename = 'd:\mssql7\data\tempdb.mdf') ALTER DATABASE tempdb MODIFY FILE (name = templog, filename = 'd:\mssql7\data\templog.ldf') go
      변경 내용을 확인하는 메시지가 다음과 같이 나타납니다.
      File 'tempdev' modified in sysaltfiles. Delete old file after restarting SQL Server.

      File 'templog' modified in sysaltfiles. Delete old file after restarting SQL Server.
  2. model 데이터베이스를 복원합니다.

    다음 예제에서 model 데이터베이스에는 전체 데이터베이스 백업 파일 Model_db.bak의 데이터 파일 Model.mdf와 로그 파일 Modellog.ldf가 하나씩 포함되어 있습니다. model 데이터베이스의 백업이 없거나 SQL Server 설치 동안 기본적으로 설치되는 데이터베이스를 사용하려는 경우 model 데이터베이스를 다시 매핑할 수 있습니다. 이 절차는 4단계에서 northwind 데이터베이스와 pubs 데이터베이스에 대해 설명한 절차와 비슷합니다.
    1. SQL Server 쿼리 분석기에서 다음과 같은 저장 프로시저를 실행하여 현재의 model 데이터베이스를 SQL Server에서 분리합니다.
      exec sp_detach_db N'model' go
      저장 프로시저를 실행하면 다음과 같은 메시지가 나타납니다.
      Successfully detached database 'model'.
      DBCC execution completed. If DBCC printed error messages, contact your system administrator.
      참고: RESTORE 문을 사용하여 직접 덮어쓸 수 없기 때문에 model 데이터베이스를 분리해야 합니다. 데이터베이스가 복원되기 전에 이 시스템 데이터베이스에 대한 시스템 테이블 참조를 제거해야 합니다. 또한, 그러한 시스템 항목을 제거할 목적으로 데이터베이스를 삭제할 수 없습니다.
    2. SQL Server 쿼리 분석기에서 다음 구문을 사용하여 model 데이터베이스의 백업을 복원합니다.
      RESTORE DATABASE model FROM disk='d:\mssql7\backup\model_db.bak'
      WITH MOVE 'modeldev' TO 'd:\mssql7\data\model.mdf',
           MOVE 'modellog' TO 'd:\mssql7\data\modellog.ldf',
           REPLACE
      go
      참고: model 데이터베이스를 복원한 후에는 SQL Server가 자동으로 종료됩니다.
  3. msdb 데이터베이스를 복원합니다.

    다음 예제에서 msdb 데이터베이스에는 전체 데이터베이스 백업 파일 Msdb_db.bak의 데이터 파일 Msdbdata.mdf와 로그 파일 Msdblog.ldf가 하나씩 포함되어 있습니다.
    1. 명령 프롬프트에서 다음 명령을 실행하여 SQL Server를 시작합니다.
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. SQL Server 쿼리 분석기에서 다음 저장 프로시저를 실행하여 msdb 데이터베이스를 분리합니다.
      exec sp_detach_db N'msdb'
      go
    3. SQL Server 쿼리 분석기에서 다음 구문을 사용하여 msdb 데이터베이스의 백업을 복원합니다.
      RESTORE DATABASE msdb FROM disk='d:\mssql7\backup\msdb_db.bak'
      WITH MOVE 'msdbdata' TO 'd:\mssql7\data\msdbdata.mdf',
           MOVE 'msdblog' TO 'd:\mssql7\data\msdblog.ldf',
           REPLACE
      go
      참고: msdb 데이터베이스를 복원한 후에는 SQL Server가 자동으로 종료됩니다.
  4. northwind 데이터베이스와 pubs 데이터베이스:

    master 데이터베이스를 복원한 후에는 northwind 데이터베이스와 pubs 데이터베이스에 대한 시스템 테이블 항목이 변경되어 다른 모든 사용자 데이터베이스와 마찬가지로 두 데이터베이스도 주의 대상(Suspect) 모드에 있게 됩니다. 원래 데이터베이스 파일을 다시 사용하고 이들 파일을 서버에 다시 연결하려는 경우 다음과 같은 예제를 사용할 수 있습니다. 그렇지 않고 백업에서 복사본을 복원하려는 경우에는 6단계에 설명되어 있는 mydb 데이터베이스 예제를 사용하십시오. 다음 예제를 사용하여 northwind 데이터베이스에 대한 시스템 테이블 참조를 업데이트하십시오. northwind 데이터베이스에는 데이터 파일 Northwind.mdf와 로그 파일 Northwind.ldf가 하나씩 포함되어 있습니다.
    1. 명령 프롬프트에서 다음 명령을 실행하여 SQL Server를 시작합니다.
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. SQL Server 쿼리 분석기에서 다음 저장 프로시저를 실행하여 northwind 데이터베이스를 분리합니다.
      exec sp_detach_db N'northwind'
      go

      참고: 물리적 파일에 액세스할 수 없음을 표시하는 다음과 같은 메시지가 나타날 수 있습니다.
      Server: Msg 947, Level 16, State 1, Line 1 Error while closing database 'Northwind' cleanly.
      Successfully detached database 'northwind'.
      DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    3. SQL Server 쿼리 분석기에서 다음 구문을 사용하여 northwind 데이터베이스를 연결합니다.
      exec sp_attach_db N'northwind', N'd:\mssql7\data\northwnd.mdf', N'd:\mssql7\data\northwnd.ldf'
      go
  5. pubs 데이터베이스를 다시 매핑합니다.

    pubs 데이터베이스에는 데이터 파일 Pubs.mdf와 로그 파일 Pubs_log.ldf가 하나씩 포함되어 있습니다. pubs 데이터베이스도 northwind 데이터베이스를 다시 매핑하던 것과 같은 방법으로 다시 매핑할 수 있습니다.
  6. mydb 데이터베이스를 복원합니다.

    mydb 데이터베이스에는 전체 데이터베이스 백업 파일 Mydb_db.bak의 데이터 파일 Mydbdata.mdf와 로그 파일 Mydblog.ldf가 하나씩 포함되어 있습니다.
    1. SQL Server 쿼리 분석기에서 다음 저장 프로시저를 실행하여 mydb 데이터베이스를 분리합니다.
      exec sp_detach_db N'mydb'
      go
    2. SQL Server 쿼리 분석기에서 다음 구문을 사용하여 mydb 데이터베이스의 백업을 복원합니다.
      RESTORE DATABASE mydb FROM disk='d:\mssql7\backup\mydb_db.bak'
      WITH MOVE 'mydbdata' TO 'd:\mssql7\data\mydbdata.mdf',
           MOVE 'mydblog' TO 'd:\mssql7\data\mydblog.ldf',
           REPLACE
      go
  7. SQL Server의 이름을 바꿉니다.

    중요: master 데이터베이스를 복원한 SQL Server 설치의 이름을 바꾸어야 하는 경우에만 이 절차가 필요합니다.

    예를 들어, 다음과 같은 경우에 SQL Server의 이름을 바꿉니다.

    • 이름이 SOURCESVR인 컴퓨터에서 이름이 TARGETSVR인 컴퓨터로 데이터베이스 백업을 복원한 경우
    • 이름이 TARGETSVR인 컴퓨터에 이름이 SOURCESVR인 SQL Server가 있는 경우
    SQL Server의 이름을 바꾸어야 할 때는 다음 구문을 사용하여 컴퓨터 이름과 SQL Server 이름을 동기화합니다.
    exec sp_dropserver 'SOURCESVR'
    go
    exec sp_addserver 'TARGETSVR', 'LOCAL'
    go
  8. SQL Server 서비스를 다시 시작합니다.

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
224071  (http://support.microsoft.com/kb/224071/ ) INF: 분리/연결(Detach/Attach)을 사용하여 새 위치로 SQL Server 데이터베이스 이동
314546  (http://support.microsoft.com/kb/314546/ ) HOWTO: SQL Server를 실행하는 컴퓨터 간에 데이터베이스 이동
참고: -c, -m-f 같은 다른 시작 옵션에 대한 자세한 내용은 SQL Server Books Online을 참조하십시오.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹 (http://support.microsoft.com/newsgroups/default.aspx) 에 참여하시기 바랍니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
키워드: 
kbsqlmanagementtools kbinfo KB304692
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store