문제

방금 혼란스러운 것을 발견했는데 디자인이 우리의 통제력이없는 데이터베이스에서 트랜잭션 복제를 구현하려고했습니다. 이 복제는 시스템에 너무 많은 세금을 부과하지 않고보고를 수행하기위한 것입니다. 복제를 시도하면 일부 테이블 만가 쳤다.

기본 키가 없기 때문에 조사 테이블이 복제되지 않도록 선택되지 않았으며, ODBC 및 MS 액세스를 사용하지만 관리 스튜디오에서는 사용되지 않으면 기본 키로 표시 될 수 없다고 생각했습니다. 또한 쿼리는 엄청나게 느리지 않습니다.

중복 레코드를 삽입하려고 시도했는데 고유 한 지수 (기본 키가 아님)에 대해 말하지 못했습니다. 기본 키와 달리 고유 한 인덱스를 사용하여 테이블이 구현 된 것 같습니다. 내가 비명을 질 수 있다는 것을 몰라 왜.

어쨌든 트랜잭션 복제 또는 대안을 수행 할 수 있는가? 기본 DB 서버는 현재 SQL 2000 SP3A 및 Reporting Server 2005입니다.

내가 현재 시도한 유일한 것은 복제를 다른 유형의 데이터베이스 인 것처럼 설정하는 것입니다. 나는 Oracle이 가능하다고 말하는 복제가 가능하다고 생각합니다. 이것이 Access를 사용한다고 가정하는 것처럼 ODBC 드라이버를 사용하면 기본 키를 표시한다고 생각합니다. 나는 이것이 내 깊이에서 정확한지 모르겠다.

도움이 되었습니까?

해결책

MSDN으로 , 기본 키가없는 테이블에 트랜잭션 복제를 만들 수는 없습니다. 당신은 사용할 수 있습니다 복제를 병합하십시오 (한 방법), 기본 키가 필요하지 않으며 자동으로 rowguid 존재하지 않는 경우 열 :

Merge Replication은 GUID (GUID) 열을 사용하여 병합 복제 프로세스 중 각 행을 식별합니다. 게시 된 테이블에 RowGuidCol 속성이있는 고유 한 식별기 열이없고 고유 한 인덱스가없는 경우 복제가 추가됩니다. 게시 된 테이블을 참조하는 선택 및 삽입 문서에서 열 목록을 사용하는지 확인하십시오. 테이블이 더 이상 게시되지 않고 복제가 열을 추가하면 열이 제거됩니다. 열이 이미 존재하면 제거되지 않습니다.

불행히도 병합 복제를 사용하는 경우 성능 페널티가 있습니다.

복제를 사용해야하는 경우 보고 게시자와 정확히 동일하게 데이터가 필요하지 않으면 스냅 샷 복제도 고려할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top