Sqlserver日志传送高可用搭建

1.原理

主数据库定时备份事务日志到共享文件夹,辅助数据库定时从共享文件夹把事务日志备份复制到本地文件夹中,辅助数据库定时将本地文件夹中的事务日志备份还原到数据库上。

2.修改服务启动账户

2.1.为什么修改

如果使用默认的NT SERVICE\MSSQLSERVER用户启动SQLServer,NT SERVICE\SQLSERVERAGENT用户启动SQLServer代理,那么即使共享目录Everyone都有读写权限也不可以,报错如下:

2.2.修改步骤

主数据库和辅助服务器都要做,而且用户要相同,密码相同

点击检查名称后,点击确定,然后输入密码和确认密码,主数据库和辅助数据库这里的密码要相同

点击应用即可,这时候SQL Server代理服务会自动停止,修改SQL Server代理服务启动账号与SQLServer相同

最终效果

2.3.新增用户

如果不想用管理员账户,也可以新增一个专门的账户来负责服务的开启

搜索框搜算【计算机管理】---》右键新增用户---》将用户添加到Administrators组

3.新增共享文件夹

4.配置日志复制

4.1.主服务器设置

备份设置

4.2.辅助服务器设置

4.3.最终效果

5.关闭日志传送

主数据库---》右键,属性---》事务日志传送---》取消勾选【将此数据库启用为日志传送配置中的主数据库】复选框

参考:Sqlserver事务日志传送的搭建

6.复原sqlserver和sqlserver代理服务运行账户

sqlserver配置管理器---》双击服务---》浏览(NT SERVICE\MSSQLSERVER启动sqlserver服务,NT SERVICE\SQLSERVERAGENT启动sqlserver代理服务,密码留白)

7.报错

主数据库备份正常,辅助数据库的复制和还原也都正常,主库也同步到了备库。但是查看事务日志传送状态报错,查看警告作业记录也是红的,查看备份记录虽然时绿的,但是中间有报错。



备份记录的报错:

日志传送代理无法将历史记录和错误信息记录到 SQL Server 2019
DateTime * * * 错误:无法将参数值从 a 转换为 SqlGuid 的字符串。(System)
DateTime * * * 错误:对象必须实现 IConvertible。(mscorlib) * * * 

解决方法:打补丁
参考:KB4537869-修复:日志传送代理无法将历史记录和错误信息记录到 SQL Server 2019

posted @ 2023-11-23 10:49  monkey6  阅读(82)  评论(0编辑  收藏  举报