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. Python异常处理回顾与总结

    1 引言 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这种错误在 ...

  2. InnoDB的锁机制浅析(三)—幻读

    文章总共分为五个部分: InnoDB的锁机制浅析(一)-基本概念/兼容矩阵 InnoDB的锁机制浅析(二)-探索InnoDB中的锁(Record锁/Gap锁/Next-key锁/插入意向锁) Inno ...

  3. vc++ 在程序中运行另一个程序的方法

    在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...

  4. BEM

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

  5. java 中的同步机制

    对于有些场景,需要a.b线程按照顺序去执行,因为b线程要依赖a线程对某共享资源或 状态处理后,对于这种情况可以使用 private CountDownLatch connectedSignal = n ...

  6. luogu P2757 [国家集训队]等差子序列

    题目链接 luogu P2757 [国家集训队]等差子序列 题解 线段树好题 我选择暴力 代码 // luogu-judger-enable-o2 #include<cstdio> inl ...

  7. [HDU4348]To the moon(主席树+标记永久化)

    学可持久化treap的时候才发现自己竟然没写过需要标记下传的主席树,然而现在发现大部分操作都可以标记永久化,下传会增大占用空间. 这题一种写法是和普通的线段树一样标记下传,注意所有修改操作(包括put ...

  8. Good Bye 2016 F.New Year and Finding Roots(交互)

    题目链接 \(Description\) 有一棵高度为\(h\)的满二叉树,点从\(1\)到\(2^h-1\)编号(无序).每次你可以询问一个点的编号,交互库会返回其所有邻接点的编号.你需要在\(16 ...

  9. mysql分页查询优化(索引延迟关联)

    对于web后台报表导出是一种常见的功能点,实际对应服务后端即数据库的排序分页查询.如下示例为公司商户积分报表导出其中一个sql ,当大批量的导出请求进入时候,mysql的cpu急剧上升瞬间有拖垮库的风 ...

  10. mySql---数据库索引原理及优化

    一.写在前面 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型 ...