sql 事务日志传输

原文:sql 事务日志传输

概述

可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库)。不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步。目标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到一个或多个只读的辅助服务器。日志传送可与使用完整或大容量日志恢复模式的数据库一起使用;使用日志传送,您可以自动将“主服务器”实例上“主数据库”内的事务日志备份发送到单独“辅助服务器”实例上的一个或多个“辅助数据库”。事务日志备份分别应用于每个辅助数据库。可选的第三个服务器实例(称为“监视服务器”)记录备份和还原操作的历史记录及状态,还可以在无法按计划执行这些操作时引发警报

操作组成

  1. 在主服务器实例中备份事务日志。
  2. 将事务日志文件复制到辅助服务器实例。
  3. 在辅助服务器实例中还原日志备份。

主服务器和数据库

日志传送配置中的主服务器是作为生产服务器的 SQL Server 数据库引擎实例。主数据库是主服务器上希望备份到其他服务器的数据库。通过 SQL Server Management Studio 进行的所有日志传送配置管理都是在主数据库中执行的。

主数据库必须使用完整恢复模式或大容量日志恢复模式,将数据库切换为简单恢复模式会导致日志传送停止工作。

辅助服务器和数据库

日志传送配置中的辅助服务器是您想要在其中保留主数据库备用副本的服务器。一台辅助服务器可以包含多台不同主服务器中数据库的备份副本。例如,某个部门可能有五台服务器,每台服务器都运行关键数据库系统。在这种情况下,可以只使用一台辅助服务器,而不必使用五台单独的辅助服务器。五个主系统上的备份都可以加载到这个备份系统中,从而减少所需的资源数量并节省开支。不太可能出现多个主系统同时发生故障的情况。另外,为了应对多个主系统同时不可用的罕见情况,辅助服务器的规格可以比各主服务器高。

辅助数据库必须通过还原主数据库的完整备份的方法进行初始化。还原时可以使用 NORECOVERY 或 STANDBY 选项。这可以手动或通过 SQL Server Management Studio 实现。

监视服务器

监视服务器是可选的,它可以跟踪日志传送的所有细节,包括:

    • 主数据库中事务日志最近一次备份的时间。
    • 辅助服务器最近一次复制和还原备份文件的时间。
    • 有关任何备份失败警报的信息。

监视服务器应独立于主服务器和辅助服务器,以避免由于主服务器或辅助服务器的丢失而丢失关键信息和中断监视。一台监视服务器可以监视多个日志传送配置。在这种情况下,使用该监视服务器的所有日志传送配置将共享一个警报作业。

步骤方法

在配置数据库之前首先要将主数据库进行一个完整备份,然后在辅助服务器上进行还原,还原脚本如下,注意保持数据库为正在还原状态(norecovery)

RESTORE DATABASE [test] FROM  DISK = N‘D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test.bak‘ WITH  FILE = 1,
MOVE N‘test‘ TO N‘D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\useData\test.mdf‘,
MOVE N‘test_log‘ TO N‘D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\useData\test_1.ldf‘,
NORECOVERY,  NOUNLOAD,  STATS = 10

1.配置主数据库

选择需要进行日志传输的数据库,鼠标右键属性-事务日志传输-勾选"将此数据库启用为日志传输配置中的主数据库"

点击“备份设置”,此过程也就是创建一个主数据库的备份计划(LsBack_test123),在这里之前你要在本机创建一个用于存放主数据库的备份文件夹,同时你要将这个文件夹设共享,供辅助服务器访问,文件夹权限设为everyone可读写,最后添加一个来宾组的读取权限,配置如下,同时你也可以对备份作业进行备份时间计划,这个计划具体根据备份需求

备份计划

配置主数据库要注意的地方主要就是共享文件夹的读写权限问题。

2.配置辅助服务器和数据库

点击添加添加辅助数据库

连接辅助服务器(我这里是做为测试连接的是本地服务器,实际是需要连接辅助服务器)

选择复制文件(该步骤会创建一个复制计划“LSCopy_C-3A89048AF8DF4_test123”,将刚才主数据库的日志备份文件复制到辅助服务器中设定的文件夹中)

首先要在辅助服务器(假如是:192.168.1.3)上建立一个共享文件夹,该文件夹权限需要可以读写,可以设置为everyone可以读写权限

该步骤计划的计划实际可以设置为最短时间也就是主数据库备份完成立刻复制

还原事务日志(该步骤会创建一个还原计划“LSRestore_C-3A89048AF8DF4_test123”,将拷贝过来的日志文件在辅助服务器上进行还原,同时可以选择数据库状态是否截断用户连接)

同样还原计划时间可以间隔可以设置的比较短,可以第一时间还原备份

整个辅助服务器就配置完成了,这样同样容易出现的问题就是辅助服务器文件夹的共享问题,会出现拷贝不了的问题

