SQL Server 엔터프라이즈 관리자가 복제 에이전트를 폴링할 때 복제 에이전트 사용량이 많아서 응답할 수 없을 경우 이 문제가 발생합니다. 따라서 SQL Server 엔터프라이즈 관리자가 복제 에이전트 상태를 알지 못하고 복제 에이전트의 작동 여부를 보고할 수 없습니다.
복제 에이전트가 실패하면 다음 오류 메시지가 나타납니다.
메시지 20536 심각도 10 "복제: 에이전트 실패"
복제 에이전트 사용량이 많은 이유는 여러 가지가 있습니다. 복제 중인 데이터가 많거나 구성 또는 복제 디자인 문제로 인해 프로세스가 오랫동안 실행되었을 수 있습니다.
메시지 빈도를 줄이려면 비활성 임계값을 늘리십시오.
이 값을 변경해도 문제는 해결되지 않습니다. 대신 현재 상태에 대해 복제 에이전트가 폴링되는 빈도가 변경됩니다. 비활성 임계값을 변경하려면 다음을 수행하세요.
SQL Server 엔터프라이즈 관리자의 복제 모니터에서 복제 에이전트 폴더를 마우스 오른쪽 단추로 클릭한 다음 "새로 고침 빈도 및 설정"을 클릭합니다.
복제 모니터가 복제 에이전트 폴링 간에 대기하는 시간(분)을 설정합니다.
복제 에이전트에 문제가 있음을 나타내는 추가 오류 메시지가 표시되지 않는 이상, "에이전트 상태가 확실하지 않습니다"라는 메시지는 정보 메시지일 뿐입니다. 이 메시지가 나타나면 추가 관련 오류가 없을 경우 복제 에이전트를 중지하지 마십시오. 복제 에이전트를 중지하면 수행 중이던 프로세스가 롤백됩니다. 이 경우 프로세스가 완료되기를 기다리는 대신 프로세스를 다시 시작해야 합니다.
PRB: SQL Server Enterprise Manager에서 복제 에이전트가 의심되는 것으로 보고됩니다.
이름 | 설명 | 기본값 |
사용 | 워크플로를 사용하거나 사용하지 않도록 설정합니다. | 예 |
우선 순위 | 알림 우선 순위를 정의합니다. | 1 |
심각도 | 알림 심각도를 정의합니다. | 2 |
Target | Microsoft.SQLServer.2012.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 20554 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2012ID='{C65DF52B-B877-48C3-B546-67D69C494E84}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2012.The_agent_is_suspect._No_response_within_last_minutes_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{C65DF52B-B877-48C3-B546-67D69C494E84}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>20554</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2012.The_agent_is_suspect._No_response_within_last_minutes_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>