데이터베이스 미러링 운영 모드Database Mirroring Operating Modes

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 항목에서는 데이터베이스 미러링 세션의 동기 운영 모드 및 비동기 운영 모드에 대해 설명합니다. This topic describes the synchronous and asynchronous operating modes for database mirroring sessions.

참고

데이터베이스 미러링에 대한 소개는 데이터베이스 미러링(SQL Server)을 참조하세요.For an introduction to database mirroring, see Database Mirroring (SQL Server).

용어 및 정의Terms and Definitions

이 섹션에서는 이 항목의 몇 가지 중요 용어를 소개합니다.This section introduces a few terms that are central to this topic.

성능 우선 모드High-performance mode
데이터베이스 미러링 세션이 비동기적으로 작동하며 주 서버와 미러 서버만 사용합니다.The database mirroring session operates asynchronously and uses only the principal server and mirror server. 역할 전환의 유일한 형식은 강제 서비스(데이터 손실 가능)입니다.The only form of role switching is forced service (with possible data loss).

보호 우선 모드High-safety mode
데이터베이스 미러링 세션이 동기적으로 작동하며 필요한 경우 주 서버와 미러 서버뿐 아니라 미러링 모니터 서버도 사용합니다.The database mirroring session operates synchronously and, optionally, uses a witness, as well as the principal server and mirror server.

트랜잭션 보안Transaction safety
데이터베이스 미러링 세션이 동기적으로 작동하는지 아니면 비동기적으로 작동하는지를 결정하는 미러링별 데이터베이스 속성입니다.A mirroring-specific database property that determines whether a database mirroring session operates synchronously or asynchronously. 보안 수준은 FULL 및 OFF의 두 가지입니다.There are two safety levels: FULL and OFF.

미러링 모니터Witness
보호 우선 모드에서만 사용할 수 있으며, 자동 장애 조치(Failover)가 시작되었는지 여부를 미러 서버에서 인식할 수 있도록 하는 SQL Server의 선택적 인스턴스입니다.For use only with high-safety mode, an optional instance of SQL Server that enables the mirror server to recognize whether to initiate an automatic failover. 미러링 모니터 서버는 두 장애 조치(Failover) 파트너와는 달리 데이터베이스를 제공하지 않습니다.Unlike the two failover partners, the witness does not serve the database. 미러링 모니터 서버는 자동 장애 조치(Failover)를 지원하는 역할만 수행합니다.Supporting automatic failover is the only role of the witness.

비동기 데이터베이스 미러링(성능 우선 모드)Asynchronous Database Mirroring (High-Performance Mode)

이 섹션에서는 비동기 데이터베이스 미러링의 작동 방식 및 성능 우선 모드를 사용하기에 적합한 경우에 대해 설명하고 주 서버 실패 시 어떻게 반응하는지에 대해 설명합니다.This section describes how asynchronous database mirroring works, when it is appropriate to use high-performance mode, and how to respond if the principal server fails.

참고

대부분의 SQL Server 2017SQL Server 2017 버전에서는 동기 데이터베이스 미러링("Safety Full만")만 지원합니다.Most editions of SQL Server 2017SQL Server 2017 support only synchronous database mirroring ("Safety Full Only"). 데이터베이스 미러링을 완전히 지원하는 버전에 대한 내용은 SQL Server 2016의 버전 및 지원하는 기능의 "고가용성(Always On)"을 참조하세요.For information about editions that fully support database mirroring, see "High Availability (Always On)" in Editions and Supported Features for SQL Server 2016.

트랜잭션 보안을 OFF로 설정하면 데이터베이스 미러링 세션은 비동기적으로 작동합니다.When transaction safety is set to OFF, the database mirroring session operates asynchronously. 비동기 작업은 성능 우선 모드의 운영 모드만 지원합니다.Asynchronous operation supports only one operating mode—high-performance mode. 이 모드는 성능을 강화하지만 고가용성은 저하됩니다.This mode enhances performance at the expense of high availability. 성능 우선 모드에서는 주 서버와 미러 서버만 사용됩니다.High-performance mode uses just the principal server and the mirror server. 미러 서버의 문제점은 주 서버에 영향을 주지 않습니다.Problems on the mirror server never impact the principal server. 주 서버가 손실되면 미러 데이터베이스는 DISCONNECTED로 표시되지만 웜 대기로 사용할 수 있습니다.On the loss of the principal server, the mirror database is marked DISCONNECTED but is available as a warm standby.

고성능 모드는 강제 적용 서비스(데이터 손실 가능)라는 한 가지 형태의 역할 전환만 지원하며 이 역할은 웜 대기 서버(warm standby server)로 미러 서버를 사용합니다.High-performance mode, supports only one form of role switching: forced service (with possible data loss), which uses the mirror server as a warm standby server. 강제 서비스는 주 서버 실패에 대한 가능한 응답 중 하나입니다.Forced service is one of the possible responses to the failure of the principal server. 데이터가 손실될 수 있으므로 미러 서버에 서비스를 강제하기 전에 다른 대안을 고려해야 합니다.Because data loss is possible, you should consider other alternatives before forcing service to the mirror. 자세한 내용은 이 항목의 뒷부분에 나오는 주 서버 실패에 대한 응답을 참조하세요.For more information, see Responding to Failure of the Principal, later in this topic.

