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

Always On 가용성 그룹Always On availability groupsSQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL또는 PowerShell을 사용하여 SQL Server 2017SQL Server 2017에서 가용성 데이터베이스를 일시 중지할 수 있습니다.You can suspend an availability database in Always On 가용성 그룹Always On availability groups by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017. 일시 중지하거나 재개할 데이터베이스를 호스팅하는 서버 인스턴스에서 일시 중지 명령을 실행해야 합니다.Note that a suspend command needs to be issued on the server instance that hosts the database to be suspended or resumed.

일시 중지 명령의 효과는 일시 중지하는 데이터베이스가 보조 데이터베이스인지 주 데이터베이스인지에 따라 다음과 같이 다릅니다.The effect of a suspend command depends on whether you suspend a secondary database or a primary database, as follows:

일시 중지된 데이터베이스Suspended Database 일시 중지 명령의 효과Effect of Suspend Command
보조 데이터베이스Secondary database 로컬 보조 데이터베이스만 일시 중지되고 동기화 상태가 NOT SYNCHRONIZING이 됩니다.Only the local secondary database is suspended and its synchronization state becomes NOT SYNCHRONIZING. 다른 보조 데이터베이스는 영향을 받지 않습니다.Other secondary databases are not affected. 일시 중지된 데이터베이스는 데이터(로그 레코드)의 수신과 적용을 중지하고 주 데이터베이스보다 뒤처지기 시작합니다.The suspended database stops receiving and applying data (log records) and begins to fall behind the primary database. 읽기 가능한 보조 복제본에 대한 기존 연결은 계속 사용할 수 있습니다.Existing connections on the readable secondary remain usable. 읽기 가능한 보조 복제본의 일시 중단된 데이터베이스에 대한 새 연결은 데이터 이동이 다시 시작될 때까지 허용되지 않습니다.New connections to the suspended database on the readable secondary are not allowed until data movement is resumed.

주 데이터베이스는 사용 가능한 상태로 남아 있습니다.The primary database remains available. 각각의 해당 보조 데이터베이스를 중지하면 주 데이터베이스가 노출된 상태로 실행됩니다.If you suspend each of the corresponding secondary databases, the primary database runs exposed.

** 중요 *\* 보조 데이터베이스를 일시 중지하면 해당 주 데이터베이스의 큐 보내기에서 보내지 않은 트랜잭션 로그 레코드를 누적합니다.** Important *\* While a secondary database is suspended, the send queue of the corresponding primary database will accumulate unsent transaction log records. 보조 복제본에 대한 연결은 데이터 이동이 일시 중단된 시간에 사용 가능했던 데이터를 반환합니다.Connections to the secondary replica return data that was available at the time the data movement was suspended.
주 데이터베이스Primary database 주 데이터베이스는 연결된 모든 보조 데이터베이스로의 데이터 이동을 중지합니다.The primary database stops data movement to every connected secondary database. 주 데이터베이스는 계속해서 노출된 모드에서 실행됩니다.The primary database continues running, in an exposed mode. 클라이언트에서 주 데이터베이스를 계속해서 사용할 수 있고 읽을 수 있는 보조 데이터베이스의 기존 연결을 계속해서 사용할 수 있으며 새로운 연결을 만들 수 있습니다.The primary database remains available to clients, and existing connections on a readable secondary remain usable and new connections can be made.

참고

Always On 보조 데이터베이스를 일시 중지해도 주 데이터베이스의 가용성에 직접 영향을 주지는 않습니다.Suspending an Always On secondary database does not directly affect the availability of the primary database. 그러나 보조 데이터베이스를 일시 중지하면 주 데이터베이스의 중복 및 장애 조치(failover) 기능에 영향을 줄 수 있습니다.However, suspending a secondary database can impact redundancy and failover capabilities for the primary database. 이것은 데이터베이스 미러링과는 대조적입니다. 데이터베이스 미러링의 경우에는 미러 데이터베이스 및 주 데이터베이스에서 미러링 상태가 일시 중지됩니다.This is in contrast to database mirroring, where the mirroring state is suspended on both the mirror database and the principal database. Always On 주 데이터베이스를 일시 중지하면 모든 해당 보조 데이터베이스에서 데이터 이동이 일시 중지되고 주 데이터베이스를 재개할 때까지 해당 데이터베이스에 대한 중복 및 장애 조치(failover) 기능이 중단됩니다.Suspending an Always On primary database suspends data movement on all the corresponding secondary databases, and redundancy and failover capabilities cease for that database until the primary database is resumed.

