如何使用备份或还原手动同步复制的订阅

文章翻译 文章翻译
文章编号: 320499 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文介绍如何使用备份和还原手动同步复制强制订阅。

有时,您不能完全同步复制订阅由于的下列潜在原因使用默认方法,请执行以下操作:
  1. 您必须有将传送到订阅服务器的大型表。
  2. 网络带宽仅可以处理的增量更改 ; 因此,大 BCPs 可能会超时。
  3. 发布者是生产服务器 ; 因此,业务需求要求会最小化所需的向下时间。
在这种情况下可以使用 SQL Server 备份创建在已发布数据库的副本,然后您可以还原订阅服务器上的数据 ; 这样做可以设置复制,并测试的复制,使用,而无需在网络上提供架构或 $ 用户数据。以下各节列出的步骤和注意事项,您必须使用以确定手动同步成功。

事务复制

事务复制存储,并将串行事务转发到订阅服务器。对已发布表的更改被传送到订阅服务器提交它们的顺序至关重要。

与新的订阅事务复制事务日志中标记为已发布表 (或表) 的每个更改。默认订阅传递方法锁定表、 使用 bcp 实用工具导出数据、 解除锁定在已发布的表,然后开始跟踪对已发布的数据库所做的更改。在 SQL Server 2000 并发快照 功能提高了快照锁定开销。SQL Server 2000 和 SQL Server 7.0 可以通过使用文件传输协议 (FTP) 传输快照。但是,您可以使用备份的方法的情况下这些选项不接受。

通过已发布的数据库进行备份,并将它还原到订阅服务器中,您可以减少快照创建进程时所用的时间备份发布的数据库。数据库备份包括由复制不传输到订阅服务器的所有对象 ; 您不必通过网络执行 bcp 传输的表。

有两种方法可以将已发布的数据库备份。第一种方法使用已发布的数据库的完整备份。如果数据库很小,或者如果数据库不为完整恢复模式配置的完整备份方法效果最佳。第二种方法使用事务日志备份,并假定您已具有捕获数据库的完整备份。事务日志备份方法减少数据库必须处于单用户模式的时间。事务日志备份所需的时间比完全备份少。如果您打算使用事务日志备份方法,请按照下列步骤操作:
  1. 如果已发布的数据库未运行在完整恢复模式,将其更改为完整恢复模式。
  2. 备份发布数据库。
  3. 备份日志文件以最大限度地减少遍历订阅的步骤所花费的时间,然后按照 $ 下一过程中的步骤。
若要设置订阅,请按照下列步骤操作:
  1. 将已发布的数据库放在单用户模式,以防止通过运行以下存储的过程在数据库中所做的更改: sp_dboption DBNAME、 单用户、 真。这样可以防止在数据库中所作的更改。这是一个关键步骤 ; 您确保订阅服务器与发布服务器保持同步。您必须停止所有的复制代理程序在运行 sp_dboption 存储过程之前连接到数据库。
  2. 如果使用的完整备份方法备份发布数据库。如果使用的事务日志方法备份事务日志中有已发布的数据库。
  3. 创建到出版物的新订阅。选择 提供数据和架构。
  4. 向上订阅设置时查找分发代理程序调度屏幕。更改任务运行一次。(这样可防止分发代理程序运行之前,还原到订阅服务器上的数据库和事务日志备份之后)。
  5. 删除从单用户模式的数据库,通过使用下面的存储的过程调用: sp_dboption DBNAME、 单用户、 假。由于该订阅设置的所有更改将被都转发到分发数据库中。
  6. 还原在订阅服务器上的数据库。如果使用的事务日志方法还原完整备份和事务日志备份。不应在此点运行分发代理程序。如果它它将防止数据库正在被恢复。该代理程序调度已在步骤 4。
  7. 生成在 插入更新,和 删除 的过程,在复制过程中使用的。您可以通过运行以下过程之一来生成 CREATE 程序语句为这些过程: (具体取决于的复制类型和 SQL Server 的版本不同的过程)
    1. 对于 SQL Server 2000: sp_scriptpublicationcustomprocs

      在发布服务器上运行 sp_scriptpublicationcustomprocs。此过程中生成的存储过程所需在订阅服务器上的文本。在订阅数据库上运行生成的脚本。
    2. 即时更新和排队订阅者: sp_script_synctran_commands

      注意即时更新和排队订阅服务器是第 4 步的例外情况。因为分发代理程序生成一个支持的表名为 MSsubscription_agentssp_script_synctran_commands 输出应用于订阅服务器数据库之前,您必须运行分发代理程序。 运行分发代理程序后将应用到订阅服务器数据库的 sp_script_synctran_commands 由生成的脚本。您还必须为即时更新订阅服务器运行 sp_scriptpublicationcustomprocs 存储过程在发布服务器和订阅数据库上生成的脚本。

    3. 必须将 sp_script_synctran_commands 输出应用于订阅服务器数据库 ; 但是,您必须首先运行分发代理程序以生成一个支持的表名为 MSsubscription_agents,然后您可以在运行 sp_script_synctran_commands 时应用生成的输出。您还必须为即时更新订阅服务器运行 sp_scriptpublicationcustomprocs,在发布服务器上。在订阅数据库上运行生成的脚本。
    4. 有关 SQL Server 7.0: sp_scriptinsprocsp_scriptdelprocsp_scriptupdprocsp_scriptmappedupdproc

      这些过程生成脚本,以便在订阅服务器上所需的过程。对订阅数据库运行这些脚本。
  8. 启动分发代理程序。您可能希望将设置为连续运行分发代理程序。若要这样做将添加到分发代理程序命令行的 -连续
有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
299903修补: sp_scriptpublicationcustomprocs 生成复制存储过程

合并复制

注意 用于合并请求订阅不支持无同步订阅。

当您使用备份或还原设置非同步选项对合并发布的订阅时,请按照下列步骤操作:
  1. 发布数据库,然后运行快照代理程序。如果在发布数据库只需运行快照代理程序。

    现在在合并复制系统表中记录在发布服务器上所做的所有更改。
  2. 将已发布的数据库备份,然后将其还原订阅服务器上。
  3. 创建一个新的订阅,然后选择 否,订阅服务器已经具有架构和数据
  4. 运行合并代理程序。

    合并代理程序在运行时它将首先创建合并复制表使用快照。已生成快照以来进行的所有更改都应用于订阅服务器:
    • 如果在此过程中添加任何行之间第 1 步和第 2 步您将看到新行作为订阅服务器上的更新。由于恢复的已存在行。因此,您将看到新行在订阅服务器上。
    • 如果删除了任何行之间第 1 步和第 2 步中,此过程中的合并代理程序报告必须进行任何更改,因为订阅服务器上不存在行。在发布服务器上删除了行后执行备份或还原。
    • 如果任何行被更新之间第 1 步和第 2 步中,此过程中,您将看到这些更新为在订阅服务器上。

更多信息

有关如何初始化了从 SQL Server 2005 中备份的事务订阅的详细信息请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
http://msdn2.microsoft.com/en-us/library/ms151705.aspx
有关如何初始化合并订阅从 SQL Server 2005 中备份的详细信息请访问下面的 MSDN 网站:
http://msdn2.microsoft.com/en-us/library/ms152488.aspx

属性

文章编号: 320499 - 最后修改: 2007年11月12日 - 修订: 7.1
这篇文章中的信息适用于:
  • Microsoft SQL Server 7.0 标准版
  • Microsoft SQL Server 2000 标准版
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
关键字:?
kbmt kbhowtomaster KB320499 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 320499
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com