收缩事务日志(sqlserver)
sqlserver数据库的日志文件其实是由很多个逻辑上的日志文件组成,我们可以通过命令看一下数据库日志文件
可以看到的是sqlserver数据库日志文件是由很多文件组成的,当数据库日志文件已满的时候,自动增长就会生成新的文件,这些文件叫做VLF(虚拟日志文件),所以说在这个层面上来说,我们可以简单的把数据库日志理解为一列火车,一节一节的车厢理解为数据库的虚拟日志文件,当然如果不够存的下事务日志的时候,就要扩充,就是加一个火车厢.
所以说数据库事务日志其实是由很多个独立的虚拟事务日志文件组成的,我们看一下,大概就知道数据库的虚拟日志文件有自己的状态,也有自己的LSN标识.那在数据库的层面是怎么管理这些数据库日志文件呢.
看一下LSN的作用
1:就是LSN用来标识VLF的序列号
2:LSN标识日志在VLF文件中的具体位置
我们分析一下数据库日志的逻辑管理
我们简单的理解数据库日志是有两种状态的,活动日志和非活动日志(虽然日志有四种状态,但是我们理解这两种状态应该就足够了),活动日志的头部和尾部的标记就是头日志和尾日志,中间部分就是数据库活动日志,其实这个图还是不太直观的,因为数据库日志管理的话,更像一个圆形的管理,是可以达到连续管理的,当数据库头日志到达数据的尾部时候,如果第一个日志文件是可用的,事务日志则不会自动增长,而是去占用第一个数据库的VLF,这一点是很重要的,我们可以看一下,数据库的头日志是不断的往前走而尾日志什么时候才能改变位置呢.
如果想要改变尾日志的位置,只有活动日志减少,活动日志减少就意味着数据库日志的截断,所以说,每次发生数据库事务日志截断的时候尾日志才会向后推移.
数据库日志文件有一个状态,status,大家细心观察一下就会发现,其实有0,2两种状态,0就是代表空闲,2代表使用.
千万不要小看这个状态,对于收缩数据库日志文件来说,这个状态是很重要的
日志文件能被收缩的原因是该文件尾部的数据被清除了,使得该部分空间被释放,而不是逃过尾部去删除文件首部或者中间部分的内容。
sqlserver数据库的收缩是从最后一个数据库日志文件开始进行压缩的,所以说只有当最后一个VLF的状态为0的时候,DBCC SHRINKFILE才能发挥作用,否则收缩数据库日志文件是不会有效果的.
收缩事务日志(sqlserver)的更多相关文章
- MSSQL收缩事务日志&日志文件过大无法收缩
原文:MSSQL收缩事务日志&日志文件过大无法收缩 一.MS SQL SERVER 2005 --1.清空日志 exec('DUMP TRANSACTION 数据库名 WITH NO_LOG' ...
- sql server 2012 如何收缩事务日志
sql2008不再支持 BACKUP LOG 数据库名 WITH NO_LOG 语句 BACKUP Log zxta with no_log 截断事务日志 sql2008 提示错误如下 BACKU ...
- SQL Server 收缩事务日志的方法
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:(SQL2005) Backup Log DataBaseName with no_ ...
- (转)对SQLSERVER数据库事务日志的疑问
本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLS ...
- SQLSERVER备份事务日志的作用
事务日志备份有以下3种类型 (1)纯日志备份:仅包含相隔一段时间的事务日志记录,而不包含任何大容量更改 (2)大容量操作日志备份.包括由大容量操作更改的日志和数据页,不支持时间点恢复 (3)尾日志备份 ...
- SQL Server如何截断(Truncate)和收缩(Shrink)事务日志
当SQL Server截断事务日志时,它仅仅是在虚拟日志文件中做个标记,以便不再使用它,然后准备以重用形式来做备份(假如运载在完整或是批量日志恢复模型).也就是说,在使用简单恢复模型时,事务日志包括如 ...
- SQL Server中的事务日志管理(7/9):处理日志过度增长
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- MS SQL 事务日志管理小结
本文是对SQL Server事务日志的总结,文章有一些内容和知识来源于官方文档或一些技术博客,本文对引用部分的出处都有标注. 事务日志介绍 在SQL Server中,事务日志是数据库的重要组件,如 ...
- sqlserver 事务日志过大 收缩方法解决方案
sqlserver 事务日志过大,可能会导致备份失败或者数据库出现异常,所以要定期清除sqlserver 事务日志 建议:为了防止日志文件无限扩大,可以对日志文件作一些限制. 清除sqlserver事 ...
随机推荐
- python之列表,元组,字典。
在博主学习列表,元组以及字典的时候,经常搞混这三者.因为他们都是用括号表示的.分别是[],(),{}. 列表(list): [1,'abc',1.26,[1,2,3],(1,2,3),{'age:18 ...
- 洛谷 P3205 [HNOI2010]合唱队
题目链接 题解 区间dp \(f[i][j]\)表示i~j区间最后一次插入的是\(a[i]\) \(g[i][j]\)表示i~j区间最后一次插入的是\(a[j]\) 然后就是普通区间dp转移 Code ...
- Magic Odd Square (思维+构造)
Find an n × n matrix with different numbers from 1 to n2, so the sum in each row, column and both ma ...
- Fleury算法求欧拉路径
分析: 小Ho:这种简单的谜题就交给我吧! 小Hi:真的没问题么? <10分钟过去> 小Ho:啊啊啊啊啊!搞不定啊!!!骨牌数量一多就乱了. 小Hi:哎,我就知道你会遇到问题. 小Ho:小 ...
- Codeforces - 617E 年轻人的第一道莫队
我对莫队算法最为纠结的地方就是区间端点处,应该是像代码里那样理解吧 cnt[i]表示i出现的次数 maxn开2e6比较保险 /*H E A D*/ struct Query{ int l,r,id; ...
- [转] JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
[From] http://www.jb51.net/article/76695.htm HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏AP ...
- hdu1286 找新朋友 欧拉函数模板
首先这一题用的是欧拉函数!!函数!!不是什么欧拉公式!! 欧拉函数求的就是题目要求的数. 关于欧拉函数的模板网上百度一下到处都是,原理也容易找,这里要介绍一下另一个强势模板. 在这一题的讨论里看到的. ...
- spring-data-elasticsearch使用笔记
使用spring-data遇到了一些问题,记录一下. spring-data-elasticsearch版本选择 这里有一份官方github上的spring-data-elasticsearch与el ...
- Myeclipse编辑JSP文件时,可以点击重口顶部的箭头来切换全屏状态
- 工作采坑札记:4. Hadoop获取InputSplit文件信息
1. 场景 基于客户的数据处理需求,客户分发诸多小数据文件,文件每行代表一条记录信息,且每个文件以"类型_yyyyMMdd_批次号"命名.由于同一条记录可能存在于多个文件中,且处于 ...