sql-server – SQL Server OLEDB / ODBC复制的安全初始同步

我正在尝试设置从sql Server 2008 R2到Postgresql 9.1的单向事务复制.我正在尝试PGNP OLE DB提供程序.

我可以成功创建订阅,并且事务确实复制到PG服务器.我在订阅上使用sync_type =’none’,因为看起来,否则,架构(包括sql Server特定选项(SET ANSI_NULLS ON等))会被发送到Postgresql,这会搞砸它.

这很好,我可以使用SSIS并复制整个数据库,包括数据.我的问题是,我怎样才能以安全的方式做到这一点?因为如果我只是运行SSIS包来导出数据,那么添加订阅,事务可能会丢失.

例如. SSIS将数据导出到PG.第X行已更新.复制开始.在这种情况下,行X的更新不会在我的手动同步中,而是在之后开始复制.我无法运行复制,因为可能会发生其他错误.

这里的正确程序是什么?

解决方法

我有好几次类似的问题.这样做的诀窍是设置2个订阅

>您当前设置的那个
>另一个sql server数据库,它将同步“正常”

所以这是整个过程:

>配置一个sql server订阅者,根据需要同步它,重要的是确保该订阅者正确同步
>将复制配置为postgres.注意在postgres中创建所有目标表,但不关心数据同步.
>在此阶段,当您修改数据库上的数据时,它将复制到两个从属服务器上.现在,您在分销商处停止le LOG READER代理.而你等待(感谢复制监视器),两个订阅代理都已经处理了所有交易给两个订阅者.
>截断POSTGRES订阅者的所有复制表
>将所有表从sql订阅服务器(不是主服务器!!)复制到Postgres订阅服务器.
>两个用户现在拥有完全相同的数据!
>启动日志读取器代理.你完成了

请注意,当日志读取器代理停止时,发布服务器上的事务将停留在发布服务器的日志中.所以要注意不要让它充分发挥.步骤5(复制数据)可能很长,因此在主服务器上配置足够大的日志(取决于事务量).

顺便说一句,如果你将sync_type设置为’automatic’,那么snapshost代理将生成一个快照,该快照也将被正确同步.哪里是我的赏金?

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...