다음 그림에서는 성능 우선 모드를 사용한 세션 구성을 보여 줍니다.The following figure shows the configuration of a session using high-performance mode.

파트너 전용 세션 구성Partner-only configuration of a session

성능 우선 모드에서 주 서버가 미러 서버로 트랜잭션 로그를 보내면 미러 서버의 확인을 기다리지 않고 즉시 클라이언트로 확인 메시지를 보냅니다.In high-performance mode, as soon as the principal server sends the log for a transaction to the mirror server, the principal server sends a confirmation to the client, without waiting for an acknowledgement from the mirror server. 트랜잭션은 미러 서버에서 로그를 디스크에 쓸 때까지 기다리지 않고 커밋됩니다.Transactions commit without waiting for the mirror server to write the log to disk. 비동기 작업을 통해 주 서버는 최소 트랜잭션 대기 시간을 사용하여 실행됩니다.Asynchronous operation permits the principal server to run with minimum transaction latency.

미러 서버는 주 서버가 보낸 로그 레코드를 유지하려고 합니다.The mirror server attempts to keep up with the log records sent by the principal server. 그러나 일반적으로 두 데이터베이스 간의 차이가 크지는 않지만 미러 데이터베이스는 주 데이터베이스보다 약간 뒤처질 수 있습니다.But the mirror database might lag somewhat behind the principal database, though typically the gap between the databases is small. 그러나 주 서버에 작업이 크거나 미러 서버 시스템이 과부화된 경우 이 시간 간격은 상당히 커질 수 있습니다.However, the gap can become substantial if the principal server is under a heavy work load or the system of the mirror server is over loaded.

섹션 내용In This Section:

성능 우선 모드가 적합한 경우When Is High-Performance Mode Appropriate?

성능 우선 모드는 주 서버와 미러 서버가 상당한 거리로 분리되어 있고 주 서버가 작은 오류의 영향을 받지 않도록 하려는 재해 복구 시나리오에서 유용할 수 있습니다.High-performance mode can be useful in a disaster-recovery scenario in which the principal and mirror servers are separated by a significant distance and where you do not want small errors to impact the principal server.

참고

로그 전달은 데이터베이스 미러링을 보완하며 비동기 데이터베이스 미러링의 대안으로 사용될 수 있습니다.Log shipping can be a supplement to database mirroring and is a favorable alternative to asynchronous database mirroring. 로그 전달의 장점에 대한 자세한 내용은 고가용성 솔루션(SQL Server)을 참조하세요.For information about the advantages of log shipping, see High Availability Solutions (SQL Server). 데이터베이스 미러링을 통해 로그 전달을 사용하는 방법은 데이터베이스 미러링 및 로그 전달(SQL Server)을 참조하세요.For information on using log shipping with database mirroring, see Database Mirroring and Log Shipping (SQL Server).

성능 우선 모드에 대한 미러링 모니터 서버의 영향The Impact of a Witness on High-Performance Mode

Transact-SQL을 사용하여 성능 우선 모드를 구성하는 경우 SAFETY 속성이 OFF로 설정되어 있으면 WITNESS 속성도 OFF로 설정하는 것이 좋습니다.If you use Transact-SQL to configure high-performance mode, whenever the SAFETY property is set to OFF, we strongly recommend that the WITNESS property also be set to OFF. 미러링 모니터 서버는 성능 우선 모드에서 작동할 수 있지만 어떤 이점도 제공하지 않으며 위험만 수반됩니다.A witness can coexist with high-performance mode, but the witness provides no benefit and introduces risk.

파트너 중 하나의 작동이 중단될 때 세션에서 미러링 모니터 서버의 연결이 끊어지면 데이터베이스를 사용할 수 없게 됩니다.If the witness is disconnected from the session when either partner goes down, the database becomes unavailable. 이는 성능 우선 모드에 미러링 모니터 서버가 필요하지는 않지만 미러링 모니터 서버가 설정된 경우 세션에 둘 이상의 서버 인스턴스로 구성된 쿼럼이 필요하기 때문입니다.This is because, even though high-performance mode does not require a witness, if one is set, the session requires a quorum consisting of two or more server instances. 세션에서 쿼럼이 손실되면 데이터베이스를 제공할 수 없습니다.If the session losses quorum, it cannot serve the database.

