2011-10-06 4 views
0

Oracle 서버에서 Sql2008 R2 인스턴스로 트랜잭션 복제를 설정하려고합니다. 복제, 새 Oracle 게시 마법사를 통해 'Oracle publication'을 설정할 수 있으며, 모든 것이 기사 (Oracle 테이블)를 추가하고 데이터 유형을 매핑 할 수있는 것처럼 보입니다. 그러나 트랜잭션 복제를 선택하면 내가 선택한 Oracle 원본 테이블에 기본 키가 없다는 메시지가 나타납니다. 그건 사실이 아니야.Oracle을 Sql2008r2에 게시 (복제)

스냅 샷을 선택하면 무한 루프가 발생합니다.

연결된 서버 (oracle)가 msdaOra 공급자를 사용하고있는 것으로 나타났습니다. 연결된 마법사를 사용하여 연결된 서버를 설정할 때 게시 마법사에서 OraOLEDB.Oracle 공급자를 사용하도록하는 방법이 있습니까?

도움이 되셨다면

답변

0

오라클의 버전은 무엇입니까? 일부 Microsoft 지침의 경우 은 link입니다. SQL Server에 x64 버전의 Oracle Client 소프트웨어가 설치되어 있는지 확인하십시오. oracle 클라이언트 설치는 관리자 설정 옵션이어야합니다. oracle에 연결하도록 설정된 복제 사용자는 복제하려는 스키마에 대한 선택 권한이 있습니까? (바보 같은 질문,하지만 물어 봐야) 또한 테스트하기 전에이 시스템에 대한 트랜잭션 복제를 설정 했습니까?
기본 키가없는 원본 테이블에 대해 테스트 했습니까? - (다른 Oracle 테스트 환경에 대해이 sql 2k8 r2 상자 테스트) 경우 배포를 다시 초기화해야 할 수도 있습니다.

또한 oracle 게시자로부터 복제를 설정하려면 SQL 2k8 r2 enterprise edition이 필요합니다.

3

Oracle PK 제약 조건으로 인해 SQL Server가 테이블을 PK로 간주하는 것으로 충분하지 않음을 발견했습니다. 테이블에 대한 Oracle DDL이 명시 적으로 고유 한 인덱스를 작성하여 해당 PK와 함 2 수행되는지 확인하십시오. 오라클의 제약 조건과 조직 인덱스가 모두 있으면 SQL Server는 트랜잭션 수준 복제에서이를 제외시킵니다. 실시간 인 데이터 수집 시스템에 고유 한 인덱스를 추가하고 싶지 않기 때문에이 문제를 해결하기 위해 노력하고 있습니다. 나는 SQL 서버가 고유 인덱스를 실제로 필요로한다는 것을 알지 못한다. 그러나 오히려 제약 조건 정의만으로 얻을 수있는 고유성 한정자를 알아야 할 필요가 있다고 생각하고있다.