0

일부 SQL 2008 R2 서버 (게시자는 Enterprise, 구독자는 Express)간에 업데이트 할 수있는 구독으로 트랜잭션 복제가 있습니다.동일한 테이블, 다양한 크기?

다른 가입자를 추가해야하고 내 데이터베이스가 Express의 10GB 제한을 초과하게되었습니다. 현재 구독자는 10GB 한도 미만이지만 게시 데이터베이스는 13GB입니다.

그래서 가장 큰 테이블에서 사용하지 않는 큰 열과 데이터를 삭제하고 dbcc cleantable을 실행하고 테이블에 대한 업데이트 통계를 실행하면 테이블이 조금씩 작아 져서 좋았다고 생각했습니다!

그러나 게시 데이터베이스는 여전히 11.5GB이지만 구독자는 모두 8GB로 내려갔습니다.

게시자와 구독자 간의 테이블 크기를 비교하고 데이터를 삭제 한 가장 큰 몇 개의 테이블은 게시 데이터베이스에서 구독 데이터베이스보다 큽니다.

나는 테이블 구조를 비교하고 RedGate의 데이터 비교를 사용합니다. 게시자와 구독자간에 테이블이 동일하므로 손실이 발생합니다. 내가 불일치를 일으키는 원인이 무엇인지 알지 못하기 때문에 다른 가입자를 추가 할 수 있습니다 (가입자에게 SQL 표준 라이센스를 구입할 필요없이). 게시자가되는 것과 관련이 있다는 느낌이 들었고 지난 1 년 동안 행 수가 크게 늘어났습니다.

사이드 노트 - SQL 표준 2008 라이센스도 몇 개 있지만 2008 년이 아니기 때문에 2008 R2는 백업을 사용하여 구독자를 초기화 할 수 없습니다. 사이트는 연결 속도가 느려 항상 백업에서 복제를 초기화했습니다.

+0

잘 모르겠지만 http://serverfault.com에서 더 좋은 답변을 찾을 수 있습니다. 그러한 질문에 전념합니다. – jpaugh

+0

알았어, 거기에서도 시험해 보라! 고맙습니다! – WendyDroid

답변

1

복제를 삭제하고 다시 만들 수 있습니까? 복제는 항상 까다롭기는하지만 열 밖에 남아있을 수 있습니다 (볼 수없는 곳)

처음부터 다시 시작할 필요가 없도록 담당자를 스크립팅 할 수 있습니다.

+0

그래, 그게 내가해야 할 일이야. 필사적으로, 나는 출판사와 표레에 테이블을 복사했다! 테이블 크기가 절반으로 줄었습니다. 그래서 그 테이블에 대한 복제를 비활성화하고, 테이블을 스위치 아웃하고, 복제를 다시 활성화해야합니다. 고맙습니다! – WendyDroid

+0

이제는 다른 문제가 있습니다. 기본 키는 ID 열입니다! 그 다른 테이블은 이미 참조하고 있으므로 시스템이 전체 테이블을 다시 시드 할 수는 없습니다. ID 열이 그대로있는 동일한 테이블 복사본을 어떻게 얻을 수 있습니까? – WendyDroid

+0

나는 복제본이 아닌 ID로 원본의 ID 열을 설정할 수 있다고 생각합니다. 또는 대상에서 ID 열이 아니게 만들고 값을 넘겨 씁니다. –