성능 우선 모드 세션에 미러링 모니터 서버가 설정되어 있을 때 쿼럼의 적용은 다음을 의미합니다.When a witness is set in a high-performance mode session, the enforcement of quorum means that:

  • 미러 서버가 손실되면 주 서버가 미러링 모니터 서버에 연결되어야 합니다.If the mirror server is lost, the principal server must be connected to the witness. 그렇지 않으면 미러링 모니터 서버나 미러 서버가 세션에 다시 참여할 때까지 주 서버가 데이터베이스를 오프라인 상태로 유지합니다.Otherwise, the principal server takes its database offline until either the witness or mirror server rejoins the session.

  • 주 서버가 손실된 경우 미러 서버에 서비스를 강제하려면 미러 서버가 미러링 모니터 서버에 연결되어야 합니다.If the principal server is lost, forcing service to the mirror server requires that the mirror server be connected to the witness.

주 서버 실패에 대한 응답Responding to Failure of the Principal

주 서버에 장애가 발생하면 데이터베이스 소유자가 선택할 수 있는 응답은 다음과 같습니다.When the principal fails, the database owner has several choices, as follows:

  • 주 서버를 다시 사용할 수 있을 때까지 데이터베이스를 사용하지 않습니다.Leave the database unavailable until the principal becomes available again.

    주 데이터베이스와 해당 트랜잭션 로그가 영향을 받지 않은 경우 이 선택은 가용성을 저하시켜 모든 커밋된 트랜잭션을 유지합니다.If the principal database and its transaction log are intact, this choice preserves all of the committed transactions at the expense of availability.

  • 데이터베이스 미러링 세션을 중지하고 데이터베이스를 수동으로 업데이트한 다음 새 데이터베이스 미러링 세션을 시작합니다.Stop the database mirroring session, manually update the database, and then begin a new database mirroring session.

    주 데이터베이스가 손실되었지만 주 서버가 계속 실행 중이면 주 데이터베이스에서 즉시 비상 로그 백업을 시도하세요.If the principal database is lost but the principal server is still running, immediately attempt to back up the tail of the log on the principal database. 비상 로그 백업에 성공한 경우 미러링을 제거하는 것이 좋습니다.If the tail-log backup succeeds, removing mirroring may be your best alternative. 미러링을 제거한 다음 모든 데이터를 유지하는 이전 미러 데이터베이스로 해당 로그를 복원할 수 있습니다.After removing mirroring, you can restore the log onto the former mirror database, which preserves all of the data.

    참고

    비상 로그 백업에 실패하고 주 서버의 복구를 기다릴 수 없는 경우 세션 상태를 유지 관리할 수 있는 강제 서비스를 고려하세요.If the tail-log backup failed and you cannot wait for the principal server to recover, consider forcing service, which has the advantage of maintaining the session state.

  • 미러 서버에서 강제 서비스(데이터 손실 가능)를 실행합니다.Force service (with possible data loss) on the mirror server.

    강제 서비스는 엄밀한 의미에서 재해 복구 방법이며 반드시 필요한 경우에만 사용해야 합니다.Forced service is strictly a disaster recovery method and should be used sparingly. 강제 서비스는 주 서버가 다운되고 세션이 비동기적이며(트랜잭션 보안이 OFF로 설정됨) 세션에 미러링 모니터 서버가 없거나(WITNESS 속성이 OFF로 설정됨) 미러링 모니터 서버가 미러 서버에 연결된 경우(쿼럼이 있음)에만 사용할 수 있습니다.Forcing service is possible only if the principal server is down, the session is asynchronous (transaction safety is set to OFF), and either the session does not have any witness (the WITNESS property is set to OFF) or the witness is connected to the mirror server (that is, they have quorum).

    강제 서비스를 사용하면 미러 서버는 주 서버 역할로 간주되며 주 서버의 데이터베이스 복사본을 클라이언트에게 제공합니다.Forcing service causes the mirror server to assume the role of principal and serve its copy of the database for clients. 강제 서비스를 사용하면 주 서버가 미러 서버로 보내지 않은 트랜잭션 로그는 모두 손실됩니다.When service is forced, whatever transaction logs the principal has not yet sent to the mirror server are lost. 따라서 강제 서비스는 데이터 손실이 허용되고 즉각적인 데이터베이스 가용성이 중요한 상황에서만 사용되어야 합니다.Therefore, you should limit forced service to situations where possible data loss is acceptable and immediate database availability is critical. 강제 서비스 작동 방법과 최선의 사용 방법은 데이터베이스 미러링 세션 중 역할 전환(SQL Server)을 참조하세요.For information on how forced service works and on best practices for using it, see Role Switching During a Database Mirroring Session (SQL Server).

동기 데이터베이스 미러링(보호 우선 모드)Synchronous Database Mirroring (High-Safety Mode)

이 섹션에서는 자동 장애 조치(Failover)가 있거나 없는 대체 보호 우선 모드를 비롯한 동기 데이터베이스 미러링의 작동 방식에 대해 설명하고 자동 장애 조치에서의 미러링 모니터 서버 역할에 대해 설명합니다.This section describes how synchronous database mirroring works, including the alternative high-safety modes (with automatic failover and without automatic failover), and contains information about the role of the witness in automatic failover.

