我可以成功创建订阅,并且事务确实复制到PG服务器.我在订阅上使用sync_type =’none’,因为看起来,否则,架构(包括sql Server特定选项(SET ANSI_NULLS ON等))会被发送到Postgresql,这会搞砸它.
这很好,我可以使用SSIS并复制整个数据库,包括数据.我的问题是,我怎样才能以安全的方式做到这一点?因为如果我只是运行SSIS包来导出数据,那么添加订阅,事务可能会丢失.
例如. SSIS将数据导出到PG.第X行已更新.复制开始.在这种情况下,行X的更新不会在我的手动同步中,而是在之后开始复制.我无法运行复制,因为可能会发生其他错误.
这里的正确程序是什么?
解决方法
>您当前设置的那个
>另一个到sql server数据库,它将同步“正常”
所以这是整个过程:
>配置一个sql server订阅者,根据需要同步它,重要的是确保该订阅者正确同步
>将复制配置为postgres.注意在postgres中创建所有目标表,但不关心数据同步.
>在此阶段,当您修改主数据库上的数据时,它将复制到两个从属服务器上.现在,您在分销商处停止le LOG READER代理.而你等待(感谢复制监视器),两个订阅代理都已经处理了所有交易给两个订阅者.
>截断POSTGRES订阅者的所有复制表
>将所有表从sql订阅服务器(不是主服务器!!)复制到Postgres订阅服务器.
>两个用户现在拥有完全相同的数据!
>启动日志读取器代理.你完成了
请注意,当日志读取器代理停止时,发布服务器上的事务将停留在发布服务器的日志中.所以要注意不要让它充分发挥.步骤5(复制数据)可能很长,因此在主服务器上配置足够大的日志(取决于事务量).
顺便说一句,如果你将sync_type设置为’automatic’,那么snapshost代理将生成一个快照,该快照也将被正确同步.哪里是我的赏金?