Transact-SQL 설정 및 데이터베이스 미러링 작업 모드
이 항목은 ALTER DATABASE 설정과 미러된 데이터베이스 및 미러링 모니터 서버의 상태를 중심으로 데이터베이스 미러링 세션의 작업을 설명합니다. 이 항목은 Microsoft SQL Server Management Studio보다는 Transact-SQL을 사용하여 데이터베이스를 관리하는 사용자들을 위한 것입니다. 운영 모드에 익숙하지 않으면 데이터베이스 미러링 세션을 참조하십시오.
[!참고] Transact-SQL을 사용하는 대신 개체 탐색기에서 데이터베이스 속성 대화 상자의 미러링 페이지를 사용하여 세션의 운영 모드를 제어할 수 있습니다. 자세한 내용은 방법: 데이터베이스 미러링 세션 구성(SQL Server Management Studio)을 참조하십시오.
트랜잭션 보안 및 미러링 모니터 상태가 운영 모드에 영향을 주는 방식
세션 운영 모드는 트랜잭션 보안 설정 및 미러링 모니터 상태의 조합에 의해 결정됩니다. 데이터베이스 소유자는 언제든지 트랜잭션 보안 수준을 변경하고 미러링 모니터를 추가 또는 제거할 수 있습니다.
트랜잭션 보안
트랜잭션 보안은 데이터베이스 미러링 세션이 동기적으로 작동하는지 아니면 비동기적으로 작동하는지를 결정하는 미러링별 데이터베이스 속성입니다. 보안 수준은 FULL 및 OFF의 두 가지입니다.
- SAFETY FULL
FULL 트랜잭션 보안 수준으로 설정하면 세션이 동기적으로 보안 우선 모드에서 작동합니다. 또한 미러링 모니터 서버가 있으면 세션에서 자동 장애 조치(Failover)가 지원됩니다.
ALTER DATABASE 문을 사용하여 세션을 설정하면 세션은 SAFETY 속성이 FULL로 설정되어 시작됩니다. 즉, 세션이 보안 우선 모드로 시작됩니다. 이 경우 세션이 시작된 후에 미러링 모니터 서버를 추가할 수 있습니다.
자세한 내용은 동기 데이터베이스 미러링(보호 우선 모드)을 참조하십시오. - SAFETY OFF
트랜잭션 보안 기능을 끄면 세션이 비동기적으로 성능 우선 모드에서 작동합니다. SAFETY 속성을 OFF로 설정하면 WITNESS 속성도 OFF(기본값)로 설정해야 합니다. 성능 우선 모드에서 미러링 모니터의 영향에 대한 자세한 내용은 이 항목의 뒤에 나오는 "미러링 모니터 상태"를 참조하십시오. 트랜잭션 보안이 해제된 상태에서 실행하는 방법은 비동기 데이터베이스 미러링(성능 우선 모드)을 참조하십시오.
각 파트너의 데이터베이스 트랜잭션 보안 설정은 sys.database_mirroring 카탈로그 뷰의 mirroring_safety_level 및 mirroring_safety_level_desc 열에 기록됩니다. 자세한 내용은 sys.database_mirroring(Transact-SQL)을 참조하십시오.
데이터베이스 소유자는 언제든지 트랜잭션 보안 수준을 변경할 수 있습니다.
미러링 모니터 상태
미러링 모니터가 설정된 경우 쿼럼이 필요하므로 미러링 모니터의 상태가 항상 중요합니다.
미러링 모니터가 있을 경우 미러링 모니터는 다음 두 가지 상태 중 하나입니다.
- 미러링 모니터가 파트너에 연결되어 있으면 미러링 모니터는 해당 파트너에 대해 CONNECTED 상태가 되며 이 파트너와의 쿼럼이 구성됩니다. 이 경우 파트너 중 하나를 사용할 수 없어도 데이터베이스를 사용 가능하도록 만들 수 있습니다.
- 미러링 모니터가 있지만 파트너에 연결되어 있지 않으면 미러링 모니터는 해당 파트너에 대해 UNKOWN 또는 DISCONNECTED 상태가 됩니다. 이 경우 미러링 모니터와 이 파트너 간에는 쿼럼이 없으며 파트너가 서로 연결되어 있지 않으면 데이터베이스를 사용할 수 없게 됩니다.
쿼럼에 대한 자세한 내용은 쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향을 참조하십시오.
서버 인스턴스에서 각 미러링 모니터의 상태는 mirroring_witness_state 및 mirroring_witness_state_desc 열에 sys.database_mirroring 카탈로그 뷰로 기록됩니다. 자세한 내용은 sys.database_mirroring(Transact-SQL)을 참조하십시오.
다음 표에서는 세션 운영 모드가 트랜잭션 보안 설정 및 미러링 모니터 상태의 조합에 따라 어떻게 달라지는지를 보여 줍니다.
운영 모드 | 트랜잭션 보안 | 미러링 모니터 상태 |
---|---|---|
성능 우선 모드 |
OFF |
NULL(미러링 모니터 없음)2 |
자동 장애 조치를 지원하지 않는 보안 우선 모드 |
FULL |
NULL(미러링 모니터 없음) |
자동 장애 조치를 지원하는 보안 우선 모드1 |
FULL |
CONNECTED |
1 미러링 모니터 서버의 연결이 끊어질 경우 미러링 모니터 서버 인스턴스를 사용할 수 있을 때까지 WITNESS 속성을 OFF로 설정하는 것이 좋습니다.
2 미러링 모니터는 성능 우선 모드에 있을 경우 세션에 참여하지 않습니다. 그러나 데이터베이스를 사용하려면 최소 두 개의 서버 인스턴스가 연결되어 있어야 합니다. 따라서 성능 우선 모드 세션에서는 WITNESS 속성을 OFF로 설정된 상태로 유지하는 것이 좋습니다. 자세한 내용은 쿼럼: 미러링 모니터 서버가 데이터베이스 가용성에 미치는 영향을 참조하십시오.
보안 설정 및 미러링 모니터 상태 보기
데이터베이스의 보안 설정 및 미러링 모니터 상태를 보려면 sys.database_mirroring 카탈로그 뷰를 사용합니다. 관련된 열은 다음과 같습니다.
요소 | 열 | 설명 |
---|---|---|
트랜잭션 보안 |
mirroring_safety_level 또는 mirroring_safety_level_desc |
다음 중 하나에 해당되는 미러 데이터베이스상의 업데이트를 위한 트랜잭션 보안 설정 UNKNOWN OFF FULL NULL = 데이터베이스가 온라인이 아닙니다. |
미러링 모니터의 존재 여부 |
mirroring_witness_name |
데이터베이스 미러링 모니터의 서버 이름 또는 미러링 모니터가 존재하지 않음을 나타내는 NULL |
미러링 모니터 상태 |
mirroring_witness_state 또는 mirroring_witness_state_desc |
지정된 파트너상의 데이터베이스에서 미러링 모니터의 상태 UNKNOWN CONNECTED DISCONNECTED NULL = 미러링 모니터가 존재하지 않거나 데이터베이스가 온라인이 아닙니다. |
예를 들어 주 서버 또는 미러 서버에서 다음을 입력합니다.
SELECT mirroring_safety_level_desc, mirroring_witness_name, mirroring_witness_state_desc FROM sys.database_mirroring
이 카탈로그 뷰에 대한 자세한 내용은 sys.database_mirroring(Transact-SQL)을 참조하십시오.
미러링 모니터 추가
미러링 모니터 제거
트랜잭션 보안 변경
주 서버가 손실된 경우 동작에 영향을 주는 요소
다음 표에서는 트랜잭션 보안 설정, 데이터베이스 상태, 그리고 주 서버가 손실된 경우 미러링 모니터의 상태가 미러링 세션의 동작에 주는 영향을 보여 줍니다.
트랜잭션 보안 | 미러 데이터베이스의 미러링 상태 | 미러링 모니터 상태 | 주 서버가 손실된 경우의 동작 |
---|---|---|---|
FULL |
SYNCHRONIZED |
CONNECTED |
자동 장애 조치(Failover)가 수행됩니다. |
FULL |
SYNCHRONIZED |
DISCONNECTED |
미러 서버가 중지되고 장애 조치를 수행할 수 없으며 데이터베이스를 사용할 수 없습니다. |
OFF |
SUSPENDED 또는 DISCONNECTED |
NULL(미러링 모니터 없음) |
미러 서버로 서비스가 강제됩니다(데이터가 손실될 수 있음). |
FULL |
SYNCHRONIZING 또는 SUSPENDED |
NULL(미러링 모니터 없음) |
미러 서버로 서비스가 강제됩니다(데이터가 손실될 수 있음). |
참고 항목
작업
방법: 데이터베이스 미러링 세션에서 트랜잭션 보안 변경(Transact-SQL)
방법: 데이터베이스 미러링 세션에서 미러링 모니터 제거(Transact-SQL)
개념
비동기 데이터베이스 미러링(성능 우선 모드)
미러링 상태
데이터베이스 미러링 모니터 서버
동기 데이터베이스 미러링(보호 우선 모드)
관련 자료
sys.database_mirroring(Transact-SQL)