SQL Server 使用日志传送
参考文献:
http://msdn.microsoft.com/en-us/library/ms187103.aspx
概述
SQL Server 使用日志传送,您可以自动将“主服务器”实例上“主数据库”内的事务日志备份发送到单独“辅助服务器”实例上的一个或多个“辅助数据库”。 事务日志备份分别应用于每个辅助数据库。 可选的第三个服务器实例(称为“监视服务器”)记录备份和还原操作的历史记录及状态,还可以在无法按计划执行这些操作时引发警报。
优点
- 为单个主数据库以及一个或多个辅助数据库(每个数据库都位于单独的 SQL Server 实例上)提供灾难恢复解决方案。
- 支持对辅助数据库的受限的只读访问权限(在还原作业之间的间隔期间)。
- 允许用户将延迟时间定义为:从主服务器备份主数据库日志到辅助服务器必须还原(应用)日志备份之间的时间。 例如,如果主数据库上的数据被意外更改,则较长的延迟会很有用。 如果很快发现意外更改,则通过延迟,您可以在辅助数据库反映此更改之前从其中检索仍未更改的数据。
术语和定义
- 主服务器 (primary server):位于生产服务器上的 SQL Server 实例。
- 主数据库 (primary database):希望备份到其他服务器的主服务器上的数据库。 通过 SQL Server Management Studio 进行的所有日志传送配置管理都是在主数据库中执行的。
- 辅助服务器 (secondary server):想要在其中保留主数据库的热备用副本的 SQL Server 实例。
- 辅助数据库 (secondary database):主数据库的热备用副本。辅助数据库可以处于 RECOVERING 状态或 STANDBY 状态,这将使数据库可用于受限的只读访问。
- 监视服务器 (monitor server):跟踪日志传送的所有详细信息的 SQL Server 的可选实例,包括:主数据库中事务日志最近一次备份的时间。辅助服务器最近一次复制和还原备份文件的时间。有关任何备份失败警报的信息。
日志传送步骤
日志传送由三项操作组成:
在主服务器实例中备份事务日志。
将事务日志文件复制到辅助服务器实例。
在辅助服务器实例中还原日志备份。
日志可传送到多个辅助服务器实例。 在这些情况下,将针对每个辅助服务器实例重复执行操作 2 和操作 3。
日志传送配置不会自动从主服务器故障转移到辅助服务器。 如果主数据库变为不可用,可手动使任意辅助数据库联机。
您可以为了实现报表目的而使用辅助数据库。
此外,可以针对日志传送配置来配置警报。
典型日志传送配置
下图显示了具有主服务器实例、三个辅助服务器实例和一个监视服务器实例的日志传送配置。 此图阐释了备份作业、复制作业以及还原作业所执行步骤,如下所示:
主服务器实例执行备份作业以在主数据库上备份事务日志。 然后,该服务器实例将日志备份放入主日志备份文件(此文件将被发送到备份文件夹中)。 在此图中,备份文件夹位于共享目录(“备份共享”)下。
全部三个辅助服务器实例都执行其各自的复制作业,以将主日志备份文件复制到它本地的目标文件夹中。
每个辅助服务器实例都执行其还原作业,以将日志备份从本地目标文件夹还原到本地辅助数据库中。
主服务器实例和辅助服务器实例将它们自己的历史记录和状态发送到监视服务器实例。

Log Shipping配置
Primary Server:SANZ-W7\.,以local system启动默认数据库实例
Primary Database:InsideTSQL2008
Secondary Server:WUW-W7\.,以域账户wuwang启动默认数据库实例,因为如果用Local System这个帐号的话,是不能访问网络资源的。
Secondary Database:InsideTSQL2008
配置步骤:
步骤1:
在主服务器SANZ-W7上创建一个共享目录,给Everyone有读的权限。比如我创建的共享目录路径是:C:\Temp\LogShipping,共享路径是:\\SANZ-W7\LogShipping。
步骤2:
对主数据库InsideTSQL2008做一个全备份(可以不做全备份,在配置log shipping的时候再做全备份,下面会提到),然后把备份文件InsideTSQL2008.bak放在C:\Temp\LogShipping目录下。在辅助服务器上创建目录C:\Temp\LogShipping。
步骤3:
设置LogShipping的配置属性,我们右键InsideTSQL2008->Tasks->Ship Transaction Logs,会出现如下图所示界面:

点击Backup Settings进行如下配置:

在此处创建了一个Job叫做LSBackup_InsideTSQL2008,用来自动备份事务日志。
步骤4:
然后添加Secondary服务器WUW-W7,如下图所示:

Seconday server instance我们选择WUW-W7,Secondary database默认就是跟primary database同名的InsideTSQL2008。如下图所示,我们在Initialize Secondary Database中看到有两个选项,一个是创建数据库全备份,然后将这个全备份回复到secondary database中,另外一个是指定已有全备份的路径。

在Copy File标签中添加Secondary Server保存文件的路径,我们这里使用同名的路径。还有secondary server也要启动sql agent。

配置完毕以后点击OK,最后会有一个配置成功界面:

Log Shipping验证:
我们在服务服务器WUW-W7下查看InsideTSQL2008信息,如下图所示:

我们可以发现InsideTSQL2008处于Resotoring状态,这是因为恢复到服务数据库的都是使用nonrecovery模式的。
在完全正确配置Log Shipping以后,我们可以在primary server的C:\Temp\LogShipping目录下看到如下这些日志备份文件

在Secondary server的C:\Temp\LogShipping目录下看到

唯一的区别就是primary server有full database backup,而Secondary server中没有。不论是primary server上的LSBackup_TESTDB1,还是secondary server上的LSCopy_SANZ-W7_TESTDB1和LSRestore_SANZ-W7_TESTDB1,我将他们都设置成每一分钟执行一次,这样方便查看实验结果。
"Could not retrieve backup settings for primary ID"错误的解决方法
在SSMS中查看LSBackup_InsideTSQL2008这个Job的工作情况,发现这个Job报错,错误如下:

*** Error: Could not retrieve backup settings for primary ID 'f32baa93-0341-48b5-a5a0-2acde90283fa'.(Microsoft.SqlServer.Management.LogShipping)
***<nl/>2012-09-09 19:30:15.85*** Error: Failed to connect to server WIN-E5EJQ0EN4O2.(Microsoft.SqlServer.ConnectionInfo)
***<nl/>2012-09-09 19:30:15.85*** Error: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider<c/> error: 40 - Could not open a connection to SQL Server)(.Net SqlClient Data Provider)
***<nl/>2012-09-09 19:30:15.85----- END OF TRANSACTION LOG BACKUP -----

从上述错误日志中我们发现有一条是说无法连接 server WIN-E5EJQ0EN4O2。但是我的primary server是SANZ-W7啊,怎么成了WIN-E5EJQ0EN4O2?这是当初安装系统的时候,立马就安装了sql server,然后又将主机名从WIN-E5EJQ0EN4O2改成了SANZ-W7。但是在sys.servers中没有更新,我们可以通过如下TSQL语句查看:
select @@SERVERNAME
其查询结果就是WIN-E5EJQ0EN4O2。我们只需要更新数据库中sys.servers信息就可以了。我们执行如下TSQL语句更新server信息

--删除旧的主机名
EXEC sp_dropserver 'WIN-E5EJQ0EN4O2'
GO
--添加当前主机名
EXEC sp_addserver 'SANZ-W7', 'local'
GO

