≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

SQL Server数据库高可用日志传送的简单示例

人气:467 时间:2020-06-10

这篇文章主要为大家详细介绍了SQL Server数据库高可用日志传送的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

 

一. 日志传送概述

 

SQL Server使用日志传送,可以自动将主服务器的事务日志备份发送到一个或多个辅助数据库上。事务日志备份分别应用于每个辅助数据库。 可选的第三个服务器实例(称为“监视服务器”)记录备份和还原操作的历史记录及状态,还可以在无法按计划执行这些操作时引发警报。

可选的监视服务器,记录备份和还原操作的历史记录及状态。

下面话不多说了,来一起看看详细的介绍吧。

 

优点

 

  • 提供灾难恢复解决方案
  • 支持对辅助数据库的受限的只读访问权限
  • 允许用户定义日志发送的延迟时间(如果主数据库上的数据被意外更改,则较长的延迟会很有用)

 

术语和定义

 

 

  备份作业

    主服务器的代理作业,它执行备份操作,将事务日志记录到本地服务器和监视服务器,删除旧的记录。

  复制作业

    主服务器的代理作业,它将备份文件从主服务器复制到辅助服务器上,在辅助服务器和监视服务器上记录。

  还原作业

    辅助服务器的代理作业,备份文件还原到辅助数据库,在本地服务器和监视服务器上记录,删除旧文件。

针对多个辅助服务器时,要重复执行复制作业和还原作业。

 

二. 准备工作

 

同一台服务数据库二个实例 (可以是局域网内的多个服务器)

主数据库sqlserver 2012 r2 MSSQLSERVERTWO

辅助数据库sqlserver 2012 r2 MSSQLSERVER

【图片暂缺】

演示库 LogShipping_Test, 主和辅相同的库,相同的表结构和数据。 相同的sql 登录名, 密码

 

三. 配置日志传送

 

代码如下:


--步骤1:设置主服务器恢复模式为完全备份
ALTER DATABASE LogShipping_Test SET RECOVERY FULL

代码如下:


--步骤2:主服务数据库做一次完全备份
BACKUP DATABASE LogShipping_Test TO DISK='D:\LogShipping\LogShipping_Test.bak' WITH NOFORMAT,INIT

-- 步骤3:

在主服务器上建立共享目录C:\LogShipping\primary 具有作业访问权限

在辅助服务器上建立共享目录C:\LogShipping\secondary 具有作业访问权限

【图片暂缺】

【图片暂缺】

【图片暂缺】

---步骤4:

主服务器LogShipping_Test库-->属性-->任务-->传送事务日志将主服务器和辅助数据库配置成功后,设置复制和还原每隔两分钟做一次传送如下图

【图片暂缺】

日志传送配置成功后:辅助数据库标识为(备用/只读)如下图

【图片暂缺】

 

主数据库SQL Server代理作业如下图:

 

备份作业(LSBackup_LogShipping_Test)

警告作业(LSAlert_{计算机名})

辅助数据库SQL Server代理作业如下图

复制作业(LSCopy_{计算机名}_LogShipping_Test)

还原作业(LSRestore_{计算机名}_LogShipping_Test)

警告作业(LSAlert_{计算机名}\MSSQLSERVERTWO)

【图片暂缺】

【图片暂缺】

主服务器隔2分钟备份的文件共享目录如下图

【图片暂缺】

辅助服务器隔2分钟复制的文件共享目录如下图

【图片暂缺】

最后:查看日志传送是否正确无误

利用可视化操作在SQL Server代理作业中查看日志传送是否正常

通过SQL查询,看日志传送是否运行正常

代码如下:


--(主数据库查询)
  exec master..sp_help_log_shipping_monitor 
  exec master..sp_help_log_shipping_primary_database 'LogShipping_Test'
 --(辅助数据库查询)
  exec master..sp_help_log_shipping_secondary_database 'LogShipping_Test'

 

四. 主从数据库手动切换配置

 

    步骤1:在主数据库,使之处于正在还原

代码如下:


 use master
  Backup log [LogShipping_Test] to disk = 'c:\LogShipping\LogShipping_Test1.bak' with NORECOVERY 

--手动运行辅助数据库上的复制和还原作业(快速复制还原到从表)

--手动将主数据库上的备份和警告作业禁用掉(停止备份)

步骤2:在辅助数据库上,使用步骤的备件文件还原

代码如下:


use master
Restore log [LogShipping_Test] from disk ='c:\LogShipping\LogShipping_Test1.bak' with RECOVERY 

将以前备份和复制所在文件夹的数据删除掉(D:\LogShipping\primary,D:\LogShipping\secondary )

重新配置日志传送,在辅助数据库上(LogShipping_Test库-->属性-->任务-->传送事务日志将主服务器和辅助数据库配置成功后)使辅助数据库之变成主数据库

将原来主数据库的日志传送删除(LogShipping_Test库-->属性-->任务-->传送事务日志,将勾选去掉确定).

 

总结

 

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对四海网的支持。

本文来自:http://www.q1010.com/179/9060-0.html

注:关于SQL Server数据库高可用日志传送的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • 解决SqlServer 各版本 sa帐户不能登录问题
  • Windows使用性能监视器监控SqlServer的常见指标示例
  • 调整SQLServer2000运行数据库结构的简单示例
  • 解决SQLServer远程连接失败的问题
  • 数据库触发器DB2和SqlServer区别解析
  • 解决在Azure上部署Sqlserver网络访问不了示例
  • 在sqlserver中如何使用CTE解决复杂查询问题
  • SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(下)
  • SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
  • SQLServer中merge函数用法分析
上一篇:MyBatis SQL xml处理小于号与大于号正确格式
下一篇:SQL Server数据库调用dll文件的简单示例
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。