• 您的位置我爱Aspx >> 数据库 >> 事务复制
  • 事务复制

  • 作者:aspxer  来源:internet  日期:2007-5-22 0:33:26  关键字:
  • (3) 事务命令一直存储在分发数据库中,除非分发代理从分发者将其推至订购者数 据库或从订购者将其拉到订购者数据库。

    注意: 分发代理第一次执行时的主要任务是订购初始化,即将初始快照文件分发到订购者。

    分发代理仅用于复制而不包含任何用户表,同时也不允许在分发数据库中创建任何其它数据库对象。

    在出版者招待的将被复制的操作将按顺序在订购者上被执行、确保数据的最终一致性。

    如果订购事务出版物但却没有对订购进行初始化,那么在出版者上自动定制的存储过程都不能在订购者上使用。相反必须在订购者手工创建存储过程。

    16.4.3 存储过程的复制

    SQL Server 中除了可以复制表以外还可以复制存储过程。在快照复制中,如果论文中 包含存储过程,则在复制过程中整个存储过程将从出版者传递到订购者。在事务复制中, 如果论文中包含存储过程,则在复制过程中传递给订购者仅是一条存储过程的执行语句, 而不是由存储过程的执行而引起变化了的数据。

    如果某一存储过程在执行后产生的结果集很大,我们会发现仅复制存储过程的执行语 句而不是大量的SQL 语句将带来极大好处。不必再担心大量的复制语句会占满分发数据 库而引起事务丢失,也不再会因复制大量的SQL 语句而引起网络传输性能的下降而感到沮丧。

    下面的例子也许会帮助用户更为深刻地理解复制存储过程的优点。

    假如数据库的使用者打算修改出版物中某一表的10000 条记录的某一列。如果不使用 存储过程复制,它的处理过程应是这样的:当这些修改在出版者完成时,日志阅读代理便 会从事务日志中读出这些带有复制标志的上10000 条DELETE 语句以及相同数目的UPDATE 语句,并将它们送到分发数据库,分发数据库有限的空间立刻显得有些局促起来如 果您很不走运的话,分发数据库会被添满而导致复制中断),然后分发代理再把这20000 条语句分发到订购者,在分发时20000 语句争先恐后地挤满了网络线路,我想您会体会到 那种等待的滋味。

    但是,如果利用存储过程来实现这一修改,并在您的事务复制论文中添上该存储过程, 那么在网上传递上仅是一条EXEC 语句。

    将一存储过程定义成出版内容并不是一件困难事,只要在图16-31 Specify Articles 对 话框中选中Include Store 复选框即可。

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:备份和恢复系统数据库
    下一篇:合并复制
  • 相关文章