트랜잭션 보안이 FULL로 설정되어 있으면 데이터베이스 미러링 세션은 보호 우선 모드로 실행되며 초기 동기화 단계 이후 동시에 작동합니다.When transaction safety is set to FULL, the database mirroring session runs in high-safety mode and operates synchronously after an initial synchronizing phase. 이 섹션에서는 동기화 작업에 대해 구성되어 있는 데이터베이스 미러링 세션에 대해 설명합니다.This section describes the details of database mirroring sessions that are configured for synchronous operation.

세션에 대한 동기화 작업을 수행하려면 미러 서버에서 미러 데이터베이스를 주 데이터베이스와 동기화해야 합니다.To achieve synchronous operation for a session, the mirror server must synchronize the mirror database with the principal database. 세션이 시작되면 주 서버에서 해당 활성 로그를 미러 서버로 보내기 시작합니다.When the session begins, the principal server begins sending its active log to the mirror server. 미러 서버는 들어오는 모든 로그 레코드를 가능한 한 빨리 디스크에 씁니다.The mirror server writes all of the incoming log records to disk as quickly as possible. 수신된 모든 로그 레코드가 디스크에 기록되면 즉시 데이터베이스가 동기화됩니다.As soon as all of the received log records have been written to disk, the databases are synchronized. 파트너와 통신이 유지되는 한 데이터베이스는 동기화 상태를 유지할 수 있습니다.As long as the partners remain in communication, the databases remain synchronized.

참고

데이터베이스 미러링 세션의 상태 변경을 모니터링하려면 데이터베이스 미러링 상태 변경 이벤트 클래스를 사용합니다.To monitor state changes in a database mirroring session, use the Database Mirroring State Change event class. 자세한 내용은 Database Mirroring State Change Event Class을 참조하세요.For more information, see Database Mirroring State Change Event Class.

동기화가 완료되면 주 데이터베이스에서 커밋된 모든 트랜잭션이 미러 서버에서도 커밋되므로 데이터가 보호됩니다.After synchronization finishes, every transaction committed on the principal database is also committed on the mirror server, guaranteeing protection of the data. 이 작업은 주 서버에서 미러 서버가 트랜잭션 로그를 디스크로 확정했다는 메시지를 받을 때까지 주 데이터베이스에 대한 트랜잭션 커밋을 대기함으로써 수행됩니다.This is achieved by waiting to commit a transaction on the principal database, until the principal server receives a message from the mirror server stating that it has hardened the transaction's log to disk. 이 메시지에 대한 대기로 인해 트랜잭션의 대기 시간이 길어집니다.Note the wait for this message increases the latency of the transaction.

동기화에 필요한 시간은 세션을 시작할 때(처음에 주 서버에서 받은 로그 레코드 수로 측정) 미러 데이터베이스의 주 데이터베이스에 대한 간격, 주 데이터베이스의 작업 및 미러 시스템의 속도에 따라 다릅니다.The time required for synchronization depends essentially on how far the mirror database was behind the principal database at the start of the session (measured by the number of log records initially received from the principal server), the work load on the principal database, and the speed of the mirror system. 세션이 동기화된 후 미러 데이터베이스에서 다시 실행되어야 하는 확정된 로그는 Redo Queue에 남아 있습니다.After a session is synchronized, the hardened log that has yet to be redone on the mirror database remains in the redo queue.

미러 데이터베이스가 동기화되자마자 데이터베이스의 두 복사본의 상태는 SYNCHRONIZED로 변경됩니다.As soon as the mirror database becomes synchronized, the state of both the copies of the database changes to SYNCHRONIZED.

동기화 작업은 다음 방식으로 유지 관리됩니다.Synchronous operation is maintained in the following manner:

  1. 클라이언트로부터 트랜잭션을 받자마자 주 서버는 트랜잭션에 대한 로그를 트랜잭션 로그에 기록합니다.On receiving a transaction from a client, the principal server writes the log for the transaction to the transaction log.

  2. 주 서버는 데이터베이스에 트랜잭션을 기록하고 동시에 로그 레코드를 미러 서버로 보냅니다.The principal server writes the transaction to the database and, concurrently, sends the log record to the mirror server. 주 서버는 미러 서버의 승인을 기다린 후 클라이언트에게 트랜잭션 커밋 또는 롤백을 확인해 줍니다.The principal server waits for an acknowledgement from the mirror server before confirming either of the following to the client: a transaction commit or a rollback.

  3. 미러 서버는 로그를 디스크로 확정하고 주 서버로 승인을 반환합니다.The mirror server hardens the log to disk and returns an acknowledgement to the principal server.

  4. 미러 서버의 승인을 받자마자 주 서버는 확인 메시지를 클라이언트에게 보냅니다.On receiving the acknowledgement from the mirror server, the principal server sends a confirmation message to the client.

    보호 우선 모드에서는 두 위치의 데이터가 동기화되도록 하여 데이터를 보호합니다.High-safety mode protects your data by requiring the data to be synchronized between two places. 커밋된 모든 트랜잭션이 미러 서버의 디스크에 기록됩니다.All the committed transactions are guaranteed to be written to disk on the mirror server.

    섹션 내용In This Section:

