SQL Server 复制 订阅与发布

摘要:
接触SQLServer很长时间了,做了很多项目,但是对sqlServer的订阅和发布知之不多,现在把订阅与发布的相关知识总结起来,以供大家拍砖。

接触 SQL Server 很长时间了,做了很多项目,但是对sql Server的订阅和发布知之不多,现在把订阅与发布的相关知识总结起来,以供大家拍砖。以下内容参考webcast

SQL Server 的复制技术 包括 订阅和发布

复制的组成部分:发布服务器(出版社),分发服务器(邮局),订阅服务器(读者,接受者)

发布服务器的作用:维护源数据库,由这些数据库出版的数据能够为复制所利用,检测并将所有出版数据的更改发送到分发服务器

分发服务器的作用:分发服务器包括分发数据库,并且存储元数据、历史数据和事务。根据所实施复制类型的不同,分发服务器所扮演的角色也各异,一般情况下与合并复制相比较,分发服务器对于快照复制和事务复制的角色更重要。

订阅服务器的作用:保持数据的副本,并接收对所修改出版的更改。取决于所实现的复制选项,可能还允许更新者更新数据,并将其复制回服务器或者其它订阅者。

复制的模式:推模式(Push),拉模式(Pull) 区别:分发代理程序在分发服务器上运行,即为推模式,在订阅服务器运行,即为拉模式。

复制的类型:快照复制,事务复制、合并复制。允许订阅更新的快照复制。允许订阅更新的事务复制。

详细分类:带立即更新的快照复制,带立即更新的事务复制,这两种都是采用的分布式的事务处理原理。快照复制是事务复制的基础,快照复制传输的包括表结构等信息。在订阅服务器上创建,然后是分发代理程序,传输数据。

出版物:发布服务器发布的一个整体。一个出版物能够包括一个或多个文章,文章可以是数据或数据库对象。因为出版中的所有文章能能够在相同时刻保持同步。出版物是订阅的基础,对出版物的订阅包括出版物中的所有文章,每个用户数据库中能够构创建一个或多个出版物。

文章:出版物的一部分,表或数据库的对象(存储过程、视图、用户自定义函数)的全部或者部分筛选分区数据。

复制代理:快照代理(snapshot agent) 分布式代理(Distribution agent) 日志读代理(log Reader agent) 合并代理(Merge agent) 队列读代理(Queue Reader Agent)

快照复制的工作机制:

1、发布服务器,将要发布的数据库整个做一个快照,

2、订阅服务器的快照代理程序把发布服务器的快照读取过来,放在本地的快照文件夹内

3、订阅服务器的发布代理程序把快照文件夹中的快照发布到订阅服务器上。历史记录和快照记录在分发服务器中。

SQL Server 复制 订阅与发布第1张

事务复制的基本原理:

1、初始数据和架构(通过快照复制来完成),从这里可以体现出来快照复制,是所有复制的基础 。快照复制在订阅服务器上建立了订阅数据库。

2、发布服务器的数据修改后,写事务日志,

3、分发服务器的日志读取代理读取发生改变的数据的事务日志,把这些事务日志保存在发布服务器的发布数据库中。

4、分发服务器的分发代理程序 将分发数据库中的事务日志分发到各个订阅服务器上,然后把历史记录和错误记录在分发数据库中。

SQL Server 复制 订阅与发布第2张

免责声明:文章转载自《SQL Server 复制 订阅与发布》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇lwip TCP client 客户端 & FreeRTOSNotepad ++下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MSSQL2008 R2 数据库展开报错:值不能为空 参数名:viewInfo

打开数据库时报错,提示应用程序组件中发生了无法处理的异常。如果单击“继续”,应用程序将忽略此错误并尝试继续。 针对此类问题的解决办法是:将路径C:\Documentsand Settings\Administrator\Application Data\microsoft\Microsoft SQLServer\100\Tools\Shell下的文件Re...

php插入数据含有特殊符号的处理方法

我们在向mysql写入数据时,比如: mysql_query(”update table set `title`=’kuhanzhu’s blog’”);  http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/05/09/1731415.html   那就会出错。同asp时一样,数据库都会对单引...

Mysql InnoDB彻底释放磁盘空间

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。 如果需要彻底释放磁盘空间,则需要先导出数据,然后删除数据文件,最后导入数据。具体步骤如下: 使用mysqldump命令将InnoDB数据库导出。 停止MySQL服务。 删除所有InnoDB数据库文件和日志(ibdata1,ib_lo...

JForum项目搭建

JForum 是采用Java开发的功能强大且稳定的论坛系统。它提供了抽象的接口、高效的论坛引擎以及易于使用的管理界面,同时具有完全的权限控制、多语言支持(包括中文)、高性能、可自定义的用户接口、安全、支持多数据库等等特性。JForum 采用 FreeMarker 作为页面模板引擎,支持包括中文在内的二十几种语言。JForum 最大的优点是采用 BSD 开源...

OAuth 2.0: Bearer Token Usage

  Bearer Token (RFC 6750) 用于OAuth 2.0授权访问资源,任何Bearer持有者都可以无差别地用它来访问相关的资源,而无需证明持有加密key。一个Bearer代表授权范围、有效期,以及其他授权事项;一个Bearer在存储和传输过程中应当防止泄露,需实现Transport Layer Security (TLS);一个Beare...

项目实战6—Mysql实现企业级日志管理、备份与恢复实战

Mysql实现企业级日志管理、备份与恢复实战   环境背景:随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基。一旦公司的数据错乱或者丢失,对于互联网公司而言就等于说是灭顶之灾,为防止系统出现操作失误或系统故障导致数据丢失,公司要求加强用户数据的可靠性,要求全面加强数据层面备份,并能在故障...