在执行完上述TSQL语句以后一定要记得重启sql server,否则使用select @@SERVERNAME查询当前server名称还是WIN-E5EJQ0EN4O2。
SQL Server 使用日志传送的更多相关文章
- 【转载】SQL Server 2012 日志传送
SQL Server 2012 日志传送 一.准备: 数据库为完全恢复模式,并事先做一次完全备份. 共享一个文件夹,主机备份放在这个文件夹,而且客户机有权访问这个共享文件夹. 二.基本配置 1.启动配 ...
- SQL Server 错误日志过滤(ERRORLOG)
一.背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:“Login failed for user 'sa'. 原因: 评估密码时出错.[客户端: XX.X ...
- [AlwaysOn Availability Groups]SQL Server错误日志(AG)
SQL Server错误日志(AG) SQL Server错误日志会记录影响AG的时间,比如: 1.和Windows故障转移集群交互 2.可用副本的状态 3.可用数据的状态 4.AG endpoint ...
- SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)
需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...
- 人人都是 DBA(VI)SQL Server 事务日志
SQL Server 的数据库引擎通过事务服务(Transaction Services)提供事务的 ACID 属性支持.ACID 属性包括: 原子性(Atomicity) 一致性(Consisten ...
- SQL Server 错误日志收缩(ERRORLOG)
一.基础知识 默认情况下,错误日志位于 : C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG 和ERRORLOG.n 文 ...
- SQL Server自动化运维系列 - 监控磁盘剩余空间及SQL Server错误日志(Power Shell)
需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...
- Microsfot SQL Server 2012 日志收缩
//Microsfot SQL Server 2012 日志收缩 USE DataBaseName;GO ALTER DATABASE DataBaseNameSET RECOVERY SIMPLE; ...
- SQL Server中日志
再谈SQL Server中日志的的作用 简介 之前我已经写了一个关于SQL Server日志的简单系列文章.本篇文章会进一步挖掘日志背后的一些概念,原理以及作用.如果您没有看过我之前的文章,请参阅: ...
随机推荐
- python中fork()函数生成子进程分析
python的os module中有fork()函数用于生成子进程,生成的子进程是父进程的镜像,但是它们有各自的地址空间,子进程复制一份父进程内存给自己,两个进程之 间的执行是相互独立的,其执行顺序可 ...
- Daily Scrum6
今天我们小组开会内容分为以下部分: part 1: Anti-spam and anti-abuse module模块总结: part 2: 部分优化代码的展示于交流: part 3:针对用户积分模块 ...
- Notes of the scrum meeting(11/2)
meeting time:13:00~13:30p.m.,November 2nd,2013 meeting place:3号公寓楼一层 attendees: 顾育豪 ...
- MVC4 网站发布(整理 + 部分转载 + 部分问题收集和解决方案)
网站发布步骤: 这部分是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因. 如有冒犯请联系本人,或删除,或标明出处. 因为好的文章,以前只想收藏,但连接 ...
- IOC框架的认识
转:http://blog.csdn.net/wanghao72214/article/details/3969594 1 IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实 ...
- 【BZOJ】【4027】【HEOI2015】兔子与樱花
贪心 树上贪心问题……跟APIO2015练习赛的C很像啊…… 我的思路是:从叶子向上考虑,令a[x]表示x这个节点上樱花数量与儿子个数的和(即对于任意的x,都有$a[x]\leq m$)每次从儿子的a ...
- Oracle 时间处理(加减)
一. 类似SQL SERVER中DateAdd select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate ...
- CSS3实现的渐变按钮,在IE7、IE6下的滤镜使用。
.ui-button { BORDER-LEFT-WIDTH:; ; COLOR: #fff; PADDING-BOTTOM: 0px; TEXT-ALIGN: center; PADDING-T ...
- 较复杂js的书写格式
我们看较复杂的js程序最怕结构混乱,一个好的js书写结构,在很大程度上可以减缓阅读的障碍性. 我感觉一个良好的结构要有两点:一是要有一个统一的入口,这样就保证了程序的可阅读性:二是要能够灵活的设置参数 ...
- maven 多套环境 配置(开发、测试、预发、正式)
接上一节继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local).(开发小组内自测的)开发环境(dev).(提供给测试团队的)测试环境(test).预发布环境(pre ...