다음을 통해 공유


가용성 데이터베이스 일시 중지(SQL Server)

SQL Server 2012의 SQL Server Management Studio, Transact-SQL 또는 PowerShell을 사용하여 AlwaysOn 가용성 그룹에서 가용성 데이터베이스를 일시 중지할 수 있습니다. 일시 중지하거나 재개할 데이터베이스를 호스팅하는 서버 인스턴스에서 일시 중지 명령을 실행해야 합니다.

일시 중지 명령의 효과는 일시 중지하는 데이터베이스가 보조 데이터베이스인지 주 데이터베이스인지에 따라 다음과 같이 다릅니다.

일시 중지된 데이터베이스

일시 중지 명령의 효과

보조 데이터베이스

로컬 보조 데이터베이스만 일시 중지되고 동기화 상태가 NOT SYNCHRONIZING이 됩니다. 다른 보조 데이터베이스는 영향을 받지 않습니다. 일시 중지된 데이터베이스는 데이터(로그 레코드)의 수신과 적용을 중지하고 주 데이터베이스보다 뒤처지기 시작합니다. 읽기 가능한 보조 복제본에 대한 기존 연결은 계속 사용할 수 있습니다. 읽기 가능한 보조 복제본의 일시 중단된 데이터베이스에 대한 새 연결은 데이터 이동이 다시 시작될 때까지 허용되지 않습니다.

주 데이터베이스는 사용 가능한 상태로 남아 있습니다. 각각의 해당 보조 데이터베이스를 중지하면 주 데이터베이스가 노출된 상태로 실행됩니다.

중요 정보중요

보조 데이터베이스를 일시 중지하면 보내지 않은 트랜잭션 로그 레코드가 해당 주 데이터베이스의 Send Queue에 누적됩니다. 보조 복제본에 대한 연결은 데이터 이동이 일시 중단된 시간에 사용 가능했던 데이터를 반환합니다.

주 데이터베이스

주 데이터베이스는 연결된 모든 보조 데이터베이스로의 데이터 이동을 중지합니다. 주 데이터베이스는 계속해서 노출된 모드에서 실행됩니다. 클라이언트에서 주 데이터베이스를 계속해서 사용할 수 있고 읽을 수 있는 보조 데이터베이스의 기존 연결을 계속해서 사용할 수 있으며 새로운 연결을 만들 수 있습니다.

[!참고]

AlwaysOn 보조 데이터베이스를 일시 중지해도 주 데이터베이스의 가용성에 직접 영향을 주지는 않습니다. 그러나 보조 데이터베이스를 일시 중지하면 주 데이터베이스의 중복 및 장애 조치(failover) 기능에 영향을 줄 수 있습니다. 이것은 데이터베이스 미러링과는 대조적입니다. 데이터베이스 미러링의 경우에는 미러 데이터베이스 및 주 데이터베이스에서 미러링 상태가 일시 중지됩니다. AlwaysOn 주 데이터베이스를 일시 중지하면 모든 해당 보조 데이터베이스에서 데이터 이동이 일시 중지되고 주 데이터베이스를 재개할 때까지 해당 데이터베이스에 대한 중복 및 장애 조치(failover) 기능이 중단됩니다.

  • 시작하기 전 주의 사항

    제한 사항

    필수 구성 요소

    권장 사항

    보안

  • 데이터베이스를 일시 중지하려면:  

  • SQL Server Management Studio

    Transact-SQL

    PowerShell

  • 후속 작업:  꽉 찬 트랜잭션 로그 방지

  • 관련 태스크

시작하기 전 주의 사항

제한 사항

SUSPEND 명령은 대상 데이터베이스를 호스팅하는 복제본에서 수락되는 즉시 반환하지만 실제로 데이터베이스 일시 중지는 비동기식으로 발생합니다.

필수 구성 요소

일시 중지할 데이터베이스를 호스팅하는 서버 인스턴스에 연결되어 있어야 합니다. 주 데이터베이스와 해당 보조 데이터베이스를 일시 중지하려면 주 복제본을 호스팅하는 서버 인스턴스에 연결합니다. 주 데이터베이스는 사용 가능한 상태로 두고 보조 데이터베이스를 일시 중지하려면 보조 복제본에 연결합니다.

권장 사항

