收缩事务⽇志(sqlserver)
女配心慌慌老福特sqlserver数据库的⽇志⽂件其实是由很多个逻辑上的⽇志⽂件组成,我们可以通过命令看⼀下数据库⽇志⽂件
数伏从哪一天开始到哪一天结束可以看到的是sqlserver数据库⽇志⽂件是由很多⽂件组成的,当数据库⽇志⽂件已满的时候,⾃动增长就会⽣成新的⽂件,这些⽂件叫做VLF(虚拟⽇志⽂件),所以说在这个层⾯上来说,我们可以简单的把数据库⽇志理解为⼀列⽕车,⼀节⼀节的车厢理解为数据库的虚拟⽇志⽂件,当然如果不够存的下事务⽇志的时候,就要扩充,就是加⼀个⽕车厢.
爱字组词所以说数据库事务⽇志其实是由很多个独⽴的虚拟事务⽇志⽂件组成的,我们看⼀下,⼤概就知道数据库的虚拟⽇志⽂件有⾃⼰的状态,也有⾃⼰的LSN标识.那在数据库的层⾯是怎么管理这些数据库⽇志⽂件呢.
看⼀下LSN的作⽤
莫字的词语1:就是LSN⽤来标识VLF的序列号
2:LSN标识⽇志在VLF⽂件中的具体位置
我们分析⼀下数据库⽇志的逻辑管理
我们简单的理解数据库⽇志是有两种状态的,活动⽇志和⾮活动⽇志(虽然⽇志有四种状态,但是我们理解这两种状态应该就⾜够了),活动⽇志的头部和尾部的标记就是头⽇志和尾⽇志,中间部分就是数据库活动⽇志,其实这个图还是不太直观的,因为数据库⽇志管理的话,更像⼀个圆形的管理,是可以达到连续管理的,当数据库头⽇志到达数据的尾部时候,如果第⼀个⽇志⽂件是可⽤的,事务⽇志则不会⾃动增长,⽽是去占⽤第⼀个数据库的VLF,这⼀点是很重要的,我们可以看⼀下,数据库的头⽇志是不断的往前⾛⽽尾⽇志什么时候才能改变位置呢.
开茶叶店进货渠道如果想要改变尾⽇志的位置,只有活动⽇志减少,活动⽇志减少就意味着数据库⽇志的截断,所以说,每次发⽣数据库事务⽇志截断的时候尾⽇志才会向后推移.
数据库⽇志⽂件有⼀个状态,status,⼤家细⼼观察⼀下就会发现,其实有0,2两种状态,0就是代表空闲,2代表使⽤.关于互相关爱的作文
千万不要⼩看这个状态,对于收缩数据库⽇志⽂件来说,这个状态是很重要的
⽇志⽂件能被收缩的原因是该⽂件尾部的数据被清除了,使得该部分空间被释放,⽽不是逃过尾部去删除⽂件⾸部或者中间部分的内容。
sqlserver数据库的收缩是从最后⼀个数据库⽇志⽂件开始进⾏压缩的,所以说只有当最后⼀个VLF的状态为0的时候,DBCC SHRINKFILE才能发挥作⽤,否则收缩数据库⽇志⽂件是不会有效果的.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论