자동 장애 조치(Failover)를 지원하지 않는 보호 우선 모드High-Safety Mode Without Automatic Failover

다음 그림에서는 자동 장애 조치(Failover)를 지원하지 않는 보호 우선 모드의 구성을 보여 줍니다.The following figure shows the configuration of high-safety mode without automatic failover. 이 구성은 두 개의 파트너로만 이루어져 있습니다.The configuration consists of only the two partners.

미러링 모니터 서버 없이 통신하는 파트너Partners communicating without a witness

파트너가 연결되어 있으며 데이터베이스가 이미 동기화된 경우 수동 장애 조치가 지원됩니다.When the partners are connected and the database is already synchronized, manual failover is supported. 미러 서버 인스턴스의 작동이 중단되더라도 주 서버 인스턴스는 아무런 영향을 받지 않으며 노출된 상태(데이터를 미러링하지 않음)로 실행됩니다.If the mirror server instance goes down, the principal server instance is unaffected and runs exposed (that is without mirroring the data). 주 서버가 손상되면 미러가 일시 중단되지만 서비스를 미러 서버로 강제 수행할 수 있으며 이 경우 데이터가 손실될 수 있습니다.If the principal server is lost, the mirror is suspended, but service can be forced to the mirror server (with possible data loss). 자세한 내용은 데이터베이스 미러링 세션 중 역할 전환(SQL Server)를 다운로드하세요.For more information, see Role Switching During a Database Mirroring Session (SQL Server).

자동 장애 조치(Failover)를 지원하는 보호 우선 모드High-Safety Mode with Automatic Failover

자동 장애 조치를 사용하면 서버 한 대가 손실되어도 데이터베이스가 여전히 작동되므로 고가용성이 제공됩니다.Automatic failover provides high availability by ensuring that the database is still served after the loss of one server. 자동 장애 조치를 사용하려면 이상적으로 세 번째 컴퓨터에 있는 세 번째 서버 인스턴스인 미러링 모니터 서버가 세션에 필요합니다.Automatic failover requires that the session possess a third server instance, the witness, which ideally resides on a third computer. 다음 그림에서는 자동 장애 조치를 지원하는 보호 우선 모드 세션의 구성을 보여 줍니다.The following figure shows the configuration of a high-safety mode session that supports automatic failover.

세션의 미러링 모니터 서버 및 두 파트너The witness and two partners of a session

미러링 모니터 서버는 두 파트너와는 달리 데이터베이스를 제공하지 않습니다.Unlike the two partners, the witness does not serve the database. 미러링 모니터 서버는 주 서버가 작동하는지 여부만 확인하여 자동 장애 조치를 지원합니다.The witness simply supports automatic failover by verifying whether the principal server is up and functioning. 미러 서버는 미러 서버 및 미러링 모니터 서버가 주 서버와 연결이 끊어진 후에도 서로 연결되어 있는 경우에만 자동 장애 조치를 시작합니다.The mirror server initiates automatic failover only if the mirror and the witness remain connected to each other after both have been disconnected from the principal server.

미러링 모니터 서버를 설정하면 세션에 쿼럼이 필요합니다. 쿼럼은 데이터베이스를 사용할 수 있도록 만드는 두 개 이상 서버 인스턴스 간의 관계입니다.When a witness is set, the session requires quorum—a relationship between at least two server instances that allows the database to be made available. 자세한 내용은 데이터베이스 미러링 모니터 서버쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향(데이터베이스 미러링)을 참조하세요.For more information, see Database Mirroring Witness and Quorum: How a Witness Affects Database Availability (Database Mirroring).

자동 장애 조치(Failover)에는 다음 조건이 필요합니다.Automatic failover requires the following conditions:

  • 데이터베이스가 동기화되어 있습니다.The database is already synchronized.

  • 서버 인스턴스 3개가 모두 연결되어 있는 동안 실패가 발생하고 미러링 모니터 서버와 미러 서버가 계속 연결되어 있습니다.The failure occurs while all three server instances are connected, and the witness and mirror server remain connected.

    파트너가 손실되면 다음과 같은 결과가 나타납니다.The loss of a partner has the following effect:

  • 위의 조건에서 주 서버를 사용할 수 없게 되면 자동 장애 조치가 수행됩니다.If the principal server becomes unavailable under the above conditions, automatic failover occurs. 미러 서버가 주 서버 인스턴스의 역할로 전환하여 해당 데이터베이스를 주 데이터베이스로 제공합니다.The mirror server switches to the role of principal, and it offers its database as the principal database.

  • 이러한 조건을 만족하지 않을 때 주 서버를 사용할 수 없게 되면 서비스가 강제되고 데이터가 손실될 수 있습니다.If the principal server becomes unavailable when those conditions are not met, forcing service (with possible data loss) might be possible. 자세한 내용은 데이터베이스 미러링 세션 중 역할 전환(SQL Server)을 참조하세요.For more information, see Role Switching During a Database Mirroring Session (SQL Server).

  • 미러 서버만 사용할 수 없는 경우 주 서버와 미러링 모니터 서버가 계속 작동됩니다.If the only mirror server becomes unavailable, the principal and witness continue.

    세션에서 미러링 모니터 서버가 손실되면 쿼럼은 두 파트너를 모두 필요로 합니다.If the session loses its witness, quorum requires both partners. 한 파트너가 쿼럼을 잃으면 두 파트너 모두 쿼럼을 잃고 쿼럼이 다시 설정될 때까지 데이터베이스를 사용할 수 없게 됩니다.If either partner loses quorum, both partners lose quorum, and the database becomes unavailable until quorum is re-established. 이 쿼럼 요구 사항은 미러링 모니터 서버가 없을 때 데이터베이스가 노출됨상태(미러링되지 않음)로 실행되지 않도록 합니다.This quorum requirement makes sure that in the absence of a witness the database never runs exposed, that is without being mirrored.

