데이터베이스 분리 및 연결(SQL Server)

적용 대상:SQL Server

데이터베이스의 데이터 및 트랜잭션 로그 파일을 분리한 다음 SQL Server의 동일한 인스턴스 또는 다른 인스턴스에 다시 연결할 수 있습니다. 데이터베이스 분리 및 연결은 데이터베이스를 동일한 컴퓨터의 다른 SQL Server 인스턴스로 변경하거나 데이터베이스를 이동하려는 경우에 유용합니다.

사용 권한

파일 액세스 권한은 데이터베이스 분리 또는 연결 등 여러 데이터베이스 작업 중에 설정됩니다.

Important

알 수 없거나 신뢰할 수 없는 원본에서 데이터베이스를 연결하거나 복원하지 않는 것이 좋습니다. 이러한 데이터베이스에 포함된 악성 코드가 의도하지 않은 Transact-SQL 코드를 실행하거나 스키마 또는 물리적 데이터베이스 구조를 수정하여 오류가 발생할 수 있습니다. 알 수 없거나 신뢰할 수 없는 원본의 데이터베이스를 사용하기 전에 비프로덕션 서버의 데이터베이스에서 DBCC CHECKDB(Transact-SQL)를 실행하고 데이터베이스에서 저장 프로시저 또는 기타 사용자 정의 코드와 같은 코드를 검사합니다.

데이터베이스 분리

데이터베이스를 분리하면 SQL Server 인스턴스에서 데이터베이스가 제거되지만 데이터베이스는 데이터 파일 및 트랜잭션 로그 파일 내에 그대로 유지됩니다. 그런 다음 이러한 파일을 사용하여 데이터베이스가 분리된 서버를 포함하여 SQL Server의 모든 인스턴스에 데이터베이스를 연결할 수 있습니다.

다음 중 어느 것이라도 true이면 데이터베이스를 분리할 수 없습니다.

  • 데이터베이스가 복제본(replica)ted 및 게시됩니다. 데이터베이스가 복제된 경우 해당 데이터베이스의 게시를 해제해야 합니다. 분리하려면 먼저 sp_복제본(replica)tiondboption을 실행하여 게시를 사용하지 않도록 설정해야 합니다.

    참고 항목

    사용할 sp_replicationdboption수 없는 경우 sp_removedb복제본(replica) 실행하여 복제본(replica)tion을 제거할 수 있습니다.

  • 데이터베이스 스냅샷 데이터베이스에 있습니다.

    데이터베이스를 분리하려면 먼저 모든 스냅샷 삭제해야 합니다. 자세한 내용은 데이터베이스 스냅샷 삭제(Transact-SQL)를 참조하세요.

    참고 항목

    데이터베이스 스냅샷 분리하거나 연결할 수 없습니다.

  • 데이터베이스는 Always On 가용성 그룹의 일부입니다.

    데이터베이스는 가용성 그룹에서 제거될 때까지 분리할 수 없습니다. 자세한 내용은 Always On 가용성 그룹에서 주 데이터베이스 제거를 참조하세요.

  • 데이터베이스가 데이터베이스 미러 세션에서 미러.

    세션이 종료되지 않는 한 데이터베이스를 분리할 수 없습니다. 자세한 내용은 데이터베이스 미러링 제거(SQL Server)를 참조하세요.

  • 데이터베이스가 의심스럽다. 주의 대상 데이터베이스는 분리할 수 없습니다. 분리하려면 먼저 비상 모드로 전환해야 합니다. 데이터베이스를 긴급 모드로 전환하는 방법에 대한 자세한 내용은 ALTER DATABASE(Transact-SQL)를 참조하세요.

  • 데이터베이스는 시스템 데이터베이스입니다.

백업, 복원 및 분리

읽기 전용 데이터베이스를 분리하면 차등 백업의 차등 기반에 대한 정보가 손실됩니다. 자세한 내용은 차등 백업(SQL Server)을 참조하세요.

