1.    概述

SQL Server 使用日志传送,您可以自动将“主服务器”实例上“主数据库”内的事务日志备份发送到单独“辅助服务器”实例上的一个或多个“辅助数据库”。事务日志备份分别应用于每个辅助数据库。可选的第三个服务器实例(称为“监视服务器”)记录备份和还原操作的历史记录及状态,还可以在无法按计划执行这些操作时引发警报。当主服务器因故障停机时,您就可以将备份服务器更改为新的主服务器。如果原来的主服务器可重新上线使用,那么您可以将其设定为新的备份服务器 - 事实上就是对调两台服务器的角色。

2.      目的

主要测试SQLSERVER2008R2企业版日志自动传送、自动装载功能、主运行服务器与备份服务器的角色切换功能及通过监视服务器对日志传送及备份服务器进行维护。

3.      测试环境

3.1.       主服务器

Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4x

3.2.       辅助服务器

Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4y

3.3.       监视服务器

Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4z

3.4.       共享服务器

Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4w

4.      配置日志传送

4.1.       准备工作

4.1.1.  账户建立

Windows账户建立:分别在”主服务器”,”辅助服务器”,”监视服务器”,”共享服务器”上建立本地帐号”daleadmin”,密码设置相同,并加入administrators组。

4.1.2.  文件夹建立及共享安全设置

在共享服务器上建立文件夹”Logfiles”,同时设置共享,在”权限”中加入帐号”daleadmin”,允许其对该文件夹有读写权限。该文件夹主要用于主服务器日志备份。

在主服务器及辅助服务器上建立文件夹Logfiles,权限同上设置。该文件夹主要用于拷贝及还原日志备份文件。

4.1.3.  SQLServer启动账户设置

主服务器,辅助服务器,监视服务器 上的SQLServer的服务及代理服务均以daleadmin

账户启动。

4.1.4.  主服务器上备份数据库

use master
  go
  backup database Northwind
  to disk='\\192.168.102.4w\Logfiles\Northwind.bak'
  go
  use Nortwind
  go
  create table table10(id int)
  go
  use master
  go
  backup log Northwind
  to disk='\\192.168.102.4w\Logfiles\Northwind.bak'

4.1.5.  辅助服务器上还原数据库

--还原全备份
  restore database 
  from disk='\\192.168.102.4w\Logfiles\Northwind.bak'
  with file=1,norecovery
  --还原日志备份
  restore database 
  from disk='\\192.168.102.4w\Logfiles\Northwind.bak'
  with file=2,norecovery

4.2.       配置日志传送

在主服务器上配置日志传送

4.2.1.  事务日志备份设置,如下图

4.2.2.  添加辅助服务器并设置辅助数据库如下图

4.2.3.  设置监视服务器

4.2.4.  测试日志传送效果

经过以上配置,日志传送已经配置成功,观察辅助服务器,将处于(备用/只读)模式。

下面我们来测试是否真正成功。

主服务器执行

create table table11(id int)

过几分钟查看辅助服务器,发现已成功创建table11,同时我们也可以通过在监视服服务器执行以下存储过程,查看日志传送的状态。

use master
  go
  exec sp_help_log_shipping_monitor
  go
  exec sp_help_log_shipping_monitor_primary 'TestServer1','Northwind'
  go
  exec sp_help_log_shipping_monitor_secondary 'TestServer2','Northwind'
  go

同时也可以通过查看错误日志了解日志传送的结果。

5.      辅助服务器切换为主服务器

5.1.       模拟故障

5.1.1.  将主服务器(192.168.102.4x)的SQLServer服务器停止

5.1.2.  到指定文件夹下删除Northwind数据文件

5.1.3.  重启SQLServer服务,此时数据库Northwind已损坏,为不可用状态。

5.1.4.  尾日志备份(假定此时主数据库实例尚未损坏,仍可以执行T-SQL)

backup log Northwind
  to disk='\\192.168.102.4w\Logfiles\Northwindlog.bak'
  with no_truncate

5.2.       拷贝文件

5.2.1.  执行辅助服务器的上的拷贝作业或者手动的拷贝还没拷贝的日志文件到”D:\logfiles”

5.2.2.  手动拷贝主数据库的尾日志备份文件Northwindlog.bak到D:\logfiles

5.3.       还原日志

5.3.1.  执行辅助服务器上的还原作业还原尚未还原的日志文件

5.3.2.  手动还原尾日志备份文件

restore database Northwind
  from disk='D:\logfiles\Northwindlog.bak'
  with recovery

6.      主/辅助服务器角色互换

6.1.       作业禁用

6.1.1.  禁用原主服务器(192.168.102.4x)上的备份作业

6.1.2.  禁用辅助服务器(192.168.102.4y)上的拷贝及还原作业

6.1.3.  禁用监视服务器(192.168.102.4z)上的警报作业

6.2.       重新配置日志传送

配置方法参照上面方法

6.2.1.  192.168.102.4y上配置日志传送,此时该服务器为主服务器

6.2.2.  192.168.102.4x 为辅助服务器

6.2.3.  192.168.102.4z 为监视服务器

6.3.       删除日志传送

删除原主服务器(192.168.102.4x)上的日志传送,取消勾选”将此数据库启用为日志传送配置中的主数据库”即可

7.      总结

7.1.       问题总结

7.1.1.  注意点

7.1.1.1.      如果主服务器上的SQL Server服务账户运行在本地系统账户下,必须在主服务器本地建立文件夹,并指定该文件夹的本地路径。一般建议建立专门的账户

作为SQLServer及SQLAgent 服务的启动账户。

7.1.1.2.      如果选择让”Management Studio”从数据库备份中初始化辅助数据库,默认情况下辅助数据库的数据文件及日志文件将于master数据库的数据文件和日志文件放置在同一位置。此位置可能与主数据库的数据及日志文件处于不同的位置。

