복제 에이전트 이벤트에 대한 경고 사용

적용 대상:SQL ServerAzure SQL Managed Instance

SQL Server Management Studio 및 Microsoft SQL Server 에이전트 경고를 사용하여 복제본(replica) 에이전트 이벤트와 같은 이벤트를 모니터링하는 방법을 제공합니다. SQL Server 에이전트 경고와 연결된 이벤트에 대한 Windows 애플리케이션 로그를 모니터링합니다. 이러한 이벤트가 발생하면 SQL Server 에이전트 정의한 작업을 실행하거나 지정된 운영자에게 전자 메일 또는 호출기 메시지를 전송하여 자동으로 응답합니다. SQL Server에는 작업을 실행하거나 운영자에게 알리도록 구성할 수 있는 복제본(replica)tion 에이전트에 대해 미리 정의된 경고 집합이 포함되어 있습니다. 실행할 태스크를 정의하는 방법은 이 항목의 "경고에 대한 응답 자동화" 섹션을 참조하십시오.

컴퓨터가 배포자로 구성된 경우 다음 경고가 설치됩니다.

메시지 ID 미리 정의된 경고 경고를 발생시키는 조건 msdb에 추가 정보를 입력합니다. sys복제본(replica)tionalerts
14150 복제: 에이전트 성공 에이전트가 성공적으로 종료됩니다.
14151 복제: 에이전트 실패 에이전트가 오류로 종료됩니다.
14152 복제: 에이전트 다시 시도 에이전트는 작업을 다시 시도하지 못한 후 종료됩니다(에이전트는 사용할 수 없는 서버, 교착 상태, 연결 실패 또는 시간 제한 오류와 같은 오류가 발생합니다).
14157 복제: 만료된 구독 삭제 만료된 구독이 삭제되었습니다. 아니요
20572 복제: 유효성 검사 실패 후 구독이 다시 초기화됨 '데이터 유효성 검사 실패 시 구독 다시 초기화' 응답 작업이 구독을 성공적으로 다시 초기화합니다. 아니요
20574 복제: 구독자가 데이터 유효성 검사에 실패했습니다. 배포 또는 병합 에이전트가 데이터 유효성 검사에 실패합니다.
20575 복제: 구독자가 데이터 유효성 검사를 통과했습니다. 배포 또는 병합 에이전트 데이터 유효성 검사를 전달합니다.
20578 복제: 에이전트 사용자 지정 종료 데이터 유효성 검사가 sp_publication_validation 통해 호출되고 @shutdown_agent 설정1되면 유효성 검사가 완료된 후 배포 에이전트가 종료됩니다.
22815 피어 투 피어 충돌 감지 경고 피어 투 피어 노드에서 변경 내용을 적용하려고 할 때 배포 에이전트에서 충돌이 감지되었습니다.

복제 모니터는 이러한 경고 외에도 상태 및 성능과 관련된 경고 및 경고 집합을 제공합니다. 자세한 내용은 Set Thresholds and Warnings in Replication Monitor를 참조하세요. SQL Server 경고 인프라를 사용하여 다른 복제본(replica)tion 이벤트에 대한 경고를 정의할 수도 있습니다. 자세한 내용은 사용자 정의 이벤트 만들기를 참조 하세요.

미리 정의된 복제본(replica) 경고를 구성하려면

애플리케이션 로그 직접 보기

Windows 애플리케이션 로그를 보려면 Microsoft Windows 이벤트 뷰어 사용합니다. 애플리케이션 로그에는 SQL Server 오류 메시지와 컴퓨터의 다른 많은 활동에 대한 메시지가 포함됩니다. SQL Server 오류 로그와 달리 SQL Server를 시작할 때마다 새 애플리케이션 로그가 생성되지 않습니다(각 SQL Server 세션은 기존 애플리케이션 로그에 새 이벤트를 씁니다.) 그러나 기록된 이벤트가 보존되는 기간을 지정할 수 있습니다. Windows 애플리케이션 로그를 볼 때 특정 이벤트에 대한 로그를 필터링할 수 있습니다. 자세한 내용은 Windows 설명서를 참조하십시오.

