日期:2014-05-16  浏览次数:20613 次

SQL 2008 发布订阅的时间怎么测
两台PC机,PC1新建一个发布服务器,PC2新建一个订阅服务器,然后两者可以共享数据。
问题:
1.当我向PC1的数据库里面插入10000条数据的时候,PC2的数据库会同步数据,但是我怎么知道从PC1开始插入时,到PC2同步完成这阶段的时间呢??
我需要知道它们两个的同步速度,也就是一秒钟能够同步多少数据,来决定是否可以采用订阅发布的方式在局域网内进行数据同步。
2.同步的速度与网络环境有关吗?
3.在网上看到的资料里面,说这种同步方式不是实时的,我记得设置了一个10秒一同步的。那这种方式进行数据库的同步好吗?有没有更好的办法?
------解决方案--------------------
数据库同步与订阅,最短的同步间隔时间是10秒,也就是至少得10秒,才会同步
------解决方案--------------------
如果你要实时同步,可以考虑用数据库镜像,里面有2种模式,其中的同步模式就是实时同步,而且当某一台数据库出现故障时,能自动秒级故障转移。


------解决方案--------------------
不过,这个数据库镜像,从主体同步到镜像之后,这个镜像数据库,不能读取数据,也就是无法实现,读写分离,通过创建数据库快照,倒是能读取一个时间点之前的数据
------解决方案--------------------
在订阅库做个循环,10秒count一下,
------解决方案--------------------
引用:
Quote: 引用:

在订阅库做个循环,10秒count一下,


在哪里做?是直接在新建查询里面写一个吗?
嗯,在订阅端的库中,做个循环,然后发布端开始插入
------解决方案--------------------
引用:
Quote: 引用:

不过,这个数据库镜像,从主体同步到镜像之后,这个镜像数据库,不能读取数据,也就是无法实现,读写分离,通过创建数据库快照,倒是能读取一个时间点之前的数据


不能用镜像,因为另一个数据库要随时准备充当主数据库的角色,两个数据库都应该能读写。


那就只能用数据库集群试试了,另外,如果是sql server 2012可以试试always on,实现你的需求确定没问题的
------解决方案--------------------
实时的读写分离一般是复制和alwayson,如果不实时的话可以用log shipping或者镜像+快照
------解决方案--------------------
你不用做job啊,直接在查询界面用while死循环,内容是select count(1) from table 或者:
SELECT rowcnt FROM sys.sysindexes WHERE id=OBJECT_ID('表名')

等发布端插入完毕你就停了循环