3.监视服务器配置

监视服务器不是必须的选项也就是可以不进行配置,此过程就是创建一个监视作业(警报作业)“LSAlert_C-3A89048AF8DF4”

总结

事务日志传输与跟复制订阅相比:事务日志传输操作更简单而复制订阅更具体;

事务日志传输与跟数据库镜像相比:事务日志传输比数据库镜像的成本低,事务日志传输也可以在单数据库实例上进行,

状态图:


备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

时间: 2024-10-13 11:31:14

sql 事务日志传输的相关文章

SqlServer 事务日志传输

基本概念 可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库).不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步.目标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到一个或多个只读的辅助服务器.日志传送可与使用完整或大容量日志恢复模式的数据库一起使用. 日志传送由三项操作组成: 在主服务器实例中备份事务日志. 将事务日志文件复制到辅助服务器实例. 在辅助服务器实例中还原日志备份. 日志可传送

SQL事务日志备份时的问题

1.在进行事务日志备份的时候,如下图: 3041 消息的疑难解答时的考虑事项:不会只是一个数据库或所有数据库出现问题吗?是备份到本地存储区或远程存储吗?哪种类型的备份 (数据库备份. 日志备份和差异备份) 是否出现故障?正在执行备份的应用程序 (SQL Server 代理作业. SQL 维护计划或 VDI/VSS 备份软件供应商提供的备份代理程序) 是什么?用于备份命令的选项是什么?什么是在其下运行 SQL Server 的帐户,此帐户没有所需的访问目标位置写入文件? 参考:http://sup

SQL Server移除事务日志后sys.master_files依然存在记录问题

原文:SQL Server移除事务日志后sys.master_files依然存在记录问题 在SQL Server中移除了事务日志文件后,使用sys.master_files检查时发现,对应的事务日志文件记录信息依然存在sys.master_files里面,只是状态state_desc为OFFLINE.需要经过一段时间,这条记录在这个系统视图才会消失. DECLARE @db_name NVARCHAR(32); SET @db_name=N'TEST'; SELECT   f.database_

SQL Server中的事务日志管理(7/9):处理日志过度增长

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这篇文章会列出导致事务日志过度增长的常见的问题和错误管理形式,包括: 在完整恢复模式里,没有进行日志备份 进行索引维护 长时间运行或未提交的事务阻止事务日志里空间重用 当然,如果增长没检查,日志文件会扩展直到吞没所有可用磁盘空间或日志文件的最大大小,在这个时候你

SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这个标题近乎是用词不当,因为很大程度上,运行在简单模式里不需要日志管理.在简单模式里,事务日志的唯一目的是在数据库恢复操作期间,保证事务的ACID属性,还有强制数据库的一致性和事务的持久性.事务日志不能被备份,不能用来数据库恢复,也不能用作日志传输. 在简单模式

sql server 复制,镜像,日志传输及故障转移集群区别

复制:将数据传输到其他服务器上存储,做备份.镜像:主服务器数据库挂了,另一台自动成为主服务器运行,日志:可控制的镜像.集群:主服务器挂了,另一台自动成为主服务器运行,并不仅限于数据库. 明细:引自http://hi.baidu.com/jaimy_jie/blog/item/6e099ed52f42a4d250da4b24.html 一, 数据库复制 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份

Sql Server 事务日志(三)

SQL server的日志文件会随着数据修改的增加而变大,在处理日志文件时,我们常用的方式是将日志截断,并收缩. Backup log databasename to disk='' dbcc shrinkfile(databasename_log) 当然,如果磁盘空间紧张,可以将恢复模式改成‘simple’的方式使日志截断,然后再收缩日志 alter database test set recovery simple; DBCC shrinkfile(test_log) alter datab

SQL Server中事务日志已满的原因以及解决办法

错误描述:数据库的事务日志已满.若要查明无法重用日志中的空间的原因 ,请参阅sys.databases 中的 log_reuse_wait_desc 列 . 首先引入一下事务日志的概念(来自百度百科): 事务日志是一个与数据库文件分开的文件.它存储对数据库进行的所有更改,并全部记录插入.更新.删除.提交.回退和数据库模式变化.事务日志还称作前滚日志或重做日志. 事务日志是备份和恢复的重要组件,也是使用 SQL Remote 或 [复制代理] 复制数据所必需的. 在缺省情况下,所有数据库都使用事务

SQL Server中的事务日志管理(9/9):监控事务日志

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 对于在我们关注下的所有数据库,在日志维护方面,我们的首要目标是最优化写性能,为了支持SQL Server写入日志的所有活动,包括数据修改,数据读取,索引维护等等.但是,留意下可能的日志碎片也是重要的,如前面文章介绍的,它会影响需要读取日志的过程性能,例如日志备份