다음을 통해 공유


데이터베이스 분리

적용 대상: SQL Server

이 문서에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 데이터베이스를 분리하는 방법을 설명합니다. 분리된 파일은 삭제되지 않고 파일 시스템에 남아 있게 됩니다. 파일은 CREATE DATABASE ... FOR ATTACH 또는 FOR ATTACH_REBUILD_LOG 옵션을 사용하여 다시 연결될 수 있습니다. 파일을 다른 서버로 이동하고 같은 버전이나 최신 버전의 인스턴스에 연결할 수도 있습니다.

제한 사항

제한 사항 목록은 데이터베이스 분리 및 연결(SQL Server)을 참조하세요.

사용 권한

db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다.

SQL Server Management Studio 사용

데이터베이스 이동 전

데이터베이스를 이동하는 경우 기존 SQL Server 인스턴스에서 분리하기 전에 데이터베이스 속성 페이지를 사용하여 데이터베이스 및 현재 위치와 연결된 파일을 검토합니다.

  1. SQL Server Management Studio의 개체 탐색기에서 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.

  2. 데이터베이스를 확장하고 분리할 사용자 데이터베이스의 이름을 선택합니다.

  3. 데이터베이스 이름을 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다. 파일 페이지를 선택하고 데이터베이스 파일: 테이블의 항목을 검토합니다.

분리, 이동, 연결하기 전에 데이터베이스와 연결된 모든 파일을 고려해야 합니다. 그런 다음, 다음 섹션에서 분리 단계를 계속 진행합니다. 새 위치에 데이터베이스를 연결하는 방법에 대한 자세한 내용은 데이터베이스 연결을 참조하세요.

데이터베이스 분리

  1. SQL Server Management Studio의 개체 탐색기에서 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.

  2. 데이터베이스를 확장하고 분리할 사용자 데이터베이스의 이름을 선택합니다.

  3. 데이터베이스 이름을 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 분리를 선택합니다. 데이터베이스 분리 대화 상자가 나타납니다.

    • 분리할 데이터베이스: 분리할 데이터베이스를 나열합니다.

    • 데이터베이스 이름: 분리할 데이터베이스의 이름을 표시합니다.

    • 연결 삭제: 지정된 데이터베이스에 대한 연결을 끊습니다.

      참고 항목

      활성 연결이 있는 데이터베이스는 분리할 수 없습니다.

    • 통계 업데이트: 기본적으로 분리 작업은 데이터베이스를 분리할 때 오래된 최적화 통계를 유지합니다. 기존의 최적화 통계를 업데이트하려면 이 확인란을 선택합니다.

    • 전체 텍스트 카탈로그 유지: 기본적으로 분리 작업은 데이터베이스와 연결된 모든 전체 텍스트 카탈로그를 유지합니다. 제거하려면 전체 텍스트 카탈로그 유지 확인란의 선택을 취소합니다 . 이 옵션은 SQL Server 2005(9.x)에서 데이터베이스를 업그레이드하는 경우에만 표시됩니다.

    • 상태: 준비 또는 준비 안 됨 상태 중 하나를 표시합니다.

    • 메시지: 다음과 같이 메시지 열에 데이터베이스에 대한 정보가 표시될 수도 있습니다.

      • 데이터베이스가 복제와 관련된 경우 상태준비 안 됨이며 메시지 열에 복제된 데이터베이스가 표시됩니다.

      • 데이터베이스에 하나 이상의 활성 연결이 있는 경우 상태준비 안 됨이고 메시지 열에는 <number_of_active_connections>활성 연결이 표시됩니다. 예: 활성 연결 1개. 데이터베이스를 분리하려면 먼저 연결 삭제를 선택하여 모든 활성 연결을 끊어야 합니다.

      메시지에 대한 자세한 내용을 보려면 하이퍼링크로 연결된 텍스트를 선택하여 작업 모니터를 엽니다.

  4. 데이터베이스를 분리할 준비가 되었으면 확인을 선택합니다.

참고 항목

새로 분리된 데이터베이스는 뷰를 새로 고칠 때까지 개체 탐색기의 데이터베이스 노드에 계속 표시됩니다. 언제든지 보기를 새로 고칠 수 있습니다. 개체 탐색기 창에서 선택하고 메뉴 모음에서 보기를 선택한 다음 새로 고침을 선택합니다.

Transact-SQL 사용

데이터베이스 이동 전

데이터베이스를 이동하는 경우 기존 SQL Server 인스턴스에서 분리하기 전에 sys.database_files 시스템 카탈로그 뷰를 사용하여 데이터베이스 및 현재 위치와 연결된 파일을 검토합니다. 자세한 내용은 sys.database_files (Transact-SQL)를 참조하세요.

  1. SQL Server Management Studio에서 새 쿼리를 클릭하여 쿼리 편집기를 엽니다.

  2. 다음 Transact-SQL 스크립트를 쿼리 편집기에 복사한 다음 실행을 선택합니다. 이 스크립트는 물리적 데이터베이스 파일의 위치를 표시합니다. 분리/연결을 통해 데이터베이스를 이동하는 경우 모든 파일을 고려해야 합니다.

    USE [database_name]
    GO
    
    SELECT type_desc, name, physical_name
    FROM sys.database_files;
    

분리, 이동, 연결하기 전에 데이터베이스와 연결된 모든 파일을 고려해야 합니다. 그런 다음, 다음 섹션에서 분리 단계를 계속 진행합니다. 새 위치에 데이터베이스를 연결하는 방법에 대한 자세한 내용은 데이터베이스 연결을 참조하세요.

데이터베이스 분리

  1. 데이터베이스 엔진에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 선택합니다.

  3. 다음 예시를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예제에서는 AdventureWorks2022 옵션을 skipchecks로 설정하여 true 데이터베이스를 분리합니다. 자세한 내용은 sp_detach_db를 참조하세요.

    EXEC sp_detach_db 'AdventureWorks2022', 'true';