您真的理解了SQLSERVER的日志链了吗?
您真的理解了SQLSERVER的日志链了吗? 先感谢宋沄剑给本人指点迷津,还有郭忠辉童鞋今天在QQ群里抛出的问题 这个问题跟宋沄剑讨论了三天,再次感谢宋沄剑 一直以来,SQLSERVER提供了一个非常好的管理工具:SSMS 又因为这个管理工具太好了,所有操作的简单化
您真的理解了SQLSERVER的日志链了吗?
先感谢宋沄剑给本人指点迷津,还有郭忠辉童鞋今天在QQ群里抛出的问题
这个问题跟宋沄剑讨论了三天,再次感谢宋沄剑
一直以来,SQLSERVER提供了一个非常好的管理工具:SSMS
又因为这个管理工具太好了,,所有操作的简单化,以至于使我们中毒太深,
对于SQLSERVER内部的一些概念搞得不清不楚
比如这些概念:日志备份链,备份日志链,日志链,备份链,备份集
大部分都是由于SSMS的界面所导致,有时候有些问题做一下实验就可以验证了,偏偏我们信赖了GUI
阅读下文之前大家可以先看一下宋沄剑的文章
SQL Server CheckPoint的几个误区
再谈SQL Server中日志的的作用
SQL Server误区30日谈-Day20-破坏日志备份链之后,需要一个完整备份来重新开始日志链
先说清楚这些概念吧
SQLSERVER只有日志链,备份记录(有些人也叫备份链)本人觉得叫备份记录更合适
下面三个东西说的都是同一样东西
备份集=备份记录=备份链
备份集:比如备份的集合,比如有对一个数据库的完备1、差备、日备1、完备2、日备2,这些数据库的备份的集合就是备份集
不过我更喜欢叫备份记录
备份记录实际上指 SELECT * FROM [msdb].[dbo].[backupset]
截断日志跟日志链断裂是否是同一样东西?
截断日志跟日志链断裂不是同一样东西
什么是日志链
其实大家可以把bak文件理解成一个压缩包,完整备份和差异备份的时候会把数据和日志一起带进压缩包,
而日志备份的时候只会把日志带进压缩包
我们先从一个实验开始吧
测试环境:SQLSERVER2012 开发版
脚本
为了不产生额外的日志,所以脚本里面没有select into语句,本来想select into进去临时表再对临时表进行排序
但是因为select into会产生额外的日志,只有直接对fn_dblog进行排序了
创建数据库
1 USE master LogChainTest; LogChainTest SET RECOVERY FULL; 8 GO