시작하기 전 주의 사항 Before You Begin

제한 사항 Limitations and Restrictions

SUSPEND 명령은 대상 데이터베이스를 호스팅하는 복제본에서 수락되는 즉시 반환하지만 실제로 데이터베이스 일시 중지는 비동기식으로 발생합니다.A SUSPEND command returns as soon as it has been accepted by the replica that hosts the target database, but actually suspending the database occurs asynchronously.

필수 구성 요소 Prerequisites

일시 중지할 데이터베이스를 호스팅하는 서버 인스턴스에 연결되어 있어야 합니다.You must be connected to the server instance that hosts the database that you want to suspend. 주 데이터베이스와 해당 보조 데이터베이스를 일시 중지하려면 주 복제본을 호스팅하는 서버 인스턴스에 연결합니다.To suspend a primary database and the corresponding secondary databases, connect to the server instance that hosts the primary replica. 주 데이터베이스는 사용 가능한 상태로 두고 보조 데이터베이스를 일시 중지하려면 보조 복제본에 연결합니다.To suspend a secondary database while leaving the primary database available, connect to the secondary replica.

권장 사항 Recommendations

병목 현상 중에 하나 이상의 보조 데이터베이스를 잠시 중단하면 주 복제본의 성능을 일시적으로 향상됩니다.During bottlenecks, suspending one or more secondary databases briefly might be useful to improve performance temporarily on the primary replica. 보조 데이터베이스가 일시 중지된 상태인 동안에는 해당 주 데이터베이스의 트랜잭션 로그를 자를 수 없으므로As long as a secondary database remains suspended, the transaction log of the corresponding primary database cannot be truncated. 로그 레코드가 주 데이터베이스에 누적됩니다.This causes log records to accumulate on the primary database. 따라서 일시 중지된 보조 데이터베이스를 신속하게 다시 시작하거나 제거하는 것이 좋습니다.Therefore, we recommend that you resume, or remove, a suspended secondary database quickly. 자세한 내용은 이 항목 뒷부분에 나오는 후속 작업: 꽉 찬 트랜잭션 로그 방지를 참조하세요.For more information, see Follow up: Avoiding a Full Transaction Log, later in this topic.

보안 Security

사용 권한 Permissions

데이터베이스에 대한 ALTER 권한이 필요합니다.Requires ALTER permission on the database.

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

SQL Server Management Studio 사용 Using SQL Server Management Studio

데이터베이스를 일시 중지하려면To suspend a database

  1. 개체 탐색기에서 데이터베이스를 일시 중지할 가용성 복제본을 호스팅하는 서버 인스턴스에 연결하고 서버 트리를 확장합니다.In Object Explorer, connect to the server instance that hosts the availability replica on which you want to suspend a database, and expand the server tree. 자세한 내용은 이 항목의 앞부분에 나오는 필수 구성 요소를 참조하세요.For more information, see Prerequisites, earlier in this topic.

  2. Always On 고가용성 노드 및 가용성 그룹 노드를 확장합니다.Expand the Always On High Availability node and the Availability Groups node.

  3. 가용성 그룹을 확장합니다.Expand the availability group.

  4. 가용성 데이터베이스 노드를 확장하고 데이터베이스를 마우스 오른쪽 단추로 누른 다음 데이터 이동 일시 중지를 클릭합니다.Expand the Availability Databases node, right-click the database, and click Suspend Data Movement.

  5. 데이터 이동 일시 중지 대화 상자에서 확인을 클릭합니다.In the Suspend Data Movement dialog box, click OK.

    개체 탐색기에서 데이터베이스 아이콘이 일시 중지 표시기로 변경되어 데이터베이스가 일시 중지되었음을 나타냅니다.Object Explorer indicates that the database is suspended by changing the database icon to display a pause indicator.