참고

미러링 모니터 서버가 오랫동안 연결 해제된 상태로 유지될 것으로 예상되면 세션에서 미러링 모니터 서버를 일시적으로 제거하는 것이 좋습니다.If you expect the witness to remain disconnected for a significant amount of time, we recommend that you remove the witness from the session until it becomes available.

Transact-SQL 설정 및 데이터베이스 미러링 작업 모드Transact-SQL Settings and Database Mirroring Operating Modes

이 섹션에서는 ALTER DATABASE 설정과 미러된 데이터베이스 및 미러링 모니터 서버의 상태를 중심으로 데이터베이스 미러링 세션에 대해 설명합니다.This section describes a database mirroring session in terms of the ALTER DATABASE settings and states of the mirrored database and witness, if any. 이 섹션은 Transact-SQLTransact-SQL보다는 SQL Server Management StudioSQL Server Management Studio을 사용하여 데이터베이스 미러링을 관리하는 사용자를 위한 것입니다.The section is aimed at users who manage database mirroring primarily or exclusively using Transact-SQLTransact-SQL, rather than using SQL Server Management StudioSQL Server Management Studio.

Transact-SQLTransact-SQL을 사용하는 대신 개체 탐색기에서 데이터베이스 속성 대화 상자의 미러링 페이지를 사용하여 세션의 운영 모드를 제어할 수 있습니다.As an alternative to using Transact-SQLTransact-SQL, you can control the operating mode of a session in Object Explorer using the Mirroring page of the Database Properties dialog box. 자세한 내용은 이 항목의 뒷부분에 나오는 Windows 인증을 사용하여 데이터베이스 미러링 세션 구성(SQL Server Management Studio)을 참조하세요.For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio).

섹션 내용In This Section:

트랜잭션 보안 및 미러링 모니터 상태가 운영 모드에 영향을 주는 방식How Transaction Safety and Witness State Affect the Operating Mode

세션 운영 모드는 트랜잭션 보안 설정 및 미러링 모니터 상태의 조합에 의해 결정됩니다.The operating mode of a session is determined by the combination of its transaction safety setting and the state of the witness. 데이터베이스 소유자는 언제든지 트랜잭션 보안 수준을 변경하고 미러링 모니터를 추가 또는 제거할 수 있습니다.At any time, the database owner can change the transaction safety level, and can add or remove the witness.

섹션 내용In This Section:

Transaction SafetyTransaction Safety

