SQL Server DBA面试知识点(四)-- SQL Server事务日志和数据库备份

本文深入探讨了SQL Server的事务日志,包括其作用、如何记录数据库变更,以及在数据库备份中的关键角色。事务日志是用于回滚和前滚操作,以及在数据库崩溃时恢复数据的重要组成部分。文章还介绍了全库备份、增量备份和日志备份的差异,强调了日志备份在精确时间点恢复中的关键作用,并讨论了合理的备份策略及其对数据丢失量的影响。
摘要由CSDN通过智能技术生成

Transaction log事务日志的作用

要明白备份的相关知识,首先必须理解transaction log。事务日志是SQL Server最重要的文件,每个数据库都有一个事务日志,用户对数据的所有修改(DML&DDL)操作都详细记录在事务日志中,另外还有一些schema修改操作,设置变化等等,但不会记录查询语句等对数据没有影响的操作。记录详细到什么地步呢?当用户运行
insert into table values(…)这样的语句时,这条语句会被完整记录到事务日志中。其原因不难理解:当事务失败需要全部rollback时,SQL Server需要读取事务日志中的相关记录并逐条回滚。
另外SQL Server提供名为log shipping的解决方案,可以将主数据库同步到从数据库上。其实现方案就是将主数据库的事务日志通过网络不间断的传输到从数据库所在的服务器,并按照log中的记录在从数据库上重做所有操作,从而实现数据同步。可见事务日志需要记录多么详细的信息,才能完全复制出一个一模一样的从数据库。
从以上事务日志的作用可推断出,对于不改变数据的查询语句是不会被记录的。虽然如此,对于负载较重的数据库,事务日志可能会在短时间内就填满硬盘。TLog无法工作必然导致数据库无法正常工作,此时数据库只可查询,所有修改操作都会被挂起(suspend)。
另外事务日志是供SQL Server内部使用而非给用户或管理者查询的,因此事务日志不可读。只有使用第三方工具才能将其内容转换为可读的。

Rollback and Rollforward 前滚和回滚

数据库的前滚和回滚是事务日志的另一个重要作用。当数据库正常运行时,总是有多个事务正在运行。当数据库shutdown时(正常或非正常关闭,主动或非主动关闭),可能有一些事务没有完成(与是否正常关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值