SQL Server数据库技术(108)

2016-01-29 16:53 4 1 收藏

SQL Server数据库技术(108),SQL Server数据库技术(108)

【 tulaoshi.com - SQLServer 】

16.3.1 快照复制概述
    快照复制就是在某一时刻对出版数据进行一次“照相”,生成一个描述出版数据库中数据瞬时状态的静态文件,最后在规定时间将其复制到订购者数据库。快照复制并不像事务复制那样要不断地监视、跟踪在出版数据库中发生的数据变化,它所复制的内容不是 INSERT、 UPDATE、 DELETE 语句(事务复制的特征),也不是仅限于那些被修改数据(合并复制的特征)。它实际上是对订购数据库进行一次阶段性的表刷新,把所有出版数据库中的数据从源数据库送至目标数据库,而不仅仅是那些发生了变化的数据。如果论文很大,那么要复制的数据就很多,因此对网络资源需求较高,不仅要有较快的传输速度,而且要保证传输的可靠性。
    快照复制是最为简单的一种复制类型,能够在出版者和订购者之间保证事务的潜在一致性。快照复制通常使用在以下场合:不需要实时数据时,如在进行决策支持、查询静态表信息时;只读订购者(订购者不对出版数据进行修改),并且不需要最近的数据;使用立即更新订购者时对数据库的修改次数和数据量较少。
    快照复制的执行仅需要快照代理和分发代理。快照代理准备快照文件(包括出版表的数据文件和描述文件)并将其存储在分发者的快照文件夹中,除此之外快照代理还要在分发者的分发数据库中跟踪同步作业。分发代理将在分发数据库中的快照作业分发至订购者服务器的目的表中。分发数据库仅用于复制而不包括任何用户表。
    每一次快照代理执行时,都要创建将被分发至订购者的数据文件和描述文件(也称为同步集合)。快照代理主要通过以下几步来完成这一工作(见图16-24)。

(1)从分发者到出版者的连接并在出版物论文中的所有表上加了共享锁。共享锁是为了确保快照数据的一致性,因为共享锁将防止所有的其它用户对表进行修改。快照代理应该被安排在数据库活动较少期间执行。

(2) 快照代理又建立从出版者到分发者的连接,并将每一个表的表描述拷贝至分发者上的一个.sch 文件中,该文件存储在分发数据库工作目录下的一个子目录。如果出版物中包括索引和声明的参考完整性,则快照代理将所有被选择的索引写入分发者的.idx 文件中。

(3) 快照代理对出版者的出版表的数据执行一次快照,并把这些数据写入分发者上的一文件当中。该文件存储在分发数据库的工作目录下的一个子目录中,如果订购者有SQL Server, 则快照被做为.bcp 文件存储;如果一个或多个订购者是异构数据库源,则快照被做为字符模式的.txt 文本文件存储同步集合包括.sch 和.bcp 文件,出版物中每一篇论文都有一个同步集合。

(4) 快照代理向分发数据库的Msrepl_commands 和Msrepl_trnsactions 表中插入新行。Msrepl_command 表中的每个记录是指明同步集合和出版者等位置的命令,Msrepl_trnsactions 表中的每条记录是引用订购者同步任务的命令。

(5) 快照代理最后释放在每一个论文上的共享锁。

    每一次为快照代理运行的分发代理将数据和描述文件分发给订购者。分发代理通过以下几步来完成该任务:
(1) 分发代理从其所在的服务器向分发者服务器建立连接,对于推订购,分发代理位于分发者服务器上;对于拉订购,分发代理位于订购者上。

(2) 分发代理检查分发者的分发数据库中的Msrepl_commands 和Msrepl_trnsactions 表从第一个表,读取同步集合的位置并从这两个表读取订购者的同步任务。

(3) 分发代理将在订购数据库中应用在分发数据库的Msrepl_commands 和Msrepl _trnsactions 表中发现的命令,从而将数据文件和描述文件复制到订购者服务器上。如果订购者不是SQL Server 数据库,则分发代理将按要求转换数据类型。在出版物中的所有论文都将被同步并在各表中保持事务和参考完整性。
    当有很多的订购者时,应让分发代理运行在订购者服务器上,即使用拉订购。这样可以减轻分发者负载,提高其性能。如果使用推订购,只要订购者订购出版物或在出版物创建时所规划的时间来临,快照代理都会被执行。但是在快照代理执行的规划时间来临时,只有那些没有被同步的订购者才会被同步。

16.3.2 创建快照复制出版物 在SQL Server 中,利用Create Publication Wizard 可以指定哪个数据库为出版数据库,选择表或存储过程来创建论文从而创建复制出版物。

注意:要创建复制出版物必须

来源:https://www.tulaoshi.com/n/20160129/1499738.html

延伸阅读
标签: SQLServer
在企业管理器中可以很方便地调用其它SQL Server 工具,如SQL Server Query Analyzer (查询分析器)、SQL Server Profiler (跟踪器)等,只须从“Tools (工具)”菜单中选择相应的工具即可。 SQL Server 2000 中提供了大量的向导工具,可以引导用户完成一系列的数据库与服务器管理工作。可以从“Tools (工具)”菜单中选择“Wizards” 选项,或从工...
标签: SQLServer
除了使用系统提供的数据类型外,用户还可以根据需要用自定义的数据类型来定义表的列或声明变量。 7.3.1 用Enterprise Manager 创建用户自定义数据类型 用Enterprise Manager 创建用户自定义数据类型的方法是:在Enterprise Manager 中选择要创建用户自定义类型的数据库,在数据库对象“User Defined Data Types”上单击右键,从开始菜单...
标签: SQLServer
11.3.1 UPDATE 语法 用户可以用UPDATE 语句来更新表中一列或多列数据值,其语法如下: 各参数说明如下: SET SET 子句用于指定更新的方法,即用 的值取代相应的列的值。如果省略 WHERE 子句,那么表中的所有数据均会受到影响。在FROM 子句中指定的表或列的别名不能用于SET 子句中。 column_name 指定要更新数据的列。IDENTITY 列不能...
标签: SQLServer
    在MS SQL Server 2000 中,创建一个存储过程有两种方法:一种是使用Transaction-SQL 命令Create Procedure, 另一种是使用图形化管理工具Enterprise Manager。 用Transaction- SQL 创建存储过程是一种较为快速的方法,但对于初学者,使用Enterprise Manager 更易理解,更为简单。 当创建存储过程时,需要确定存储过程...
标签: SQLServer
每一个游标必须有四个组成部分这四个关键部分必须符合下面的顺序; 1.DECLARE 游标 2.OPEN 游标 3.从一个游标中FETCH 信息 4.CLOSE 或DEALLOCATE 游标 通常我们使用DECLARE 来声明一个游标声明一个游标主要包括以下主要内容: 游标名字 数据来源(表和列) 选取条件 属性(仅读或可修改) 其语法格式如下: DECLARE cursor_name [INSENSITIVE] [...

经验教程

723

收藏

91

精华推荐

SQL Server数据库技术(94)

SQL Server数据库技术(94)

演绎_新的精彩

SQL Server数据库技术(85)

SQL Server数据库技术(85)

可靠的铁柱

SQL Server数据库技术(99)

SQL Server数据库技术(99)

姐你惹不起659

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部