2010-04-27 5 views
23

해결할 수없는 SQL 복제에 문제가 있습니다. 내가하고있는 일은 프로덕션 백업에서 두 ​​개의 DB를 복원 한 다음 복제본을 설치하는 것입니다. 복제는 오류없이 구성되어있는 것처럼 보입니다. 그러나 상태를 보면 다음과 같은 오류 메시지가 표시됩니다.SQL Server 2008 복제가 실패했습니다. 프로세스가 'sp_replcmds'를 실행할 수 없습니다.

수정하는 데 문제가있는 SQL 복제에 문제가 있습니다. 내가하고있는 일은 프로덕션 백업에서 두 ​​개의 DB를 복원 한 다음 복제본을 설치하는 것입니다. 복제 오류없이 구성 할 것 같다,하지만 난 복제 모니터의 상태를 볼 때이 같은 오류 메시지 참조 :

오류 메시지 :

프로세스가 'sp_replcmds'를 실행할 수 없습니다를 '마이너 1'. http://help/MSSQL_REPL20011

이 원금 교장 "DBO" 이 존재하지 않기 때문에, 주요 이 유형의 가장 할 수없는 데이터베이스로 실행할 수 없습니다, 또는 권한이 없습니다 수행 지원을받을 수 있습니다. (출처 :에서 MSSQLServer, 오류 번호 : 15517) : 는 http://help/15517

과정은 'MYSERVER1'에 'sp_replcmds'를 실행할 수 없습니다 지원을받을 수 있습니다. 도움 받기 : http://help/MSSQL_REPL22037

이것은 무엇을 의미합니까?

답변

20

'dbo'는 유효하지 않은 로그인으로 매핑됩니다. select suser_sname(owner_sid) from sys.databases을 실행하면이 두 DB에 대해 probaly가 NULL이됩니다. 'dbo'를 유효한 로그인으로 변경해야합니다. 두 데이터베이스에서 실행 :이 문제가 있었을 때, 내 데이터베이스 소유자가 제대로 설정되어 있지 않은

ALTER AUTHORIZATION ON DATABASE::[<dbname>] TO [sa] 
+0

이렇게하면 DB 소유자가 내가 원하지 않는 sa로 변경됩니다. DB의 소유자는 현재 내 개인 계정이며, 나는 그것을 그대로 유지하고 싶습니다. 어쨌든 dbo를 다시 연관시킬 수 있을까요? – skb

+0

원하는 계정에 연결할 수는 있지만 유효한 NT 계정이어야합니다. suser_sname (owner_sid)가 NULL을 리턴합니까? 그런 다음 잘못된 계정이며 변경해야합니다. –

51

. 다른 Windows 도메인에서 데이터베이스를 복원하고 데이터베이스 -> 등록 정보를 마우스 오른쪽 단추로 클릭 한 다음 "일반"탭에서 소유자가 올바르게 설정되었는지 확인했습니다. 그러나 "파일"탭에서 소유자가 설정되지 않았습니다. 내가 설정하자 마자 복제는 문제없이 실행되고있었습니다.

+1

이 답변으로 제 정신이 절약되었습니다! 나는 추적을 실행하고 "파일"탭에서 소유자를 변경하면 "변경 승인"을 호출하는 sp_changedbowner를 호출하는 것으로 나타났습니다.이 질문에 대한 Remus의 답변에서 언급했습니다. – GaTechThomas

+0

쉽게 할 수 있습니다. 내 하루를 구했다. 공장. –

+1

이것은 고쳐줬고, 고맙다! – Dan

1

기사 필터를 사용하는 경우 고유 한 필터 이름을 사용해야합니다. 모든 기사에서 필터 이름을 고유하게 변경하면이 문제가 해결되었습니다.

0

우리의 경우 SQL 인스턴스가 실행되고있는 서비스 계정이 잠겼습니다. 잠금을 해제하고 LogReader SQL 에이전트 작업을 중지했다가 다시 시작하면 작업이 다시 시작되었습니다.

1

enter image description here

오류를 수정하는 가장 쉬운 방법은 DBO에 대한 NULL 로그인 일치가 데이터베이스에 ALTER AUTHORIZATION을 사용하는 것입니다.