sql server数据库高可用日志传送的方法

作者:hushaoren 时间:2024-01-24 19:19:32 

一. 日志传送概述

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

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

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

优点

  • 提供灾难恢复解决方案

  • 支持对辅助数据库的受限的只读访问权限

  • 允许用户定义日志发送的延迟时间(如果主数据库上的数据被意外更改,则较长的延迟会很有用)

术语和定义

备份作业

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

复制作业

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

还原作业

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

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

二. 准备工作

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

主数据库sqlserver 2012 r2 MSSQLSERVERTWO

辅助数据库sqlserver 2012 r2 MSSQLSERVER

sql server数据库高可用日志传送的方法

演示库 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 具有作业访问权限

sql server数据库高可用日志传送的方法

sql server数据库高可用日志传送的方法

sql server数据库高可用日志传送的方法

---步骤4:

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

sql server数据库高可用日志传送的方法

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

sql server数据库高可用日志传送的方法

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

备份作业(LSBackup_LogShipping_Test)

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

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

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

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

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

sql server数据库高可用日志传送的方法

sql server数据库高可用日志传送的方法

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

sql server数据库高可用日志传送的方法

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

sql server数据库高可用日志传送的方法

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

利用可视化操作在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库-->属性-->任务-->传送事务日志,将勾选去掉确定).

来源:https://www.cnblogs.com/MrHSR/p/9057084.html

标签:sqlserver,日志传送,高可用
0
投稿

猜你喜欢

  • php中使用key,value,current,next和prev函数遍历数组的方法

    2023-10-18 20:17:39
  • PHP PDOStatement::errorCode讲解

    2023-06-11 12:40:23
  • vue 解决兄弟组件、跨组件深层次的通信操作

    2024-05-09 15:12:55
  • vue混入mixin流程与优缺点详解

    2024-05-02 16:35:12
  • 将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例

    2022-01-17 23:49:50
  • ExtJS 开发总结

    2009-04-28 13:05:00
  • ajax的responseText乱码的问题的解决方法

    2024-06-05 09:21:28
  • SQL窗口函数之排名窗口函数的使用

    2024-01-26 18:49:31
  • 基于python使MUI登录页面的美化

    2023-10-23 16:28:03
  • 利用Python实现最小二乘法与梯度下降算法

    2021-07-19 03:59:49
  • 通过js获取div的background-image属性

    2023-08-23 06:07:23
  • Python技法之如何用re模块实现简易tokenizer

    2021-08-04 17:03:52
  • angularJS实现表格部分列展开缩起示例代码

    2024-04-16 10:40:42
  • python全面解析接口返回数据

    2023-09-15 17:02:28
  • python中出现invalid syntax报错的几种原因分析

    2023-01-26 22:01:24
  • python 通过exifread读取照片信息

    2022-12-09 13:44:53
  • asp如何显示最后十名来访者信息?

    2010-06-09 18:45:00
  • Go 并发编程协程及调度机制详情

    2024-01-31 03:22:55
  • Python Requests模拟登录实现图书馆座位自动预约

    2022-01-31 00:25:46
  • Docker构建python Flask+ nginx+uwsgi容器

    2023-07-25 06:36:43
  • asp之家 网络编程 m.aspxhome.com