2011-10-06 41 views
0

尝试建立从Oracle服务器到Sql2008 R2实例的事务复制。 我可以通过复制,新建Oracle发布向导来设置'Oracle发布';每一件事似乎都可以用来添加文章(oracle表)并且能够映射数据类型。 但是当我选择事务复制时,它告诉我我选择的Oracle源表没有主键。这不是真的。发布(复制)Oracle到Sql2008r2

如果选择一个快照,它会发生无限循环。

我注意到链接服务器(对oracle)使用msdaOra提供程序,是否有办法强制发布向导在设置关联的链接服务器时使用OraOLEDB.Oracle提供程序。

任何帮助赞赏

回答

0

什么版本的Oracle? 对于某些Microsoft指令,这里是link。 确保您在SQL Server上安装了x64版本的Oracle客户端软件 - oracle客户端安装需要是管理员设置选项。 您设置为连接到Oracle的复制用户是否有选择访问您试图复制的模式? (愚蠢的问题,但我不得不问) 另外,你有没有在测试之前为这个系统设置事务复制?
您是否对没有主键的源表进行测试? - (在另一个oracle测试环境下测试这个sql 2k8 r2框) 如果是这样,您可能需要重新初始化分配。

您还需要sql 2k8 r2企业版才能设置Oracle发布者的复制。

3

我发现Oracle PK约束不足以让SQL Server考虑表具有PK。确保该表的Oracle DDL确实创建了唯一索引以与该PK一起使用。如果您拥有的只是Oracle中的约束和组织索引,则SQL Server将取消它与事务级复制的资格。我仍然在想办法解决这个问题,因为我不想在实时实时数据采集系统生产中增加独特的索引。我不知道SQL服务器甚至真的需要独特的索引......但是我认为它只需要知道它可以从约束定义中得到的唯一性限定符。