이 모니터는 이 배포자에서 서비스되는 모든 게시에 대한 배포 에이전트의 상태를 확인합니다.
하나 이상의 배포 에이전트가 실패했습니다.
배포 에이전트 오류를 설명할 수 있는 일부 원인은 다음과 같습니다.
구독이 초기화되지 않았으며 스냅숏을 사용할 수 없습니다.
배포 에이전트가 권한이 없는 계정으로 실행되고 있습니다.
쿼리 시간이 초과되었습니다.
구독자에서 기본 키 위반 또는 "행을 찾을 수 없음" 오류가 발생했습니다.
배포 또는 구독자 데이터베이스에 연결할 수 없습니다.
비대화형 데스크톱 힙에 대한 메모리 소모( http://support.microsoft.com/kb/949296)
배포 에이전트가 'C:\Program Files\Microsoft SQL Server\100\COM' 디렉터리에 임시 파일을 만들지 못했습니다(SQL 2008 및 SQL 2008 R2에 해당). http://support.microsoft.com/kb/956032
배포 에이전트에서 스냅숏 파일을 볼 수 없습니다.
SQL 에이전트 서비스가 필요한 권한을 갖고 있지 않습니다.
배포 에이전트에 잘못된 매개 변수가 전달되었습니다.
배포 에이전트가 권한이 없는 계정으로 실행되고 있습니다.
복제 토폴로지에 여러 서버가 포함된 경우 도메인 계정으로 SQL Server 에이전트를 실행해야 합니다.
배포 에이전트 계정은 배포 및 구독자 데이터베이스에서 [db_owner] 고정 역할의 멤버여야 합니다.
쿼리 시간이 초과되었습니다.
배포자 및 구독자에 대한 차단을 확인하고, 배포 에이전트가 차단되었는지 확인합니다. 차단을 해결하고 에이전트를 다시 시작합니다.
배포 에이전트의 쿼리 시간 제한 값을 늘립니다.
구독자에서 기본 키 위반 또는 "행을 찾을 수 없음" 오류가 발생했습니다..
아티클 속성을 확인하여 모든 삽입이 복제 중인지 확인하고, 건너뛰는 명령이 없도록 명령을 업데이트 및 삭제합니다.
사용자에게 구독자 데이터베이스에 대한 쓰기 권한이 없는지 확인합니다.
-skiperrors 매개 변수를 사용하여 이 오류를 무시하도록 배포자 에이전트를 구성합니다(임시 해결책으로 이 방법을 사용하고 근본 문제를 해결해야 함).
배포 또는 구독자 데이터베이스에 연결할 수 없습니다.
배포 에이전트 계정은 배포 및 구독자 데이터베이스에서 [db_owner] 고정 역할의 멤버여야 합니다. SQL Server Management Studio에서 구독자 데이터베이스와 배포 데이터베이스 모두에 연결할 수 있는지 확인합니다.
배포자 및 게시자에서 방화벽 내의 SQL Server에 사용되는 TCP 및 UDP 포트를 활성화합니다.
비대화형 데스크톱 힙에 대한 메모리 소모.
이 KB에 설명된 다음 해결 방법 중 하나를 사용하여 문제를 해결하세요.
배포 에이전트가 'C:\Program Files\Microsoft SQL Server\100\COM' 디렉터리에 임시 파일을 만들지 못했습니다(SQL 2008 및 SQL 2008 R2에 해당).
이 KB에 설명된 다음 해결 방법 중 하나를 사용하여 문제를 해결하세요.
배포 에이전트가 스냅숏 파일을 읽을 수 없습니다.
UNC 경로를 사용하여 스냅숏 폴더를 저장합니다. 폴더를 공유하고 배포 에이전트 계정에 읽기 권한을 부여합니다.
SQL 에이전트 서비스가 필요한 권한을 갖고 있지 않습니다.
http://msdn.microsoft.com/library/ms143504.aspx에 따라 SQL 에이전트 서비스 SID에 다음 권한이 있는지 확인합니다.
서비스로 로그온(SeServiceLogonRight)
프로세스 수준 토큰 바꾸기(SeAssignPrimaryTokenPrivilege)
트래버스 검사 무시(SeChangeNotifyPrivilege)
프로세스에 대한 메모리 할당량 조정(SeIncreaseQuotaPrivilege)
배포 에이전트 명령에 잘못된 매개 변수가 전달되었습니다.
배포 에이전트 명령줄에 전달된 매개 변수를 확인하세요.
이 프로세스는 테이블에 대량 복사를 수행할 수 없습니다.
배포 에이전트 작업에서 –BCPBatchSize 매개 변수로 전달되는 값을 줄입니다.
배포 에이전트를 다시 실행하고 -OutputVerboseLevel 2 매개 변수를 추가합니다. 그러면 실패한 문에 대한 자세한 정보가 제공됩니다.
sysadmin 또는 db_owner 역할의 멤버만 이 작업을 수행할 수 있습니다.
배포 데이터베이스와 구독자가 서로 다른 도메인에 있고 도메인 간에 트러스트 관계가 없는 경우(특히 구독자 도메인이 배포 도메인을 트러스트하지 않는 경우) 지정한 명명된 계정을 사용해야 합니다.
구독자에 대한 SQL Server 에이전트 오류 정보를 보면 표시된 '구독'의 첫 번째 부분에 구독자 이름이 나타납니다.
구독자에서 이 에이전트 로그인 계정이 유효한 로그인인지 확인합니다.
구독자에서 에이전트 로그인 계정에 복제 중인 데이터베이스에 대한 'sysadmin' 또는 'db_owner' 역할이 있는지 확인합니다.
http://technet.microsoft.com/library/ms147328.aspx
이름 | 설명 | 기본값 |
알림 우선 순위 | 알림 우선 순위를 정의합니다. | 보통 |
알림 심각도 | 알림 심각도를 정의합니다. | 오류 |
사용 | 워크플로를 사용하거나 사용하지 않도록 설정합니다. | 예 |
예상 작업 기간 | 작업 일정 준수를 확인하는 데 사용 중인 임계값입니다. | 15 |
알림 생성 | 워크플로가 알림을 생성하는지를 정의합니다. | 예 |
간격(초) | 워크플로를 실행하는 반복 시간 간격(초)입니다. | 300 |
상태가 알려진 작업 표시 | 모니터 출력 및 알림 컨텍스트에 알 수 없는 상태의 작업을 포함합니다. 상태에 영향을 줍니다. | 아니요 |
동기화 시간 | 동기화 시간 |
|
시간 제한(초) | 워크플로를 닫고 실패로 표시하기 전에 워크플로를 실행할 수 있는 시간을 지정합니다. | 300 |
데이터베이스 연결 시간 제한(초) | 워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다. | 15 |
Target | Microsoft.SQLServer.2014.Replication.Distributor | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.Replication.MonitorType.ReplicationAgentState | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2014.Replication.Monitor.DistributionAgentState" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.Replication.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Replication.Monitor.DistributionAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SqlTimeout>15</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<XPathName>Distribution$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>