메시지 세부 정보
| 제품 이름 | SQL Server |
| 이벤트 ID | 18752 |
| 이벤트 원본 | MSSQLSERVER |
| 구성 요소 | SQL Server 데이터베이스 엔진 |
| 심볼 이름 | |
| 메시지 텍스트 | 로그 판독기 에이전트 또는 로그 관련 프로시저(sp_repldone, sp_replcmds 및 sp_replshowcmds)만 한 번에 하나의 데이터베이스에 연결할 수 있습니다. 로그 관련 프로시저를 실행한 경우 로그 판독기 에이전트를 시작하거나 다른 로그 관련 프로시저를 실행하기 전에 프로시저가 실행된 연결을 삭제하거나 해당 연결을 통해 sp_replflush 실행합니다. |
설명
현재 여러 연결에서 sp_repldone, sp_replcmds, 또는 sp_replshowcmds 중 하나를 실행하려고 합니다. 저장 프로시저 sp_repldone(Transact-SQL) 및 sp_replcmds(Transact-SQL) 는 로그 판독기 에이전트가 게시된 데이터베이스에서 복제된 트랜잭션에 대한 정보를 찾아 업데이트하는 데 사용하는 저장 프로시저입니다. 저장 프로시저 sp_replshowcmds(Transact-SQL) 는 트랜잭션 복제와 관련된 특정 유형의 문제를 해결하는 데 사용됩니다.
이 오류는 다음과 같은 상황에서 발생합니다.
게시된 데이터베이스에 대한 로그 판독기 에이전트가 실행 중이고 두 번째 로그 판독기 에이전트가 동일한 데이터베이스에 대해 실행하려고 하면 두 번째 에이전트에 대한 오류가 발생하고 에이전트 기록에 표시됩니다.
여러 에이전트가 있는 것처럼 보이는 경우 그 중 하나가 분리된 프로세스의 결과일 수 있습니다.
게시된 데이터베이스에 대한 로그 판독기 에이전트가 시작되고 사용자가 동일한 데이터베이스에 대해 sp_repldone, sp_replcmds 또는 sp_replshowcmds 실행하는 경우 저장 프로시저가 실행된 애플리케이션(예: sqlcmd)에서 오류가 발생합니다.
게시된 데이터베이스에 대해 실행 중인 로그 판독기 에이전트가 없고 사용자가 sp_repldone, sp_replcmds 또는 sp_replshowcmds 실행한 다음 프로시저가 실행된 연결을 닫지 않으면 로그 판독기 에이전트가 데이터베이스에 연결을 시도할 때 오류가 발생합니다.
사용자 작업
다음 단계는 문제를 해결하는 데 도움이 될 수 있습니다. 로그 판독기 에이전트가 오류 없이 시작할 수 있는 단계가 있는 경우 나머지 단계를 완료할 필요가 없습니다.
이 오류를 유발할 수 있는 다른 오류가 있는지 확인하기 위해 로그 리더 에이전트의 기록을 검사하십시오. 복제 모니터에서 에이전트 상태 및 오류 세부 정보를 보는 방법에 대한 자세한 내용은 복제 모니터를 사용하여 정보 보기 및 작업 수행을 참조하세요.
특정 프로세스 ID(SPID) 번호가 게시된 데이터베이스에 연결된 것을 확인하려면 sp_who(Transact-SQL)의 출력을 확인하세요. sp_repldone, sp_replcmds 또는 sp_replshowcmds를 실행했을 수 있는 모든 연결을 닫습니다.
로그 판독기 에이전트를 다시 시작합니다. 자세한 내용은 복제 에이전트 시작 및 중지(SQL Server Management Studio)를 참조하세요.
배포자에서 SQL Server 에이전트 서비스를 다시 시작합니다(클러스터에서 오프라인 또는 온라인 상태로 전환). 예약된 작업이 다른 SQL Server 인스턴스에서 sp_repldone, sp_replcmds 또는 sp_replshowcmds 실행할 가능성이 있는 경우 해당 인스턴스에 대해서도 SQL Server 에이전트를 다시 시작합니다. 자세한 내용은 SQL Server 에이전트 서비스 시작, 중지 또는 일시 중지를 참조하세요.
게시 데이터베이스의 게시자에서 sp_replflush(Transact-SQL) 를 실행한 다음 로그 판독기 에이전트를 다시 시작합니다.
오류가 계속 발생하면 에이전트의 로깅을 늘리고 로그에 대한 출력 파일을 지정합니다. 오류의 컨텍스트에 따라 오류 및/또는 추가 오류 메시지로 이어지는 단계를 제공할 수 있습니다.