SQL Server高可用——日志传送(4-3)——使用

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
日志服务 SLS,月写入数据量 50GB 1个月
简介: 原文: SQL Server高可用——日志传送(4-3)——使用   顺接上一篇:SQL Server高可用——日志传送(4-2)——部署 本文为本系列最重要的一篇,讲述如何使用日志传送及一些注意事项。
原文: SQL Server高可用——日志传送(4-3)——使用

 

顺接上一篇:SQL Server高可用——日志传送(4-2)——部署

本文为本系列最重要的一篇,讲述如何使用日志传送及一些注意事项。从上一篇可以看到,其实配置不难,难是难在一旦出现问题,如何处理。这些是4大高可用的同性。配置都不会很难,只是如何故障排除而已。

 

 

监控日志传送:

      在配置好日志传送之后,需要进行监控,监控备份、复制及还原的作业运作情况。这三类作业任何一个没有成功都意味着日志传送失败。

有两种方法可以监控辅助服务器是否与主服务器同步以及两者的时间差:

1、 使用“事务日志传送状态”

 

 

 

2、 执行master.dbo.sp_help_log_shipping_monitor

 

还可以使用sys.sp_check_log_shipping_monitor_alert来检查是否超过预先设置的阈值。如果超过了,存储过程会发出一个警报。

在监控服务器上执行存储过程:sp_help_log_shipping_monitor,可以看到主服务器和辅助服务器的信息,该结果和使用方法1中的结果基本一致。

 

 

 

故障排查:

日志传送由三部分组成:备份事务日志、复制文件和还原事务日志。所以当出现故障的时候,检查这三部分。

      可以查看SQL代理的日志传送作业历史和windows事件查看器来确认真正的错误信息。

      如复制文件失败,可能是网络不正常,如果还原失败,可能服务器不可用或者数据库处于standby模式时用户正在使用数据库。另外,如果数据库恢复模式改为“简单”,会中断日志传送,因为会截断日志。而不是备份日志。这时需要重新配置事务日志。

      要注意一点,在日志传送之外不应该存在任何其他的事务日志备份操作。因为这样会引起主服务器和辅助服务器的日志链不匹配,从而导致日志传送的中断。

 

数据库备份计划:

在日志传送中,,对于备份,要考虑以下几点:

l 数据库备份进程和事务日志备份进程不能并发运行。所以一个大型、活跃的数据库,备份可能要花费一段时间,引起日志快速的增长,从而导致辅助服务器和主服务器不同步。因为数据库备份完成之前无法及时地收到事务日志。

l 除日志传送之外不能有其他事务日志备份,因为会断开日志链。

l 截断事务日志将断开日志链,从而导致日志传送无法正常工作。

l 如果把数据库恢复模式转换成“简单”,那么SQLServer会截断事务日志。从而导致日志传送无法正常工作。

 

删除日志传送:

在删除日志传送数据库之前,先要删除数据库中的日志传送。当删除日志传送后,所有的时间表、作业、历史以及错误信息都会被删除。

 

使用ssms删除:

只需要把主服务器中下面红框处取消勾选即可。

 

 

也可以用下面那里点击【删除】

 

 

 

 

 

使用T-SQL删除:

在主服务器上:

 

Use master;

Sp_delete_log_shipping_primary_secondary @primary_database,@secondary_server,@secondary_database 


 

 

这个命令是删除主服务器上的msdb.dbo.log_shipping_primary_secondaries表中辅助服务器的信息。

 

在辅助服务器上:

 

Use master;

Sp_delete_log_shipping_secondary_database @secondary_database;


 

 

删除辅助服务器上有关服务服务器的信息和作业。

 

然后再回到主服务器:

 

Use master;

Sp_delete_log_shipping_primary_database @database


 

 

该存储过程删除对应的信息和作业。

 

日志传送性能:

1、 日志传送备份目录存放到与数据库不同的磁盘驱动器上。并使用备份压缩(2008出现)

2、  需要监控I/O性能计数器以找到所有的瓶颈(如每个物理驱动器的队列平均程度大于2)

3、 在空间时段进行数据库管理活动(如索引碎片整理),因为碎片越多,日志文件越大,备份和还原的时间就越长。

4、为了确保角色切换中数据库能快速恢复,辅助服务器应该与主服务器完全一样的容量。

5、需要把文件复制目录与数据库分离。

6、确保网络不会成为瓶颈。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
SQL 存储 缓存
MySQL进阶突击系列(02)一条更新SQL执行过程 | 讲透undoLog、redoLog、binLog日志三宝
本文详细介绍了MySQL中update SQL执行过程涉及的undoLog、redoLog和binLog三种日志的作用及其工作原理,包括它们如何确保数据的一致性和完整性,以及在事务提交过程中各自的角色。同时,文章还探讨了这些日志在故障恢复中的重要性,强调了合理配置相关参数对于提高系统稳定性的必要性。
|
4月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
121 2
|
5月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
5月前
|
SQL 数据库
为什么SQL日志文件很大,该如何处理?
为什么SQL日志文件很大,该如何处理?
|
6月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
337 0
|
7月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
91 0
|
7月前
|
SQL 安全 测试技术
【数据守护者必备】SQL数据备份与恢复策略全解析:从全量到日志备份,手把手教你确保企业信息万无一失的实战技巧!
【8月更文挑战第31天】数据库是企业核心业务数据的基石,为防止硬件故障、软件错误或人为失误导致的数据丢失,制定可靠的备份与恢复策略至关重要。本文通过一个在线购物平台的案例,详细介绍了使用 SQL Server 进行全量备份、差异备份及事务日志备份的方法,并演示了如何利用 SQL Server Agent 实现自动化备份任务。此外,还提供了数据恢复的具体步骤和测试建议,确保数据安全与业务连续性。
349 0
|
7月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
105 0
|
7月前
|
SQL 缓存 Java
如何在 Hibernate 中启用 SQL 日志记录?
【8月更文挑战第21天】
230 0
|
7月前
|
SQL Java 关系型数据库
SpringBoot 系列之 MyBatis输出SQL日志
这篇文章介绍了如何在SpringBoot项目中通过MyBatis配置输出SQL日志,具体方法是在`application.yml`或`application.properties`中设置MyBatis的日志实现为`org.apache.ibatis.logging.stdout.StdOutImpl`来直接在控制台打印SQL日志。
SpringBoot 系列之 MyBatis输出SQL日志