트랜잭션 보안은 데이터베이스 미러링 세션이 동기적으로 작동하는지 아니면 비동기적으로 작동하는지를 결정하는 미러링별 데이터베이스 속성입니다.Transaction safety is a mirroring-specific database property that determines whether a database mirroring session operates synchronously or asynchronously. 보안 수준은 FULL 및 OFF의 두 가지입니다.There are two safety levels: FULL and OFF.

  • SAFETY FULLSAFETY FULL

    FULL 트랜잭션 보안 수준으로 설정하면 세션이 동기적으로 보호 우선 모드에서 작동합니다.Full transaction safety causes the session to operate synchronously in high-safety mode. 또한 미러링 모니터 서버가 있으면 세션에서 자동 장애 조치(Failover)가 지원됩니다.If a witness is present, a session supports automatic failover.

    ALTER DATABASE 문을 사용하여 세션을 설정하면 세션은 SAFETY 속성이 FULL로 설정되어 시작됩니다. 즉, 세션이 보호 우선 모드로 시작됩니다.When you establish a session using ALTER DATABASE statements, the session begins with the SAFETY property set to FULL; that is, the session begins in high-safety mode. 이 경우 세션이 시작된 후에 미러링 모니터 서버를 추가할 수 있습니다.After the session begins, you can add a witness.

    자세한 내용은 이 항목의 앞부분에 나오는 동기 데이터베이스 미러링(보호 우선 모드)을 참조하세요.For more information, see Synchronous Database Mirroring (High-Safety Mode), earlier in this topic.

  • SAFETY OFFSAFETY OFF

    트랜잭션 보안 기능을 끄면 세션이 비동기적으로 성능 우선 모드에서 작동합니다.Turning off transaction safety causes the session to operate asynchronously, in high-performance mode. SAFETY 속성을 OFF로 설정하면 WITNESS 속성도 OFF(기본값)로 설정해야 합니다.If the SAFETY property is set to OFF, the WITNESS property should also be set to OFF (the default). 성능 우선 모드에서 미러링 모니터의 영향에 대한 자세한 내용은 이 항목의 뒷부분에 나오는 미러링 모니터 상태를 참조하세요.For information about the impact of the witness in high-performance mode, see The State of the Witness, later in this topic. 트랜잭션 보안이 해제된 상태에서 실행하는 방법은 이 항목의 앞부분에 나오는 비동기 데이터베이스 미러링(성능 우선 모드)을 참조하세요.For more information about running with transaction safety turned off, see Asynchronous Database Mirroring (High-Performance Mode), earlier in this topic.

    각 파트너의 데이터베이스 트랜잭션 보안 설정은 sys.database_mirroring 카탈로그 뷰의 mirroring_safety_levelmirroring_safety_level_desc 열에 기록됩니다.The transaction safety setting of the database is recorded on each partner in the sys.database_mirroring catalog view in the mirroring_safety_level and mirroring_safety_level_desc columns. 자세한 내용은 sys.database_mirroring(Transact-SQL)을 참조하세요.For more information, see sys.database_mirroring (Transact-SQL).

    데이터베이스 소유자는 언제든지 트랜잭션 보안 수준을 변경할 수 있습니다.The database owner can change the transaction safety level at any time.

미러링 모니터 상태The State of the Witness

미러링 모니터가 설정된 경우 쿼럼이 필요하므로 미러링 모니터의 상태가 항상 중요합니다.If a witness has been set, quorum is required, so the state of the witness is always significant.

미러링 모니터가 있을 경우 미러링 모니터는 다음 두 가지 상태 중 하나입니다.If it exists, the witness has one of two states:

  • 미러링 모니터가 파트너에 연결되어 있으면 미러링 모니터는 해당 파트너에 대해 CONNECTED 상태가 되며 이 파트너와의 쿼럼이 구성됩니다.When the witness is connected to a partner, the witness is in the CONNECTED state relative to that partner and has quorum with that partner. 이 경우 파트너 중 하나를 사용할 수 없어도 데이터베이스를 사용 가능하도록 만들 수 있습니다.In this case, the database can be made available, even if one of the partners is unavailable.

  • 미러링 모니터가 있지만 파트너에 연결되어 있지 않으면 미러링 모니터는 해당 파트너에 대해 UNKOWN 또는 DISCONNECTED 상태가 됩니다.When the witness exists but is not connected to a partner, the witness is in the UNKOWN or DISCONNECTED state relative to that partner. 이 경우 미러링 모니터와 이 파트너 간에는 쿼럼이 없으며 파트너가 서로 연결되어 있지 않으면 데이터베이스를 사용할 수 없게 됩니다.In this case, the witness lacks quorum with that partner, and if the partners are not connected to each other, the database becomes unavailable.

    쿼럼에 대한 자세한 내용은 쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향(데이터베이스 미러링)을 참조하세요.For information about quorum, see Quorum: How a Witness Affects Database Availability (Database Mirroring).

    서버 인스턴스에서 각 미러링 모니터의 상태는 sys.database_mirroring 카탈로그 뷰의 mirroring_witness_statemirroring_witness_state_desc 열에 기록됩니다.The state of each witness on a server instance is recorded in the sys.database_mirroring catalog view in the mirroring_witness_state and mirroring_witness_state_desc columns. 자세한 내용은 sys.database_mirroring(Transact-SQL)을 참조하세요.For more information, see sys.database_mirroring (Transact-SQL).

    다음 표에서는 세션 운영 모드가 트랜잭션 보안 설정 및 미러링 모니터 상태의 조합에 따라 어떻게 달라지는지를 보여 줍니다.The following table summarizes how the operating mode of a session depends upon its transaction safety setting and on state of the witness.

운영 모드Operating mode 트랜잭션 보안Transaction safety 미러링 모니터 상태Witness state
성능 우선 모드High-performance mode OFFOFF NULL(미러링 모니터 없음)NULL (no witness)
자동 장애 조치(Failover)를 지원하지 않는 보호 우선 모드High-safety mode without automatic failover FULLFULL NULL(미러링 모니터 없음)NULL (no witness)
자동 장애 조치를 지원하는 보호 우선 모드High-safety mode with automatic failover FULLFULL CONNECTEDCONNECTED

미러링 모니터 서버의 연결이 끊어질 경우 미러링 모니터 서버 인스턴스를 사용할 수 있을 때까지 WITNESS 속성을 OFF로 설정하는 것이 좋습니다.If the witness becomes disconnected, we recommend that you set WITNESS OFF until the witness server instance becomes available.

