MS-SQL Server

복제시 “단계에서 결과를 생성하지 않았습니다” 해결 방법

비회원 2007. 11. 22. 14:17

                                                                                    [by 박성출 - 2007.11.22]
복제시단계에서 결과를 생성하지 않았습니다해결 방법

 

오류 번호 : 14151

 

요약

Distribute(77)서버와 publication(73)번간 트랜잭션 복제시 Log Reader(로그 읽기 에이전트) 로그를 읽고 배포에이전트를 실행시킨 다음 에러메시지를 발생시키면서 죽는 현상

다음 사용자로 실행되었습니다. DENFRA\sql_exe 복제-복제 트랜잭션 로그 판독기 하위 시스템: 에이전트 PUBLICATION-DATABASE-NAME-6() 실패했습니다. 단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다. [SQLSTATE 42000] (오류 14151).  단계가 실패했습니다.

 

참고

http://www.developmentnow.com/g/114_2006_2_0_0_697829/WHY.htm

동일 문제 확인

 << OLE Object: 그림 (장치 독립적 비트맵) >>

 

해결 방법 확인

 << OLE Object: 그림 (장치 독립적 비트맵) >>

 

@@servername 보정해 줌으로써 해결하였다고 . 실낱 같은 힌트

 

문제 해결 단계

1.        @@servername 통해서 해결했다고 했기에 문제가 발생한 서버간 @@servername확인

: Cashsqle01 distribute 서버에서 @@servername 정상적으로 보여지는 확인

2.        양쪽서버에서 호스트명으로만 통신이 되는지 확인

: Ping 통해 사설IP 정상적으로 통신 되는 확인

3.        호스트네임을 사용하는 연결된서버/원격서버로 통신이 되는지 확인

: 호스트 네임으로 양쪽 모두 연결이 되는 확인

4.        양쪽서버에서 hosts파일에 호스트네임에 사설IP 사용하는지 확인

: Distribute -> publication : 사설IP 지정하였기에 이상 없슴 확인

: Publication -> distribute : 금일 사설IP만을 사용하도록 변경되었기에 호스트파일에 지정할 필요가 없어서 모두 삭제함. DNS 서버에서 이름 확인을 해오기 때문에..

5.        혹시 몰라 양쪽 RPC/ DTC통신 확인

: Dtcping 통해 정상적으로 작동 확인

6.        양쪽서버에 터미널로 접속해 쿼리분석기를 통해 상대편 서버에 호스트네임으로 접속되는지 확인

: 정상적으로 연결 됨을 확인

7.        클라이언트 네트워크 유틸리티를 열어 publication 다른 캐시서버간의 차이점 확인

: Publication 서버에서 distributeL 이라는 별칭이 공인으로 되어 있슴을 확인

8.        Publication 서버에서 distributeL이라는 별칭을 사설IP 등록하고 연결 확인

: 정상적으로 작동 됨을 확인

9.        Distribute 서버에서 계속 오류가 나는 확인

: 계속 오류 발생 확인

10.     Distribute 로그읽기 에이전트 중지시킨후 재시작

: 로그읽기 에이전트가 이상 오류를 발생시키지 않음 확인

11.     임시방편으로 로그읽기 에이전트에 추가한 스텝 제거후 오류 발생 확인

: 오류 없이 정상 작동 확인

 

결국 문제의 원인은 publication 서버의 클라이언트 네트웍 유틸리티에서 distributeL이라는 이름이 사설IP 정상적으로 등록되지 않았기 때문. 보통 호스트네임과 동일한 이름으로 복제가 되는데 여기서는 distributeL이라는 설정을 통해 복제가 되었기 때문에 별칭 등록미스로 인해서 배포서버 문제가 발생한 것임

 

초기에 복제시 distributionL이라는 호스트명으로 복제가 설정되었는지 모르겠으나 차후 복제 설정/조정시에는 매우 유의할 사항임

 

상황을 통해 유추된 복제 메커니즘은 다음과 같을 것으로 예상

 << OLE Object: 그림 (장치 독립적 비트맵) >>

 

로그 읽기 에이전트는 4 순서를 게시 DB 보내고 5 순서를 거쳐야 하는데 게시DB 5 응답을 주지 않았기 때문에 결과를 기록하지 못하고 죽어 버린 것임.

에러 메시지

에이전트 PUBLICATION-DATABASE-NAME-6() 실패했습니다. 단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

 

여기서 결과는 5번에 대한 결과를 말하는 것으로 예상됨.

 

 

-----Original Message-----
From: 119@nexon.co.kr [mailto:119@nexon.co.kr]
Sent: Thursday, November 22, 2007 11:42 AM
To: dbteam@nexon.co.kr; kspapa@nexon.co.kr
Subject: [
기술지원실] SQL Agent Job 오류 (12
)
Importance: Low

 

[SQL작업실패] DISTRIBUTION 11-22 11:35 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:36 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:36 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:37 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:37 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:37 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:38 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:38 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:39 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:39 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:40 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.

[SQL작업실패] DISTRIBUTION 11-22 11:40 발생:PUBLICATION-DATABASE-NAME-6 - 3 STEP

에러내용:단계에서 결과를 생성하지 않았습니다.  단계가 실패했습니다.