SQL Server的日志传送
日志传送和复制
- 一、前言
- 二、相关术语和定义
- 三、日志传送和复制
- 3.1、在主数据库丢失时从辅助数据库进行复制的要求和过程
- 3.2、使用事务复制进行日志传送
- 3.3、使用合并复制进行日志传送
一、前言
日志传送允许您自动将事务日志备份从主服务器实例上的主数据库发送到单独辅助服务器实例上的一个或多个辅助数据库。事务日志备份分别应用于每个辅助数据库。可选的第三个服务器实例(称为监视服务器)记录备份和还原操作的历史记录和状态,如果这些操作未能按计划发生,可以选择引发警报。
日志传送的好处:
-
为单个主数据库和一个或多个辅助数据库提供灾难恢复解决方案,每个数据库都位于单独的 SQL Server 实例上。
-
支持对辅助数据库进行有限的只读访问(在还原作业之间的间隔期间)。
-
允许主服务器备份主数据库的日志与辅助服务器必须还原(应用)日志备份之间的用户指定的延迟。较长的延迟可能很有用,例如,如果主数据库上的数据意外更改。如果很快注意到意外更改,则延迟可以让您在更改反映在辅助数据库之前从辅助数据库中检索仍然未更改的数据。
日志传送包含三个操作:
-
在主服务器实例上备份事务日志。
-
将事务日志文件复制到辅助服务器实例。
-
在辅助服务器实例上还原日志备份。
日志可以传送到多个辅助服务器实例。在这种情况下,将为每个辅助服务器实例重复操作 2 和 3。
日志传送配置不会自动从主服务器故障转移到辅助服务器。如果主数据库不可用,则可以手动使任何辅助数据库联机。
可以使用辅助数据库进行报告。
此外,还可以为日志传送配置配置警报。
二、相关术语和定义
(1)主服务器:作为生产服务器的 SQL Server 实例。
主数据库 主服务器上要备份到另一台服务器的数据库。通过 SQL Server Management Studio 对日志传送配置的所有管理都是从主数据库执行的。
(2)辅助服务器:要在其中保留主数据库的热备用副本的 SQL Server 实例。
(3)辅助数据库:主数据库的暖备用副本。辅助数据库可能处于“正在恢复”状态或“待机”状态,这使数据库可用于有限的只读访问。
(4)监视服务器:SQL Server 的一个可选实例,用于跟踪日志传送的所有详细信息,包括:
-
上次备份主数据库上的事务日志的时间。
-
辅助服务器上次复制和还原备份文件的时间。
-
有关任何备份失败警报的信息。
注意:配置监视服务器后,如果不先删除日志传送,则无法对其进行更改。
(5)备份作业:一种 SQL Server 代理作业,用于执行备份操作,将历史记录记录到本地服务器和监视服务器,并删除旧的备份文件和历史记录信息。启用日志传送后,将在主服务器实例上创建作业类别“日志传送备份”。
(6)复制作业:一种 SQL Server 代理作业,它将备份文件从主服务器复制到辅助服务器上的可配置目标,并在辅助服务器和监视服务器上记录历史记录。在数据库上启用日志传送后,将在日志传送配置中的每个辅助服务器上创建作业类别“日志传送副本”。
(7)还原作业:将复制的备份文件还原到辅助数据库的 SQL Server 代理作业。它在本地服务器和监视服务器上记录历史记录,并删除旧文件和旧历史记录信息。在数据库上启用日志传送后,将在辅助服务器实例上创建作业类别“日志传送还原”。
(8)警报作业:一种 SQL Server 代理作业,当备份或还原操作未在指定阈值内成功完成时,它会为主数据库和辅助数据库引发警报。在数据库上启用日志传送后,将在监视服务器实例上创建作业类别“日志传送警报”。
三、日志传送和复制
日志传送涉及通常驻留在不同计算机上的单个数据库的两个副本。在任何给定时间,客户端当前只有一个数据库副本可用。此副本称为主数据库。客户端对主数据库所做的更新通过日志传送到数据库的其他副本(称为辅助数据库)进行传播。日志传送涉及将对主数据库进行的每次插入、更新或删除操作中的事务日志应用到辅助数据库。
日志传送可以与复制结合使用,具有以下行为:
-
日志传送故障转移后,复制不会继续。如果发生故障转移,复制代理不会连接到辅助代理,因此事务不会复制到订阅服务器。如果发生故障回复到主数据库,复制将恢复。记录从辅助数据库到主数据库的传送副本的所有事务都将复制到订阅服务器。
-
如果主数据库永久丢失,则可以重命名辅助数据库,以便复制可以继续。本主题的其余部分介绍处理此案例的要求和过程。给出的示例是发布数据库,它是日志交付的最常见数据库,但类似的过程也可以应用于订阅和分发数据库。
3.1、在主数据库丢失时从辅助数据库进行复制的要求和过程
-
如果主数据库包含多个发布数据库,请将所有发布数据库日志传送到同一辅助数据库。
-
辅助服务器实例的安装路径必须与主服务器实例相同。辅助服务器上的用户数据库位置必须与主服务器上的位置相同。
-
在主密钥上备份服务主密钥。此密钥将在辅助密钥上还原。
-
日志传送不保证不会丢失数据。主数据库上的故障可能导致尚未备份的数据丢失或在故障期间丢失备份。
3.2、使用事务复制进行日志传送
对于事务复制,日志传送的行为取决于与备份同步选项。可以在发布数据库和分发数据库上设置此选项;在发布服务器的日志传送中,只有发布数据库上的设置是相关的。
在发布数据库上设置此选项可确保在发布数据库中备份事务之前不会将事务传递到分发数据库。然后,可以在辅助服务器上还原最后一个发布数据库备份,而分发数据库不可能具有还原的发布数据库没有的事务。此选项保证,如果发布服务器故障转移到辅助服务器,则在发布服务器、分发服务器和订阅服务器之间保持一致性。延迟和吞吐量会受到影响,因为在发布服务器上备份事务之前,无法将事务传递到分发数据库;如果您的应用程序可以容忍此延迟。如果未设置与备份同步选项,订阅服务器可能会收到不再包含在辅助服务器上恢复的数据库中的更改。
(1)使用与备份同步选项配置事务复制和日志传送:
-
如果未在发布数据库上设置与备份同步选项,请执行 sp_replicationdboption ‘’, ‘sync with backup’, ‘true’。
-
为发布数据库配置日志传送。
-
如果发布服务器失败,请使用 RESTORE LOG 的KEEP_REPLICATION选项将数据库的最后一个日志还原到辅助服务器。这将保留数据库的所有复制设置。
-
将 msdb 数据库和主数据库从主数据库还原到辅助数据库。如果主数据库也是分发服务器,请将分发数据库从主数据库还原到辅助数据库。这些数据库在复制配置和设置方面必须与主数据库的发布数据库一致。
-
在辅助服务器上,重命名计算机,然后重命名 SQL Server 实例以匹配主服务器名称。
-
在辅助服务器上,还原从主服务器备份的服务主密钥。
(2)配置事务复制和日志传送而不使用与备份同步选项:
-
为发布数据库配置日志传送。
-
如果发布服务器失败,请使用 RESTORE LOG 的KEEP_REPLICATION选项将数据库的最后一个日志还原到辅助服务器。这将保留数据库的所有复制设置。
-
将 msdb 数据库和主数据库从主数据库还原到辅助数据库。如果主数据库也是分发服务器,请将分发数据库从主数据库还原到辅助数据库。这些数据库在复制配置和设置方面必须与主数据库的发布数据库一致。
-
在辅助服务器上,重命名计算机,然后重命名 SQL Server 实例以匹配主服务器名称。可能会从日志读取器代理收到一条错误消息,指出发布数据库和分发数据库未同步。
-
在辅助服务器上,还原从主服务器备份的服务主密钥。
-
执行sp_replrestart。此存储过程可用于强制日志读取器代理忽略发布数据库日志中以前复制的所有事务。存储过程完成后应用的事务由日志读取器代理处理。
-
在存储过程成功执行后重新启动日志读取器代理。
-
已分发到订阅服务器的事务可能会在发布服务器上应用。若要确保分发代理在尝试在订阅服务器上重新应用这些事务时不会失败并显示错误,请指定标题为“出现数据一致性错误时继续”的代理配置文件。
3.3、使用合并复制进行日志传送
按照以下过程中的步骤配置合并复制和日志传送。
-
为发布数据库配置日志传送。有关详细信息,请参阅配置日志传送 (SQL Server)。
-
如果发布服务器失败,请在辅助服务器上重命名计算机,然后重命名 SQL Server 实例以匹配主服务器名称。
-
使用“还原日志”的KEEP_REPLICATION选项将数据库的最后一个日志还原到辅助服务器。这将保留数据库的所有复制设置。
-
将 msdb 数据库和主数据库从主数据库还原到辅助数据库。这些数据库在复制配置和设置方面必须与主数据库的发布数据库一致。
-
在辅助服务器上,还原从主服务器备份的服务主密钥。
-
将发布数据库与一个或多个订阅数据库同步。这样,您就可以上载以前在发布数据库中所做的更改,但这些更改未在还原的备份中表示。