通过事务日志解决SQL Server常见四大故障(二)

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
日志服务 SLS,月写入数据量 50GB 1个月
简介:   数据库镜像方案有两种镜像运行模式。一种是“高安全性模式”,它支持同步操作。在高安全性模式下,当会话开始时,镜像服务器将使镜像数据库尽快与主体数据库同步,一旦同步了数据库,事务将在伙伴双方处提交,这会延长事务滞后时间。

  数据库镜像方案有两种镜像运行模式。一种是“高安全性模式”,它支持同步操作。在高安全性模式下,当会话开始时,镜像服务器将使镜像数据库尽快与主体数据库同步,一旦同步了数据库,事务将在伙伴双方处提交,这会延长事务滞后时间。第二种运行模式,即高性能模式,它与第一种模式的主要差异就在于异步运行。镜像服务器尝试与主体服务器发送的日志记录保持同步。镜像数据库可能稍微滞后于主体数据库。但是,数据库之间的时间间隔通常很小。但是,如果主体服务器的工作负荷过高或镜像服务器系统的负荷过高,则时间间隔会增大。在高性能模式中,主体服务器向镜像服务器发送日志记录之后,会立即再向客户端发送一条确认消息。它不会等待镜像服务器的确认。这意味着事务不需要等待镜像服务器将日志写入磁盘便可提交。此异步操作允许主体服务器在事务滞后时间最小的条件下运行,但可能会丢失某些数据。具体采用哪种模式,则需要数据库管理员根据企业对待数据损失的态度与工作负荷等来确定。

  可见现在可用的备份服务器与生产服务器之间的数据同步解决方案都是基于事务日志来实现的。

  故障三:解决数据一致性问题。

  假设现在有这么一种情况。在一个银行系统中,某个用户需要转帐。这个转帐作业主要是通过两个步骤来完成。第一个步骤就是扣减用户帐户中的金额;第二个步骤是把钱转入到另外一个用户那里。现在如果在转帐的过程中,第一步成功了,但是第二个步骤因为某种原因出错了。如用户提供的帐户名字与实际转帐的帐户名字不符,则第二个操作就会失败。此时整个转帐操作就会以失败而告终。但是现在的问题是,第一个扣减的动作在数据库zhon给已经完成了。而实际却是没有转帐成功,就救造成了数据一致性的问题。

  实际过程中如果应用程序发出 ROLLBACK 语句,或者数据库引擎检测到错误,就使用日志记录回滚未完成的事务所做的修改。也就是说,当第二个操作失败的话,应用程序要发出一个ROLLBACK 语句,利用事务日志回滚功能,恢复第一步的操作。也就是说,把扣减金额的操作进行恢复,从而实现数据的一致性。类似的应用,在数据库开发过程中很频繁。

  故障四:数据库时点恢复的问题。

  如现在遇到这么一种故障。数据库系统在上午11点突然发现故障,启动不起来了。而数据库系统是在昨天晚上12点刚做完一个完全备份。在这种情况下,如果只是从完全备份中恢复数据的话,只能够恢复到昨天晚上12点的数据。那从昨天晚上12点到今天上午11点的数据就不能够恢复了吗?

  其实不然。因为用户在对数据库做的任何一个修改都会保存在事务日志当中。为此只要事务日志不损坏的情况下,数据库管理员可以把数据恢复到上午11点那个时刻的数据。具体的操作方法很简单,就好先利用完全备份文件恢复数据库系统,此时数据库中的数据位昨天晚上12点的数据。然后再利用日志恢复功能把数据恢复到今天上午11点的数据。可见事务日志可以帮助管理员把数据恢复到某一个具体的时点。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
163 7
MySQL事务日志-Undo Log工作原理分析
|
4月前
|
SQL 存储 缓存
MySQL进阶突击系列(02)一条更新SQL执行过程 | 讲透undoLog、redoLog、binLog日志三宝
本文详细介绍了MySQL中update SQL执行过程涉及的undoLog、redoLog和binLog三种日志的作用及其工作原理,包括它们如何确保数据的一致性和完整性,以及在事务提交过程中各自的角色。同时,文章还探讨了这些日志在故障恢复中的重要性,强调了合理配置相关参数对于提高系统稳定性的必要性。
|
6月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
2002 14
MySQL事务日志-Redo Log工作原理分析
|
7月前
|
SQL 存储 缓存
高基数 GroupBy 在 SLS SQL 中的查询加速
本文详细介绍了SLS中的高基数GroupBy查询加速技术。
191 29
|
5月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
156 2
|
6月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
7月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
6月前
|
SQL 数据库
为什么SQL日志文件很大,该如何处理?
为什么SQL日志文件很大,该如何处理?
|
7月前
|
SQL 存储 监控
SQLServer事务复制延迟优化之并行(多线程)复制
【9月更文挑战第12天】在SQL Server中,事务复制延迟会影响数据同步性。并行复制可通过多线程处理优化这一问题,提高复制效率。主要优化方法包括:配置分发代理参数、优化网络带宽、调整系统资源、优化数据库设计及定期监控维护。合理实施这些措施可提升数据同步的及时性和可靠性。
257 0
|
7月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
404 0

热门文章

最新文章

下一篇
oss创建bucket