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.关闭日志传送
主数据库---》右键,属性---》事务日志传送---》取消勾选【将此数据库启用为日志传送配置中的主数据库】复选框
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