미러링 모니터는 성능 우선 모드에 있을 경우 세션에 참여하지 않습니다.If a witness is present in high-performance mode, the witness does not participate in the session. 그러나 데이터베이스를 사용하려면 최소 두 개의 서버 인스턴스가 연결되어 있어야 합니다.However, to make the database available, at least two of the server instances must remain connected. 따라서 성능 우선 모드 세션에서는 WITNESS 속성을 OFF로 설정된 상태로 유지하는 것이 좋습니다.Therefore, we recommend keeping the WITNESS property set to OFF in high-performance mode sessions. 자세한 내용은 쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향(데이터베이스 미러링)을 참조하세요.For more information, see Quorum: How a Witness Affects Database Availability (Database Mirroring).

보안 설정 및 미러링 모니터 상태 보기Viewing the Safety Setting and State of the Witness

데이터베이스의 보안 설정 및 미러링 모니터 상태를 보려면 sys.database_mirroring 카탈로그 뷰를 사용합니다.To view the safety setting and the state of the witness for a database, use the sys.database_mirroring catalog view. 관련된 열은 다음과 같습니다.The relevant columns are as follows:

요소Factor Columns 설명Description
트랜잭션 보안Transaction safety mirroring_safety_level 또는 mirroring_safety_level_descmirroring_safety_level or mirroring_safety_level_desc 다음 중 하나에 해당되는 미러 데이터베이스상의 업데이트를 위한 트랜잭션 보안 설정Transaction safety setting for updates on the mirror database, one of:

UNKNOWNUNKNOWN

OFFOFF

FULLFULL

NULL = 데이터베이스가 온라인이 아닙니다.NULL= database is not online.
미러링 모니터의 존재 여부Does a witness exist? mirroring_witness_namemirroring_witness_name 데이터베이스 미러링 모니터의 서버 이름 또는 미러링 모니터가 존재하지 않음을 나타내는 NULLServer name of the database mirroring witness or NULL, indicating that no witness exists.
미러링 모니터 상태Witness state mirroring_witness_state 또는 mirroring_witness_state_descmirroring_witness_state or mirroring_witness_state_desc 지정된 파트너상의 데이터베이스에서 미러링 모니터의 상태State of the witness in the database on a given partner:

UNKNOWNUNKNOWN

CONNECTEDCONNECTED

DISCONNECTEDDISCONNECTED

NULL = 미러링 모니터가 존재하지 않거나 데이터베이스가 온라인이 아닙니다.NULL = no witness exists or the database is not online.

예를 들어 주 서버 또는 미러 서버에서 다음을 입력합니다.For example, on either the principal or mirror server, enter:

SELECT mirroring_safety_level_desc, mirroring_witness_name, mirroring_witness_state_desc FROM sys.database_mirroring  

이 카탈로그 뷰에 대한 자세한 내용은 sys.database_mirroring(Transact-SQL)을 참조하세요.For more information about this catalog view, see sys.database_mirroring (Transact-SQL).

주 서버가 손실된 경우 동작에 영향을 주는 요소Factors Affecting Behavior on Loss of the Principal Server

다음 표에서는 트랜잭션 보안 설정, 데이터베이스 상태, 그리고 주 서버가 손실된 경우 미러링 모니터의 상태가 미러링 세션의 동작에 주는 영향을 보여 줍니다.The following table summarizes the combined effect of the transaction safety setting, the state of the database, and the state of the witness on the behavior of a mirroring session on the loss of the principal server.

트랜잭션 보안Transaction safety 미러 데이터베이스의 미러링 상태Mirroring state of mirror database 미러링 모니터 상태Witness state 주 서버가 손실된 경우의 동작Behavior when principal is lost
FULLFULL SYNCHRONIZEDSYNCHRONIZED CONNECTEDCONNECTED 자동 장애 조치(Failover)가 수행됩니다.Automatic failover occurs.
FULLFULL SYNCHRONIZEDSYNCHRONIZED DISCONNECTEDDISCONNECTED 미러 서버가 중지되고 장애 조치를 수행할 수 없으며 데이터베이스를 사용할 수 없습니다.Mirror server stops; failover is not possible, and the database cannot be made available.
OFFOFF SUSPENDED 또는 DISCONNECTEDSUSPENDED or DISCONNECTED NULL(미러링 모니터 없음)NULL (no witness) 미러 서버로 서비스가 강제됩니다(데이터가 손실될 수 있음).Service can be forced to the mirror server (with possible data loss).
FULLFULL SYNCHRONIZING 또는 SUSPENDEDSYNCHRONIZING or SUSPENDED NULL(미러링 모니터 없음)NULL (no witness) 미러 서버로 서비스가 강제됩니다(데이터가 손실될 수 있음).Service can be forced to the mirror server (with possible data loss).

관련 태스크Related Tasks

참고 항목See Also

데이터베이스 미러링 모니터링(SQL Server) Monitoring Database Mirroring (SQL Server)
데이터베이스 미러링 모니터 서버Database Mirroring Witness