Sql Server 2017主从配置之:事务日志传送

使用事务日志传送模式搭建Sql Server 2017主从同步,该模式有一定的延迟,是通过3个不同的定时任务,将主库的日志同步到从库进行恢复来实现数据库同步操作。

该模式在同步时候,从库不可以被使用,否则同步就会失败。

环境准备

两台服务器,配置都是8g2核,50g硬盘,操作系统版本Windows Server 2019 Datacenter

  • 主库:server1,192.168.56.110
  • 从库:server2,192.168.56.111

本人使用虚拟机做模拟配置,在虚拟机操作系统上做如下配置

  • 虚拟机配置两张网卡,以便和主机通讯

  • 虚拟机启动远程桌面 ,右键左下角win图标-系统-远程桌面,点击启用

  • 创建操作系统账户sqadmin,分配管理员权限

  • 为方便测试,关闭系统防火墙,控制面板\系统和安全\Windows Defender 防火墙\自定义设置

  • 安装Sql Server 2017企业版,个人的Express版本不支持事务日志复制

  • 安装SSMS 19.2版本

安装SQL Server 2017

勾选SQL Server复制
Sql Server 2017主从配置之:事务日志传送_第1张图片
服务器配置,三个服务都改成自动
Sql Server 2017主从配置之:事务日志传送_第2张图片
数据库引擎配置,服务配置,选择“混合模式(SQL Server身份证和Windows身份证)”,输入sa账号密码,点击添加当前用户作为SQL Server管理员,这里也可以另外创建一个操作系统账号
Sql Server 2017主从配置之:事务日志传送_第3张图片

点击下一步,直到安装完成!

两台服务共同配置准备

创建系统账号sqadmin,设置管理员权限

在这里插入图片描述

设置服务启动账户sqadmin

打开Sql Server Configuration Manager,进入SQL Server 服务,将SQL Server服务和SQL Server 代理服务的登录身份都改成sqadmin,并设置自动启动
在这里插入图片描述

配置服务器代理账户

打开SQL Server Management Studio,链接数据库
右键点击链接,选择属性,打开服务器属性面板,点击安全性选项页,勾选启动代理账户,输入sqadmin账户密码
在这里插入图片描述

一、主库 server1 配置

创建共享文件夹

创建共享文件夹c:\backup,设置共享,并添加sqadmin账号权限
Sql Server 2017主从配置之:事务日志传送_第4张图片

创建测试数据库demo

打开SQL Server Management Studio,链接数据库

创建测试数据库demo,并创建测试表t_user
Sql Server 2017主从配置之:事务日志传送_第5张图片

配置事务日志传送

右键点击数据库,点击属性,点击“事务日志传送”选项,勾选“将此数据库启用为日志传送配置中的主数据库”
Sql Server 2017主从配置之:事务日志传送_第6张图片
主库设置备份日志文件存储目录,点击确定后,下一步就配置从库
Sql Server 2017主从配置之:事务日志传送_第7张图片

二、从库 server2 配置

添加辅助数据库配置

Sql Server 2017主从配置之:事务日志传送_第8张图片
链接到辅助数据库,注意,这里要填ip链接。
配置从库之前,需要到从库服务创建好共享文件夹c:\backup,和主库的一样,需要设置sqadmin完全读写权限

Sql Server 2017主从配置之:事务日志传送_第9张图片

Sql Server 2017主从配置之:事务日志传送_第10张图片
Sql Server 2017主从配置之:事务日志传送_第11张图片

Sql Server 2017主从配置之:事务日志传送_第12张图片

配置完成后,

点击确定,会自动在从库创建数据库demo_bak,以及自动创建三个计划任务(主库1个,从库2个)

Sql Server 2017主从配置之:事务日志传送_第13张图片

四、测试

在主库上面创建一个表,或insert一些数据,过一会儿到从库看看效果。
右键点击计划任务,点击查看历史记录,可以看见详细同步记录。
Sql Server 2017主从配置之:事务日志传送_第14张图片

Sql Server 2017主从配置之:事务日志传送_第15张图片

五、注意

如果出现从库计划任务无法链接到主库服务器的情况,则可用如下sql查询数据中的server名称是否有误,如果有误可删除重新添加

## 查看server配置
sp_helpserver
## 删除SERVER1
sp_dropserver 'SERVER1', null
## 添加新的server
sp_addserver '192.168.56.111' ,'LOCAL',null

同步过程中,如果从库正在使用,就会无法同步,恢复计划任务(LSRestore_SERVER1_demo)报类似如下错误,当从库停止使用时,又会继续同步。

如果出现提示数据库被使用,又不知道在哪里被使用,建议直接重启从库数据库服务。

2023-11-18 00:12:50.70	*** 错误: 无法将日志备份文件“\\192.168.56.111\backup\demo_20231117161200.trn”应用到辅助数据库“demo_bak”。(Microsoft.SqlServer.Management.LogShipping) ***
2023-11-18 00:12:50.70	*** 错误: 因为数据库正在使用,所以无法获得对数据库的独占访问权。
RESTORE LOG 正在异常终止。(.Net SqlClient Data Provider) ***
2023-11-18 00:12:50.71	*** 错误: 日志备份文件“\\192.168.56.111\backup\demo_20231117161200.trn”已通过验证但无法应用到辅助数据库“demo_bak”。(Microsoft.SqlServer.Management.LogShipping) ***
2023-11-18 00:12:50.73	正在删除旧日志备份文件。主数据库:“demo”
2023-11-18 00:12:50.73	还原操作完成,但有错误。辅助 ID:“cbd809d8-1bf7-4bbe-aaa3-ecf21e15d147”

你可能感兴趣的:(数据库,sqlserver,主从,数据库)