경고에 대한 응답 자동화

복제 시 데이터 유효성 검사에 실패한 구독에 대한 응답 작업을 제공하며 경고에 대한 자동 응답을 추가로 만드는 프레임워크 또한 제공합니다. 응답 작업의 제목은 데이터 유효성 검사 실패에 대한 구독 다시 초기화이며 SQL Server Management Studio의 SQL Server 에이전트 작업 폴더에 저장됩니다. 이 응답 작업을 사용하도록 설정하는 방법에 대한 자세한 내용은 미리 정의된 복제 경고 구성(SQL Server Management Studio)을 참조하세요. 트랜잭션 게시의 아티클이 유효성 검사에 실패하면 응답 작업은 실패한 아티클만 다시 초기화합니다. 병합 게시의 아티클이 유효성 검사에 실패하면 응답 작업은 게시의 모든 아티클을 다시 초기화합니다.

응답 자동화를 위한 프레임워크

일반적으로 경고가 발생하면 경고가 발생한 원인과 적절한 조치를 이해하는 데 도움이 되는 유일한 정보는 경고 메시지에 포함되어 있습니다. 이 정보를 구문 분석하는 것은 오류가 발생하기 쉽고 시간이 오래 걸릴 수 있습니다. 복제를 사용하면 sys복제본(replica)tionalerts 시스템 테이블의 경고에 대한 추가 정보를 제공하여 응답을 더 쉽게 자동화할 수 있습니다. 제공된 정보는 사용자 지정된 프로그램에서 쉽게 사용하는 양식으로 이미 구문 분석되어 있습니다.

예를 들어 구독자 A의 Sales.SalesOrderHeader 테이블에 있는 데이터가 유효성 검사에 실패하면 SQL Server에서 메시지 20574를 트리거하여 해당 실패를 알릴 수 있습니다. 받는 메시지는 다음과 같습니다. "구독자 'A', 게시 'MyPublication'에서 아티클 'SalesOrderHeader'에 대한 구독이 데이터 유효성 검사에 실패했습니다."

메시지를 기반으로 응답을 만들 때는 메시지에서 구독자 이름, 아티클 이름, 게시 이름 및 오류 등을 수동으로 구문 분석해야 합니다. 그러나 배포 에이전트 및 병합 에이전트 동일한 정보를 sys복제본(replica)tionalerts에 쓰기 때문에(에이전트 유형, 경고 시간, 게시 데이터베이스, 구독자 데이터베이스 및 게시 유형과 같은 세부 정보와 함께) 응답 작업은 테이블에서 관련 정보를 직접 쿼리할 수 있습니다. 경고의 특정 인스턴스에 정확한 행이 관련될 수는 없더라도 테이블에는 서비스된 항목을 추적할 때 사용할 수 있는 status 열이 있습니다. 이 테이블의 항목은 기록 보존 기간 동안 기본.

예를 들어 Transact-SQL에서 경고 메시지 20574를 서비스하는 응답 작업을 만드는 경우 다음 논리를 사용할 수 있습니다.

declare @publisher sysname, @publisher_db sysname, @publication sysname, @publication_type int, @article sysname, @subscriber sysname, @subscriber_db sysname, @alert_id int  
declare hc cursor local for select publisher, publisher_db, publication, publication_type, article, subscriber,   
  subscriber_db, alert_id from   
  msdb..sysreplicationalerts where  
  alert_error_code = 20574 and status = 0  
  for read only  
open hc  
fetch hc into  @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id  
while (@@fetch_status <> -1)  
begin  
/* Do custom work  */  
/* Update status to 1, which means the alert has been serviced. This prevents subsequent runs of this job from doing this again */  
update msdb..sysreplicationalerts set status = 1 where alert_id = @alert_id  
 fetch hc into  @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id  
end  
close hc  
deallocate hc  

참고 항목

복제 에이전트 관리
Best Practices for Replication Administration
모니터링(복제)