7.1.1.3.      若要监视此日志传送,必须添加监视服务器,若要以添加监视服务器,则需要删除此日志传送配置,然后重新配置。

7.1.1.4.      主服务器日志截断只能通过备份日志,然后收缩日志文件完成,且备份的日志文件必须手动拷贝至辅助服务器进行手动还原否则,日志传送会失败。

7.1.2.  错误日志分析

7.1.2.1.      错误日志内容

错误14421,严重性16,状态1

the log shippingsecondary database TestServer2.Northwind has restore  threshold of 8 mintues and is out of sysnc.

No restore wasperformed for 1 minitues.

Check agent log andshipping monitor information

7.1.2.2.      导致该问题的可能原因

7.1.2.2.1.     主备服务器日期时间相差很大(待测试)

7.1.2.2.2.     辅助服务器与监视服务器之间验证出现了问题,辅助服务器运行的还原作业不能连接到监视服务器的MSDB数据库以更新log_shipping_secondaries表中正确的值。

7.1.2.2.3.     如果还原采用备用模式,且没有勾选”在还原备份时候断开与用户的连接”,还原时候有用户连接上来也会报类似错误。

7.1.2.2.4.     主数据库手动进行了日志备份但没有手动复制过去还原也会报类似的错误。

Log Shipping搭建的更多相关文章

  1. Configure Log Shipping

    准备工作 两台装有的Windows Server 2012R2以及SQL Server 2012的服务器 下载评估版 Windows Server 2012 R2 下载 Microsoft SQL S ...

  2. SQL Server Log Shipping学习总结

      SQL Server的日志传送(log shipping)技术一直比较鸡肋,尤其当SQL Server 推出了Always On技术以后,估计使用日志传送(log shipping)这种技术方案的 ...

  3. SQL Server数据库log shipping 灾备(Part2 )

    3.配置步骤: 主服务器(A机)设置 (1) 启用Log Shipping Configuration 右键单击需要配置日志传输的数据库->Tasks-> Ship Transaction ...

  4. SQL Server数据库log shipping 灾备(Part1 )

    1.概述 Log Shipping为SQL Server提供的数据库备份过程.它可以将数据库整个复制到另一台服务器上.在这种情况下,交易日志也会定期发送到备份服务器上供恢复数据使用,这使得服务器一直处 ...

  5. 转 ORA-16191 "Primary log shipping client not logged on standby

    ###sample 0 原因未知: 解决办法,重建密码文件 primary db :alter system set log_archive_dest_state_2=defer sid='*' sc ...

  6. 第三篇——第二部分——第二文 计划搭建SQL Server镜像

    原文:第三篇--第二部分--第二文 计划搭建SQL Server镜像 本文紧跟上一章:SQL Server镜像简介 本文出处:http://blog.csdn.net/dba_huangzj/arti ...

  7. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之AlwaysOn可用性组搭建

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  8. DatabaseMirroring搭建

    1.    概述 数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎 服务器实例上.通常,这些服务器实例驻留在不同位置的计算机上.启动数据库上的数据库镜像 ...

  9. ApexSql Log 2016破解版&补丁

    绿色破解版: http://download.csdn.net/detail/gsyifan/9316993 官网: https://www.apexsql.com/sql_tools_log.asp ...

随机推荐

  1. webpack4.x配置详情

    webpack打包工具现在非常流行,熟悉并且能够进行配置也变得非常重要.在学习和使用的过程中遇到过很多的问题,希望能够让自己记录下来,巩固自己的学习. 1.创建文件目录 先在自己的常用盘中(我自己的项 ...

  2. linux学习笔记-13.进程控制

    1.查看用户最近登录情况 lastlastlog 2.查看硬盘使用情况 df 3.查看文件大小 du 4.查看内存使用情况 free 5.查看文件系统 /proc 6.查看日志 ls /var/log ...

  3. VB.NET中lambda的写法

    lambda 或者叫匿名方法 '有返回值的匿名函数,func前面输入参数,最后一个输出参数 Dim func1 As Func(Of Integer, Integer) = Function(ByVa ...

  4. BEM

    BEM代表块(Block),元素(Element),修饰符(Modifier).BEM是由Yandex团队提出的一种CSS Class 命名方法,旨在更好的创建CSS/Sass模块.通过增加前缀的办法 ...

  5. [Java]Servlet&JSP

    在这里学习Servlet和JSP >> Servlet&JSP的那些事儿 >> servlet [书籍] 孙鑫的<Servlet/JSP深入详解:基于Tomcat ...

  6. Codeforces Round #394 (Div. 2) E. Dasha and Puzzle 构造

    E. Dasha and Puzzle 题目连接: http://codeforces.com/contest/761/problem/E Description Dasha decided to h ...

  7. xcode 拷贝新的ios image 进去以后 出现 the divices is locked

    苹果公司时不时的给你更新下ios系统.对于开发者来说.更新xcode是灾难性的. 一直在用xcode7.3.1,可是最新不小心把手机升级到 ios 10.1.1,这下好了,真机调试不行了.提示没有镜像 ...

  8. redis 写磁盘出错 Can’t save in background: fork: Cannot allocate memory (转)

    查看 Redis 日志 发现系统在频繁报错: [26641] 18 Dec 04:02:14 * 1 changes in 900 seconds. Saving… [26641] 18 Dec 04 ...

  9. TCP三次握手&四次挥手(示意图)

    经典的三次握手示意图:(#add,“握手”即图中左边到右边的连线)    经典的四次握手关闭图:    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即t ...

  10. 利用kettle组件导入excel文件到数据库

    利用kettle组件导入excel文件到数据库 1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...