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

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

《欢迎交流讨论》

时间: 2014-11-10

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

如何防止SQL Server数据库的事务日志异常增长

server|数据|数据库 当事务日志扩展到无法接受的限度时您必须执行的步骤.事务日志的扩展会导致 Microsoft SQL Server 数据库无法使用. 在 SQL Server 2000 中,每个数据库都至少包含一个数据文件和一个事务日志文件.SQL Server 2000 在该数据文件中以物理方式存储数据.事务日志文件存储您对 SQL Server 数据库执行的所有修改的详细信息,以及执行每个修改的事务的详细信息.由于事务完整性被视为 SQL Server 的一个基本而固有的特点,因此

SQL Server误区:有关大容量事务日志恢复模式的误区

误区 #28:有关大容量事务日志恢复模式的几个误区 28 a)常见的DML操作可以被"最小记录日志" 不是.在大容量事务日志恢复模式下只有一小部分批量操作可以被"最小记录日志",这类操作的列表可以在Operations That Can Be Minimally Logged找到.这是适合SQL Server 2008的列表,对于不同的SQL Server版本,请确保查看正确的列表. 28 b)使用大容量事务日志恢复模式不会影响灾难恢复 首先,在上次事务日志备份之后

SQL Server事务日志的几个常用操作

我们知道,SQL Server事务日志主要是用来记录所有事务对数据库所做的修改,如果系统出现故障,它将成为最新数据的唯一来源.日志的操作常有以下几个应用: 一.事务日志文件LDF的丢失 当我们不小删除或者LDF文件丢失的时候,数据库只剩下MDF文件,此时直接通过附加MDF是无法恢复数据库的,那我们怎么样才能恢复数据库呢?我们可以把SQL Server的日志文件分为两种形式:一类是无活动事务的日志,另一类是有活动事务的日志,我们分别根据两种情况来进行数据库恢复. 1.无活动事务的日志恢复 当文件并

使用事务日志解决SQL Server的4个常见故障

当系统出现故障时,只要存在数据日志那么就可以利用它来恢复数据解决数据库故障.作为SQL Server数据库管理员,了解数据日志文件的作用,以及如何利用它来解决一些数据库的常见故障,这非常重要.既然事务日志这么重要,那么他到底可以用来做什么事情呢?口说无凭,笔者这里就跟大家说说事务日志到底可以用来解决什么故障. 故障一:服务器意外关闭造成的损失 俗话说,天又不测风云.数据库服务器如果因为突然断电或者其他一些原因意外当机时,再重新启动服务器后会出现一些数据的损失.这主要是因为数据库中的数据发生更改后

SQL大型事务日志备份与修复问题

问:我在备份时注意到一些异常现象,希望您能解释一下.我们需要经常备份 62GB 的生产数据库,以刷新应用程序开发人员所使用的数据.我们总是先删除旧副本然后再还原新副本.还原的副本与生产数据库大小相同,而且数据看起来也一样,但是与备份过程相比,还原过程所需的时间要长很多.这是怎么回事?为什么还原比备份需要更长的时间? 答:其实这不属于异常现象.根据您所处的环境,这种现象通常是预料之中的.备份和还原所需的时间之所以不同,是由于每个流程必须执行的步骤不同. 备份数据库包含两个步骤.主要就是对数据库执行

使用SQL Server 2008的事务日志传送功能备份数据库

一:系统要求 数据库服务器,名称Server-DW,Windows Server 2003 X64,安装SQL Server 2008,需要备份的数据库为"JKL_DW". 备份服务器,名称Server-ETL,Windows Server 2003 X32,安装SQL Server 2008. 二:准备工作 1.在Server-ETL上创建文件夹,用于存放备份数据库,此例中命名为"jklDW". 2.在Server-ETL上创建文件夹,用于存放为备份数据传送过来的

MS SQL Server的事务日志简介一览

交易日志,或称事务日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分.由于它并不像数据库中的schema那样活跃,因此很少有人关注交易日志. 交易日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中.对于任何每一个交易过程,交易日志都有非常全面的记录,根据这些记录可以将数据文件恢复成交易前的状态.从交易动作开始,交易日志就处于记录状态,交易过程中对数据库的任何操作都在记录范围,直到用户点击提交或后退后才结束记录.每个数据库

SQL SERVER 事务日志

  谈到事务日志就不得不谈下检查点 Checkpoint ,简称 CKP. 事务日志和检查点都是为了数据库的快速恢复而存在的.我们需要知道检查点是干什么的,它和事务日志有什么关系. CKP是干什么的? 总所周知,数据的更改并没有直接写入mdf/ndf 数据文件中,而是写入了buffer pool中; 当CKP被触发后,检查点将"全部"脏数据页从当前数据库的buffer pool刷新到数据文件上.所谓的脏数据,是那些被更改的 data page ,在内存中却没有写入磁盘.全部脏数据包括已

SQL Server事务日志被填满的原因是什么

SQL Server事务日志可能会被填满,这会阻止之后的数据库操作,包括UPDATE, DELETE, INSERT 和CHECKPOINT. 事务日志填满会导致1105错误: Can't allocate space for object syslogs in database dbname because the logsegment is full. If you ran out of space in syslogs, dump the transaction log. Otherwis