분리 오류에 응답

데이터베이스를 분리하는 동안 발생한 오류로 인해 데이터를 완전히 닫지 못하고 트랜잭션 로그를 다시 작성하지 못할 수 있습니다. 오류 메시지가 표시되면 다음 수정 작업을 수행합니다.

  1. 주 파일뿐 아니라 데이터베이스와 관련된 모든 파일을 다시 연결합니다.

  2. 오류 메시지를 발생시킨 문제를 해결합니다.

  3. 데이터베이스를 다시 분리합니다.

데이터베이스 연결

복사되거나 분리된 SQL Server 데이터베이스를 연결할 수 있습니다. 전체 텍스트 카탈로그 파일이 포함된 SQL Server 2005(9.x) 데이터베이스를 SQL Server 서버 인스턴스에 연결하면 카탈로그 파일이 SQL Server 2005(9.x)와 동일한 다른 데이터베이스 파일과 함께 이전 위치에서 연결됩니다. 자세한 내용은 전체 텍스트 검색 업그레이드를 참조하세요.

데이터베이스를 연결할 때 모든 데이터 파일(.mdf.ndf 파일)을 사용할 수 있어야 합니다. 데이터베이스를 처음 만들거나 마지막으로 연결했을 때와 다른 경로가 있는 데이터 파일의 경우 파일의 현재 경로를 지정해야 합니다.

참고 항목

첨부되는 기본 데이터 파일이 읽기 전용인 경우 데이터베이스 엔진 데이터베이스가 읽기 전용이라고 가정합니다.

암호화된 데이터베이스가 SQL Server 인스턴스에 처음 연결되면 데이터베이스 소유자는 다음 문을 OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'실행하여 DMK(데이터베이스 마스터 키)를 열어야 합니다. 다음 문을 ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY실행하여 DMK의 자동 암호 해독을 사용하도록 설정하는 것이 좋습니다. 자세한 내용은 CREATE MASTER KEY(Transact-SQL)ALTER MASTER KEY(Transact-SQL)를 참조하세요.

로그 파일을 연결하기 위한 요구 사항은 다음과 같이 데이터베이스가 읽기/쓰기 또는 읽기 전용인지에 따라 부분적으로 달라집니다.

  • 읽기 전용 데이터베이스에서는 보통 새 위치에 로그 파일을 연결할 수 있습니다. 그러나 경우에 따라 데이터베이스를 다시 연결하려면 기존 로그 파일이 필요합니다. 따라서 데이터베이스가 성공적으로 연결되지 않을 때까지 모든 분리된 로그 파일을 항상 유지하는 것이 중요합니다.

    읽기/쓰기 데이터베이스에 단일 로그 파일이 있고 로그 파일의 새 위치를 지정하지 않는 경우 연결 작업은 파일의 이전 위치를 찾습니다. 이전 로그 파일이 발견되면 데이터베이스가 클린 종료되었는지 여부에 관계없이 사용됩니다. 그러나 이전 로그 파일을 찾을 수 없고 데이터베이스가 클린 종료되고 활성 로그 체인이 없는 경우 연결 작업은 데이터베이스에 대한 새 로그 파일을 빌드하려고 시도합니다.

  • 첨부되는 기본 데이터 파일이 읽기 전용인 경우 데이터베이스 엔진 데이터베이스가 읽기 전용이라고 가정합니다. 읽기 전용 데이터베이스에서 로그 파일 또는 파일은 데이터베이스의 주 파일에 지정된 위치에 있어야 합니다. SQL Server는 기본 파일에 저장된 로그 위치를 업데이트할 수 없으므로 새 로그 파일을 빌드할 수 없습니다.

데이터베이스 연결에 대한 메타데이터 변경

