구독자의 배포 데이터베이스 가용성입니다.

Microsoft.SQLServer.2008.Replication.Monitor.DistributionDBAvailabilityFromSubscriber (UnitMonitor)

이 모니터는 구독자에서 배포 데이터베이스를 사용할 수 있는지 확인합니다.

Knowledge Base article:

요약

구독자에서 해당 배포 데이터베이스에 연결할 수 없습니다.

구성

이 모니터를 사용하려면 "구독자 모니터링 실행 프로필의 Microsoft SQL Server 복제 배포자 가용성"에서 관리자 권한을 추가해야 합니다.

db 이름 목록 문자열의 db 이름은 쉼표로 구분해야 합니다.

db 이름은 다음 식별자 클래스 중 하나의 요구 사항을 충족해야 합니다.

1) 일반

- Unicode Standard 3.2에서 정의된 문자. 문자의 유니코드 정의에는 영문자 a-z, A-Z 및 다른 언어의 문자가 포함됩니다.

- 밑줄(_)

- Unicode Standard 3.2에서 정의된 문자

- 기본 라틴 문자 또는 기타 스크립트의 10진수

- @ 기호, 달러 기호($), 우물 정자(#) 또는 밑줄(_)

2) 구분 기호로 분리됨 - 모든 문자를 포함할 수 있으며 큰따옴표나 대괄호로 구분해야 합니다.

3) 구분 기호로 분리되지 않음 - 거의 모든 문자 시퀀스일 수 있으며 다음 요구 사항을 충족해야 합니다.

위의 클래스에 속하는 db 이름은 구분 기호 문자를 제외하고 1~128자여야 합니다.

자세한 내용은 https://msdn.microsoft.com/en-us/library/ms175874 페이지를 참조하세요.

원인

이 상황은 다음으로 인해 발생할 수 있습니다.:

해결 방법

다음 조건을 확인하세요.

추가

복제 토폴로지에 방화벽이 있는 경우 http://support.microsoft.com/kb/164667/ 문서를 참조하세요.

LocalAccountTokenFilterPolicy 키를 추가하려면 다음을 실행합니다.

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

재정의 가능한 매개 변수

이름

설명

기본값

알림 우선 순위

알림 우선 순위를 정의합니다.

보통

알림 심각도

알림 심각도를 정의합니다.

오류

CredSsp 사용

이 워크플로를 실행하기 전에 CredSsp가 사용하도록 설정되었음을 나타냅니다. 실행 후에도 사용 가능한 상태로 유지됩니다.

데이터베이스 이름

확인해야 하는 데이터베이스의 ',' 기호로 구분된 이름 목록입니다.

 

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

아니요

알림 생성

워크플로가 알림을 생성하는지를 정의합니다.

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

300

포트

wsman 서비스 포트

5985

접두사

wsman 서비스 이름

wsman

구독자 이름

확인 원본으로 사용해야 하는 구독자의 '|' 기호로 구분된 이름 목록입니다.

 

동기화 시간

동기화 시간

 

시간 제한(초)

워크플로를 닫고 실패로 표시하기 전에 워크플로를 실행할 수 있는 시간을 지정합니다.

300

데이터베이스 연결 시간 제한(초)

워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다.

15

전송

wsman 서비스에 액세스하기 위한 프로토콜 접두사

http

Element properties:

TargetMicrosoft.SQLServer.2008.Replication.Distributor
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL2008 복제: 구독자에서 배포 데이터베이스를 사용할 수 없습니다.
구독자({0})에서 배포 데이터베이스를 사용할 수 없습니다.
{1}
RunAsMicrosoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Replication.Monitor.DistributionDBAvailabilityFromSubscriber" Accessibility="Public" Enabled="false" Target="MS2RD!Microsoft.SQLServer.2008.Replication.Distributor" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.Replication.MonitorType.DistributorAvailabilityFromSubscriberMonitorType" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.Replication.Monitor.DistributionDBAvailabilityFromSubscriber.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Subscriber']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='Message']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Health" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Distributor>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</Distributor>
<Subscriber/>
<Domain>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/Domain$</Domain>
<User>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/UserName$</User>
<Pass>$RunAs[Name="MSRL!Microsoft.SQLServer.Replication.Monitoring.DistributorAvailabilityFromSubscriberMonitor.RunAs.Monitor"]/Password$</Pass>
<Transport>http</Transport>
<Prefix>wsman</Prefix>
<Port>5985</Port>
<DatabaseNames/>
<CredSspEnabled>true</CredSspEnabled>
<IntervalSeconds>300</IntervalSeconds>
<SqlTimeout>15</SqlTimeout>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>