참고

이 복제본 위치에서 다른 데이터베이스를 일시 중지하려면 각 데이터베이스에 대해 4단계와 5단계를 반복합니다.To suspend additional databases on this replica location, repeat steps 4 and 5 for each database.

Transact-SQL 사용 Using Transact-SQL

데이터베이스를 일시 중지하려면To suspend a database

  1. 데이터베이스를 일시 중지할 복제본을 호스팅하는 서버 인스턴스에 연결합니다.Connect to the server instance that hosts the replica whose database you want to suspend. 자세한 내용은 이 항목의 앞부분에 나오는 필수 구성 요소를 참조하세요.For more information, see Prerequisites, earlier in this topic.

  2. 다음의 ALTER DATABASE문을 사용하여 데이터베이스를 일시 중지합니다.Suspend the database by using the following ALTER DATABASEstatement:

    ALTER DATABASE database_name SET HADR SUSPENDALTER DATABASE database_name SET HADR SUSPEND

PowerShell 사용 Using PowerShell

데이터베이스를 일시 중지하려면To suspend a database

  1. 데이터베이스를 일시 중단할 복제본을 호스트하는 서버 인스턴스로 디렉터리를 변경(cd)합니다.Change directory (cd) to the server instance that hosts the replica whose database you want to suspend. 자세한 내용은 이 항목의 앞부분에 나오는 필수 구성 요소를 참조하세요.For more information, see Prerequisites, earlier in this topic.

  2. Suspend-SqlAvailabilityDatabase cmdlet을 사용하여 가용성 그룹을 일시 중단합니다.Use the Suspend-SqlAvailabilityDatabase cmdlet to suspend the availability group.

    예를 들어 다음 명령은 서버 인스턴스 MyDb3 에서 가용성 그룹 MyAg 에 있는 가용성 데이터베이스 Computer\Instance에 대한 데이터 동기화를 일시 중단합니다.For example, the following command suspends data synchronization for the availability database MyDb3 in the availability group MyAg on the server instance named Computer\Instance.

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

    참고

    cmdlet의 구문을 보려면 PowerShell 환경에서 Get-Help SQL ServerSQL Server cmdlet을 사용합니다.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL ServerSQL Server PowerShell environment. 자세한 내용은 Get Help SQL Server PowerShell을 참조하세요.For more information, see Get Help SQL Server PowerShell.

    SQL Server PowerShell 공급자를 설정하고 사용하려면To set up and use the SQL Server PowerShell provider

Follow Up: Avoiding a Full Transaction Log Follow Up: Avoiding a Full Transaction Log

일반적으로 데이터베이스에서 자동 검사점을 수행하면 다음 로그 백업 이후 해당 트랜잭션 로그가 이 검사점까지 잘립니다.Normally, when an automatic checkpoint is performed on a database, its transaction log is truncated to that checkpoint after the next log backup. 그러나 보조 데이터베이스를 일시 중지하는 동안 모든 현재 로그 레코드가 주 데이터베이스에서 활성 상태로 남아 있습니다.However, while a secondary database is suspended, all of the current log records remain active on the primary database. 서버 인스턴스의 공간이 부족하거나 최대 크기에 도달하여 트랜잭션 로그가 가득 차면 데이터베이스는 더 이상 업데이트를 수행할 수 없습니다.If the transaction log fills up (either because it reaches its maximum size or the server instance runs out of space), the database cannot perform any more updates.

이 문제를 방지하려면 다음 중 하나를 수행해야 합니다.To avoid this problem, you should do one of the following:

참고 항목See Also

Always On 가용성 그룹 개요(SQL Server) Overview of Always On Availability Groups (SQL Server)
가용성 데이터베이스 재개(SQL Server)Resume an Availability Database (SQL Server)