SQLServer 发布订阅(Replication)造成的Memroy压力(cmemthread等待)

深入了解下发布订阅:

    数据复制:允许一个数据源向一个或多个目标数据库分发数据,只需要OLE DB 访问接口即可访问;

整个复制框架包含:复制组件,复制代理,复制类型;

复制组件:

 发布服务器:发布服务器是使用数据复制到可用的其他数据库服务器;跟踪数据的更改和维护其他源数据库信息;

分发服务器: 分发复制数据库的服务器,存储分发数据库,元数据,历史数据(事务复制)事务;

订阅服务器:是复制的目标服务器,复制数据库的接收和更新,订阅服务器也能更改数据(合并复制),可以将数据发布到多个订阅服务器;

 

项目 是复制的基本单元

项目包含一下:

完整的表、表的某些列、表的某些行、表的子集、视图、索引视图、用户自定义函数、存储过程;

也包含是否复制架构对象:架构对象包含约束,索引,触发器,排序规则,扩展属性,

不能包含系统数据库(master,model,msdb,tempdb)

复制代理:

 

快照代理(snapshot.exe)创建数据库快照,包含架构和数据,这是为分发数据库而提供的,负责分发数据库的更新状态信息;每一个发布服务器都有一个连接分发服务器的快照代理,适用于各类型的复制;

分发代理(distrib.exe)将来自快照复制的数据库或来自事务复制的事物到订阅服务器如果代理运行到分发服务器上,则是推送订阅,代理运行到订阅服务器上,则用于请求订阅,当然合并代理除外;

合并复制(replmerg.exe)运行到发布和订阅服务器上,当同步数据更新时,发生冲突时,将使用冲突解决程序设置的规则来解决,仅用于合并复制;

日志代理读取(logread.exe)从发布服务器上事务日志将标记复制的事物移动到分发服务器,+

 

 

 

 

 

image

原文地址:https://www.cnblogs.com/kingwwz/p/6068953.html