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

적용 대상:SQL Server

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

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

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

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

** 중요 ** 보조 데이터베이스를 일시 중지하면 해당 주 데이터베이스의 큐 보내기에서 보내지 않은 트랜잭션 로그 레코드를 누적합니다. 보조 복제본에 대한 연결은 데이터 이동이 일시 중단된 시간에 사용 가능했던 데이터를 반환합니다.
주 데이터베이스 주 데이터베이스에서 연결된 모든 보조 데이터베이스로의 데이터 이동이 중지됩니다. 주 데이터베이스는 노출 모드로 계속 실행됩니다. 주 데이터베이스는 클라이언트에서 사용할 수 있는 상태로 유지되고, 읽기 가능한 보조의 기존 연결이 사용 가능한 상태로 유지되며 새 연결을 만들 수 있습니다.

참고 항목

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

시작하기 전에

제한 사항

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

필수 조건

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

권장 사항

병목 현상이 발생하는 동안 하나 이상의 보조 데이터베이스를 잠시 일시 중단하면 주 복제본의 성능을 일시적으로 개선하는 데 유용할 수 있습니다. 보조 데이터베이스가 일시 중단된 상태로 남아 있는 한, 해당 주 데이터베이스의 트랜잭션 로그를 잘라낼 수 없습니다. 로그 레코드가 주 데이터베이스에 누적됩니다. 따라서 일시 중지된 보조 데이터베이스를 신속하게 다시 시작하거나 제거하는 것이 좋습니다. 자세한 내용은 이 항목의 뒷부분에 있는 추가 작업: 전체 트랜잭션 로그 방지를 참조하세요.

보안

사용 권한

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

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

SQL Server Management Studio 사용

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

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

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

  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을 사용하여 가용성 그룹을 일시 중단합니다.

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

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

    참고 항목

    cmdlet의 구문을 보려면 PowerShell 환경에서 Get-Help SQL Server cmdlet을 사용합니다. 자세한 내용은 Get Help SQL Server PowerShell을 참조하세요.

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

후속 작업: 전체 트랜잭션 로그 방지

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

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

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

관련 작업

참고 항목

Always On 가용성 그룹 개요(SQL Server)
가용성 데이터베이스 다시 시작(SQL Server)