읽기 전용 데이터베이스를 분리한 다음 다시 연결하면 현재 차등 기반에 대한 백업 정보가 손실됩니다. 차등 기반은 데이터베이스 또는 데이터베이스의 파일 또는 파일 그룹의 하위 집합에 있는 모든 데이터의 최신 전체 백업입니다. 기본 백업 정보가 없으면 데이터베이스가 master 읽기 전용 데이터베이스와 동기화되지 않으므로 이후에 수행된 차등 백업은 예기치 않은 결과를 제공할 수 있습니다. 따라서 읽기 전용 데이터베이스에서 차등 백업을 사용하는 경우 데이터베이스를 다시 연결한 후 전체 백업을 사용하여 새 차등 기반을 설정해야 합니다. 차등 백업에 대한 자세한 내용은 차등 백업(SQL Server)을 참조하세요.

연결 시 데이터베이스 시작이 발생합니다. 일반적으로 데이터베이스를 연결하면 데이터베이스를 분리 또는 복사한 시점과 동일한 상태가 됩니다. 그러나 연결 및 분리 작업을 수행하면 해당 데이터베이스의 데이터베이스 간 소유권 체인을 사용할 수 없게 됩니다. 체인을 사용하도록 설정하는 방법에 대한 자세한 내용은 교차 db 소유권 체인 서버 구성 옵션을 참조 하세요.

Important

기본적으로 보안을 위해 데이터베이스가 연결되면 is_broker_enabled, is_honor_broker_priority_onis_trustworthy_on 옵션이 OFF로 설정됩니다. 이러한 옵션을 설정하는 방법에 대한 자세한 내용은 ALTER DATABASE(Transact-SQL)를 참조하세요. 메타데이터에 대한 자세한 내용은 다른 서버에서 데이터베이스를 사용할 수 있도록 만들 때 메타데이터 관리를 참조하세요.

백업, 복원 및 연결

완전히 또는 부분적으로 오프라인 상태인 데이터베이스와 마찬가지로 복원 파일이 있는 데이터베이스는 연결할 수 없습니다. 이때 복원 시퀀스를 중지하면 데이터베이스를 연결할 수 있습니다. 그런 다음 복원 시퀀스를 다시 시작할 수 있습니다.

다른 서버 인스턴스에 데이터베이스 연결

Important

최신 버전의 SQL Server에서 만든 데이터베이스는 이전 버전에서 연결할 수 없습니다. 이렇게 하면 데이터베이스가 이전 버전의 데이터베이스 엔진 물리적으로 사용되지 않습니다. 그러나 이는 메타데이터 상태와 관련이 있으며 데이터베이스 호환성 수준에는 영향을 주지 않습니다. 자세한 내용은 ALTER DATABASE(Transact-SQL) 호환성 수준을 참조하세요.

사용자 및 애플리케이션에 일관된 환경을 제공하려면 데이터베이스를 다른 서버 인스턴스에 연결할 때 다른 서버 인스턴스의 데이터베이스에 대한 메타데이터의 일부 또는 전부를 다시 만들어야 할 수 있습니다. 이 메타데이터에는 로그인 및 작업과 같은 것이 포함됩니다. 자세한 내용은 다른 서버에서 데이터베이스를 사용할 수 있도록 만들 때 메타데이터 관리를 참조하세요.

작업 아티클
데이터베이스 분리 - sp_detach_db(Transact-SQL)
- 데이터베이스 분리
데이터베이스 연결 - CREATE DATABASE
- 데이터베이스 연결
- sp_attach_db(Transact-SQL)
- sp_attach_single_file_db(Transact-SQL)
분리 및 연결 작업을 사용하여 데이터베이스 업그레이드 - 분리 및 연결을 사용하여 데이터베이스 업그레이드(Transact-SQL)
분리 및 연결 작업을 사용하여 데이터베이스 이동 - 분리 및 연결을 사용하여 데이터베이스 이동(Transact-SQL)
데이터베이스 스냅샷 삭제 - 데이터베이스 스냅샷 삭제(Transact-SQL)