MSSQLSERVER_21879MSSQLSERVER_21879

세부 정보Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 2187921879
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQLEngineSQLEngine
심볼 이름Symbolic Name SQLErrorNum21879SQLErrorNum21879
메시지 텍스트Message Text %d 오류로 인해 원래 게시자 '%s' 및 게시자 데이터베이스 '%s'의 리디렉션된 서버 '%s'을(를) 쿼리하여 원격 서버 이름을 확인할 수 없습니다(오류 메시지 '%s').Unable to query the redirected server '%s' for original publisher '%s' and publisher database '%s' to determine the name of the remote server; Error %d, Error message '%s'.

설명Explanation

sp_validate_redirected_publisher는 원격 서버의 이름을 검색하기 위해 자체적으로 만든 임시 연결된 서버를 사용하여 리디렉션된 게시자에 연결합니다.sp_validate_redirected_publisher uses a temporary linked server that it creates to connect to the redirected publisher in order to discover the name of the remote server. 오류 21879는 연결된 서버 쿼리에 실패한 경우에 반환됩니다.Error 21879 is returned when the linked server query fails. 원격 서버 이름 요청을 위한 호출은 일반적으로 임시 연결된 서버를 처음 사용할 때 이루어지므로 연결 문제가 있을 경우 가장 먼저 이 호출에서 연결 문제가 나타날 가능성이 높습니다.The call to request the remote server name is typically the first use of the temporary linked server, so if there are connectivity problems they are likely to appear first with this call. 이 원격 호출은 원격 서버에서 @@servername을 선택하여 실행합니다.This remote call simply executes select @@servername at the remote server.

리디렉션된 게시자를 쿼리하는 데 사용된 연결된 서버는 원래 게시자에 대해 sp_adddistpublisher가 호출될 때 제공된 보안 모드, 로그인 및 암호를 사용합니다.The linked server used to query the redirected publisher uses the security mode, login, and password supplied when sp_adddistpublisher was called for the original publisher.

  • SQL ServerSQL Server 인증(보안 모드 0)이 사용된 경우에는 지정된 로그인 및 암호를 사용하여 원격 서버에 연결합니다.If SQL ServerSQL Server authentication was used (security mode 0) then the login and password specified are used to connect to the remote server.

  • Windows 인증(보안 모드 1)이 사용된 경우에는 트러스트된 연결을 사용하여 연결합니다.If Windows authentication was used (security mode 1) a trusted connection is used for the connection.

    • 사용자가 sp_validate_redirected_publisher를 명시적으로 호출한 경우에는 사용자가 실행되고 있는 Windows 로그인을 사용하여 연결합니다.If sp_validate_redirected_publisher is called explicitly by a user, the Windows login that the user is running under is used for the connection.

    • sp_validate_redirected_publisher를 sp_get_redirected_publisher의 복제 에이전트에서 호출한 경우에는 해당 에이전트와 연관된 Windows 로그인이 사용됩니다.If sp_validate_redirected_publisher is called by a replication agent from sp_get_redirected_publisher, the Windows login associated with the agent is used.

오류 21879는 리디렉션된 대상 게시자에 알려지지 않은 로그인을 사용하여 sp_validate_redirected_publisher가 호출되었음을 나타낼 수 있습니다.Error 21879 can indicate that sp_validate_redirected_publisher was called using a login that is not known at the redirected target publisher.

사용자 동작User Action

모든 가용성 그룹 복제본에서 SQL ServerSQL Server 인증 로그인 또는 Windows 인증 로그인이 올바른지 및 인증 로그인이 게시자 데이터베이스에 있는 구독 메타데이터 테이블(syssubscriptions 및 sysmergesubscriptions)에 액세스할 수 있는 권한을 가지고 있는지 확인하십시오.Make certain that the SQL ServerSQL Server authentication login or the Windows authentication login is valid at all of the availability group replicas and has sufficient authorization to access the subscription metadata tables (syssubscriptions and sysmergesubscriptions) in the publisher database.

구독자에서 실행되는 병합 에이전트 같이 배포자와는 다른 노드에서 실행되는 복제 에이전트에서 시작한 sp_get_redirected_publisher 호출에서 오류 21879가 반환될 경우 특별히 고려해야 할 사항이 있습니다.There are special considerations when error 21879 is returned from a call to sp_get_redirected_publisher that is initiated by a replication agent running on a node other that the distributor; such as a merge agent running at a subscriber. Windows 인증을 사용하여 리디렉션된 게시자에 연결하는 경우 SQL ServerSQL Server에 Kerberos 인증이 구성되어 있어야만 성공적으로 연결할 수 있습니다.If Windows authentication is used for the connection to the redirected publisher, SQL ServerSQL Server must be configured for Kerberos authentication for the connection to be successfully established. Windows 인증을 사용하지만 SQL ServerSQL Server에 Kerberos 인증이 구성되어 있지 않을 경우 구독자에서 실행되는 병합 에이전트는 'NT AUTHORITY\ANONYMOUS LOGON' 로그인이 실패했음을 나타내는 오류 18456을 수신합니다.When Windows authentication is used and SQL ServerSQL Server is not configured for Kerberos authentication, error 18456 indicating that the 'NT AUTHORITY\ANONYMOUS LOGON' login failed, is received by a merge agent running at a subscriber. 다음 세 가지 방법으로 이 문제를 해결할 수 있습니다.There are three possible ways to address this issue:

  • SQL ServerSQL Server에 Kerberos 인증을 구성합니다.Configure SQL ServerSQL Server for Kerberos authentication. SQL ServerSQL Server 온라인 설명서의 Kerberos 인증 및 SQL Server를 참조하세요.See Kerberos Authentication and SQL Server in SQL ServerSQL Server Books Online.

  • sp_changedistpublisher를 사용하여 MSdistpublishers에 있는 원래 게시자와 연관된 보안 모드를 변경하고 연결에 사용할 로그인 및 암호를 지정합니다.Use sp_changedistpublisher to change the security mode associated with the original publisher in MSdistpublishers, as well as to specify a login and password to use for the connection.

  • 배포자에서 sp_get_redirected_publisher가 호출될 때 유효성 검사를 무시하도록 병합 에이전트 명령줄에서 명령줄 매개 변수 BypassPublisherValidation을 지정합니다.Specify the command line parameter BypassPublisherValidation on the merge agent command line to bypass validation when sp_get_redirected_publisher is called at the distributor.