sp_replmonitorhelpsubscription(Transact-SQL)
게시자에 있는 하나 이상의 게시에 속한 구독의 현재 상태 정보를 반환하고 반환된 각 구독당 한 개의 행을 반환합니다. 이 저장 프로시저는 복제 모니터링에 사용되며 배포 데이터베이스의 배포자에서 실행됩니다.
구문
sp_replmonitorhelpsubscription [ @publisher = ] 'publisher'
[ , [ @publisher_db = ] 'publisher_db' ]
[ , [ @publication = ] 'publication' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @mode = ] mode ]
[ , [ @topnum = ] topnum ]
[ , [ @exclude_anonymous = ] exclude_anonymous ]
[ , [ @refreshpolicy = ] refreshpolicy ]
인수
- [ @publisher = ] 'publisher'
상태를 모니터링할 게시자의 이름입니다. publisher는 sysname이며 기본값은 NULL입니다. NULL인 경우 배포자를 사용하는 모든 게시자에 대한 정보가 반환됩니다.
- [ @publisher_db = ] 'publisher_db'
게시된 데이터베이스의 이름입니다. publisher_db는 sysname이며 기본값은 NULL입니다. NULL인 경우 게시자에 게시된 모든 데이터베이스에 대한 정보가 반환됩니다.
- [ @publication= ] 'publication'
모니터링할 게시의 이름입니다. publication은 sysname이며 기본값은 NULL입니다.
[ @publication_type= ] publication_type
게시의 유형입니다. publication_type은 int이며 다음 값 중 하나가 될 수 있습니다.값 설명 0
트랜잭션 게시입니다.
1
스냅숏 게시입니다.
2
병합 게시입니다.
NULL(기본값)
복제에서 게시 유형을 확인하려고 합니다.
[ @mode = ] mode
구독 모니터링 정보를 반환할 때 사용하는 필터링 모드입니다. mode는 int이며 다음 값 중 하나일 수 있습니다.값 설명 0(기본값)
모든 구독을 반환합니다.
1
오류가 있는 구독만 반환합니다.
2
생성된 임계값 메트릭 경고가 있는 구독만 반환합니다.
3
오류 또는 생성된 임계값 메트릭 경고가 있는 구독만 반환합니다.
4
가장 성능이 떨어지는 25개의 구독을 반환합니다.
5
가장 성능이 떨어지는 50개의 구독을 반환합니다.
6
현재 동기화 중인 구독만 반환합니다.
7
현재 동기화 중이 아닌 구독만 반환합니다.
- [ @topnum = ] topnum
반환된 데이터의 가장 위에서부터 지정한 수의 구독으로 결과 집합을 제한합니다. topnum은 int이며 기본값은 없습니다.
- [ @exclude_anonymous = ] exclude_anonymous
결과 집합에서 익명 끌어오기 구독을 제외할 것인지 여부입니다. exclude_anonymous는 bit이며 기본값은 0입니다. 값 1은 익명 끌어오기 구독 제외, 값 0은 포함을 의미합니다.
- [ @refreshpolicy= ] refreshpolicy
내부적으로만 사용됩니다.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
열 이름 | 데이터 형식 | 설명 |
---|---|---|
status |
int |
게시와 연관된 모든 복제 에이전트의 최대 상태로 다음 값 중 하나일 수 있습니다. 1 = 시작됨 2 = 성공 3 = 진행 중 4 = 유휴 상태 5 = 다시 시도 중 6 = 실패 |
warning |
int |
게시에 속한 구독에서 생성한 최대 임계값 경고로 다음 값 중 하나 이상의 논리 OR 결과일 수 있습니다. 1 = expiration - 트랜잭션 게시에 대한 구독이 보존 기간 임계값 내에서 동기화되지 않았습니다. 2 = latency - 트랜잭션 게시자에서 구독자로 데이터를 복제하는 데 소요된 시간이 임계값(초)을 초과합니다. 4 = mergeexpiration - 병합 게시에 대한 구독이 보존 기간 임계값 내에서 동기화되지 않았습니다. 8 = mergefastrunduration - 고속 네트워크 연결을 통해 병합 구독을 완전 동기화하는 데 소요된 시간이 임계값(초)을 초과합니다. 16 = mergeslowrunduration - 저속 또는 전화 접속 네트워크 연결을 통해 병합 구독을 완전 동기화하는 데 소요된 시간이 임계값(초)을 초과합니다. 32 = mergefastrunspeed - 고속 네트워크 연결을 통해 병합 구독을 동기화하는 동안 행의 배달 속도가 임계 속도(초당 행 수)를 유지하지 못했습니다. 64 = mergeslowrunspeed ? 저속 또는 전화 접속 네트워크 연결을 통해 병합 구독을 동기화하는 동안 행의 배달 속도가 임계 속도(초당 행 수)를 유지하지 못했습니다. |
subscriber |
sysname |
구독자의 이름입니다. |
subscriber_db |
sysname |
구독에 사용되는 데이터베이스의 이름입니다. |
publisher_db |
sysname |
게시 데이터베이스의 이름입니다. |
publication |
sysname |
게시의 이름입니다. |
publication_type |
int |
게시 유형이며 다음 값 중 하나일 수 있습니다. 0 = 트랜잭션 게시 1 = 스냅숏 게시 2 = 병합 게시 |
subtype |
int |
구독 유형이며 다음 값 중 하나일 수 있습니다. 0 = 밀어넣기 1 = 끌어오기 2 = 익명 |
latency |
int |
트랜잭션 게시에 대해 로그 판독기 또는 배포 에이전트가 전파하는 데이터 변경에 대한 최대 대기 시간(초)입니다. |
latencythreshold |
int |
경고 발생의 기준이 되는 트랜잭션 게시에 대한 최대 대기 시간입니다. |
agentnotrunning |
int |
에이전트가 실행되지 않은 시간(시간)입니다. |
agentnotrunningthreshold |
int |
경고가 발생하기 전까지 에이전트가 실행되지 않은 시간(시간)입니다. |
timetoexpiration |
int |
구독이 동기화되지 않은 경우 만료되기 전까지의 시간(시간)입니다. |
expirationthreshold |
int |
경고가 발생한 구독이 만료되기 전까지의 시간(시간)입니다. |
last_distsync |
datetime |
배포 에이전트가 마지막으로 실행된 날짜/시간입니다. |
distribution_agentname |
sysname |
트랜잭션 게시 구독에 대한 배포 에이전트 작업의 이름입니다. |
mergeagentname |
sysname |
병합 게시 구독에 대한 병합 에이전트 작업의 이름입니다. |
mergesubscriptionfriendlyname |
sysname |
구독에 지정된 이름입니다. |
mergeagentlocation |
sysname |
병합 에이전트가 실행되는 서버의 이름입니다. |
mergeconnectiontype |
int |
구독과 병합 게시를 동기화할 때 사용하는 연결이며 다음 값 중 하나일 수 있습니다. 1 = LAN 2 = 전화 접속 네트워크 연결 3 = 웹 동기화 |
mergePerformance |
int |
구독에 대한 모든 동기화 성능과 비교한 최근 동기화의 성능입니다. 최근 동기화의 배달 속도를 이전의 모든 배달 속도 평균으로 나눈 값을 기반으로 합니다. |
mergerunspeed |
float |
구독에 대한 최근 동기화의 배달 속도입니다. |
mergerunduration |
int |
구독의 최근 동기화를 완료하는 데 걸린 시간입니다. |
monitorranking |
int |
결과 집합에서 구독을 정렬하는 데 사용하는 순위 값이며 다음 값 중 하나일 수 있습니다. 트랜잭션 게시인 경우 60 = 오류 56 = 경고: 성능 심각 52 = 경고: 곧 만료됨 또는 만료됨 50 = 경고: 구독이 초기화되지 않음 40 = 실패한 명령 다시 시도 중 30 = 실행 중이 아님(성공) 20 = 실행 중(시작 중, 실행 중 또는 유휴 상태) 병합 게시인 경우 60 = 오류 56 = 경고: 성능 심각 54 = 경고: 장기 실행 트랜잭션 병합 52 = 경고: 곧 만료됨 50 = 경고: 구독이 초기화되지 않음 40 = 실패한 명령 다시 시도 중 30 = 실행 중(시작 중, 실행 중 또는 유휴 상태) 20 = 실행 중이 아님(성공) |
distributionagentjobid |
binary(16) |
트랜잭션 게시 구독에 대한 배포 에이전트 작업의 ID입니다. |
mergeagentjobid |
binary(16) |
병합 게시 구독에 대한 병합 에이전트 작업의 ID입니다. |
distributionagentid |
int |
구독에 대한 배포 에이전트 작업의 ID입니다. |
distributionagentprofileid |
int |
배포 에이전트에서 사용하는 에이전트 프로필의 ID입니다. |
mergeagentid |
int |
구독에 대한 병합 에이전트 작업의 ID입니다. |
mergeagentprofileid |
int |
병합 에이전트에서 사용하는 에이전트 프로필의 ID입니다. |
주의
sp_replmonitorhelpsubscription은 모든 유형의 복제에 사용됩니다.
sp_replmonitorhelpsubscription은 monitorranking 값으로 결정되는 구독 상태의 심각도를 기준으로 결과 집합을 정렬합니다. 예를 들어 오류 상태에 있는 모든 구독에 대한 행은 경고 상태에 있는 구독에 대한 행보다 위에 정렬됩니다.
사용 권한
배포 데이터베이스에서 db_owner 또는 replmonitor 고정 데이터베이스 역할의 멤버만 sp_replmonitorhelpsubscription을 실행할 수 있습니다.
참고 항목
관련 자료
How to: Programmatically Monitor Replication (Replication Transact-SQL Programming)