병목 현상 중에 하나 이상의 보조 데이터베이스를 잠시 중단하면 주 복제본의 성능을 일시적으로 향상됩니다. 보조 데이터베이스가 일시 중지된 상태인 동안에는 해당 주 데이터베이스의 트랜잭션 로그를 자를 수 없으므로 로그 레코드가 주 데이터베이스에 누적됩니다. 따라서 일시 중지된 보조 데이터베이스를 신속하게 다시 시작하거나 제거하는 것이 좋습니다. 자세한 내용은 이 항목 뒷부분에 있는 후속 작업: 꽉 찬 트랜잭션 로그 방지를 참조하십시오.

보안

사용 권한

데이터베이스에 대한 ALTER 권한이 필요합니다.

가용성 그룹에 대한 ALTER AVAILABILITY GROUP 권한, CONTROL AVAILABILITY GROUP 권한, ALTER ANY AVAILABILITY GROUP 권한 또는 CONTROL SERVER 권한이 필요합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위]

SQL Server Management Studio 사용

데이터베이스를 일시 중지하려면

  1. 개체 탐색기에서 데이터베이스를 일시 중지할 가용성 복제본을 호스팅하는 서버 인스턴스에 연결하고 서버 트리를 확장합니다. 자세한 내용은 이 항목의 앞부분에 나오는 사전 요구 사항을 참조하십시오.

  2. AlwaysOn 고가용성가용성 그룹 노드를 확장합니다.

  3. 가용성 그룹을 확장합니다.

  4. 가용성 데이터베이스 노드를 확장하고 데이터베이스를 마우스 오른쪽 단추로 누른 다음 데이터 이동 일시 중지를 클릭합니다.

  5. 데이터 이동 일시 중지 대화 상자에서 확인을 클릭합니다.

    개체 탐색기에서 데이터베이스 아이콘이 일시 중지 표시기로 변경되어 데이터베이스가 일시 중지되었음을 나타냅니다.

[!참고]

이 복제본 위치에서 다른 데이터베이스를 일시 중지하려면 각 데이터베이스에 대해 4단계와 5단계를 반복합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위]

Transact-SQL 사용

데이터베이스를 일시 중지하려면

  1. 데이터베이스를 일시 중지할 복제본을 호스팅하는 서버 인스턴스에 연결합니다. 자세한 내용은 이 항목의 앞부분에 나오는 사전 요구 사항을 참조하십시오.

  2. 다음의 ALTER DATABASE 문을 사용하여 데이터베이스를 일시 중지합니다.

    ALTER DATABASE database_name SET HADR SUSPEND

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위]

PowerShell 사용

데이터베이스를 일시 중지하려면

  1. 데이터베이스를 일시 중지할 복제본을 호스팅하는 서버 인스턴스로 디렉터리를 변경합니다(cd). 자세한 내용은 이 항목의 앞부분에 나오는 사전 요구 사항을 참조하십시오.

  2. Suspend-SqlAvailabilityDatabase cmdlet을 사용하여 가용성 그룹을 일시 중지합니다.

    예를 들어 다음 명령은 Computer\Instance 서버 인스턴스에서 MyAg 가용성 그룹에 있는 MyDb3 가용성 데이터베이스에 대한 데이터 동기화를 일시 중지합니다.

    Suspend-SqlAvailabilityDatabase ` 
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\Databases\MyDb3
    

    [!참고]

    cmdlet의 구문을 보려면 SQL Server PowerShell 환경에서 Get-Help cmdlet을 사용합니다. 자세한 내용은 SQL Server PowerShell 도움말 보기를 참조하십시오.

SQL Server PowerShell 공급자를 설정하고 사용하려면

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위]

후속 작업: 꽉 찬 트랜잭션 로그 방지

일반적으로 데이터베이스에서 자동 검사점을 수행하면 다음 로그 백업 이후 해당 트랜잭션 로그가 이 검사점까지 잘립니다. 그러나 보조 데이터베이스를 일시 중지하는 동안 모든 현재 로그 레코드가 주 데이터베이스에서 활성 상태로 남아 있습니다. 서버 인스턴스의 공간이 부족하거나 최대 크기에 도달하여 트랜잭션 로그가 가득 차면 데이터베이스는 더 이상 업데이트를 수행할 수 없습니다.

이 문제를 방지하려면 다음 중 하나를 수행해야 합니다.

꽉 찬 트랜잭션 로그 문제를 해결하려면

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위]

관련 태스크

참고 항목

개념

AlwaysOn 가용성 그룹 개요(SQL Server)

가용성 데이터베이스 재개(SQL Server)