SQL Server事务日志介绍
摘要:SQL Server中的数据库都是由一或多个数据文件以及一或多个事务日志文件组成的。顾名思意,数据文件主要存储数据库的数据,包括数据库内容结构,数据页,索引页等等。那么事务日志到底是干什么的呢?它主要是用来保存数据库修改记录的,如下图:SQL Server的工作原理为什么这样呢?为什么不把数据立刻写入数据文件呢?原因很简单:为了得到更高的效率和性能。数据文件为了适应新的数据可能会扩展, 可能会重新分配页,分配新空间等等。而日志都是连续被记录的,所以记录事务日志要快得多。这也就是为什么我们通过推荐把物理磁盘单独划分一区用来存储事务 日志的原因了,这样可以使磁盘在读写上最大程序的保持自然连续。数据
阅读全文
posted @
2014-04-09 15:46
无敌百搭
阅读(604)
推荐(0)
你真的会使用SQL Server的备份还原功能吗?之二:主要备份类型
摘要:假设在下面几个时间段中,一个数据库积累插入了如下数据:1.完整数据库备份故名思意,完整数据库备份包括完整的数据库信息。它包括数据库的数据文件和备份结尾的部份活动事务日志。完整备份基本语法如下:BACKUP DATABASE AdventureWorks TO DISK = 'g:/backups/AdventureWorks.bak'2.差异性数据库备份差异性数据库备份包括自从上一次完整性备份以来所有改变的数据页,以及备份结尾的部份活动事务日志。差异备份和完整备份的语法很相似,唯一不同的是加上了DIFFERENTIAL选项,如下:BACKUP DATABASE Adventur
阅读全文
posted @
2014-04-09 15:45
无敌百搭
阅读(1032)
推荐(0)
你真的会使用SQL Server的备份还原功能吗?之一:恢复模型
摘要:在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模型: Simple(简单), full(完整), bulk-logged(批量日志)。 下面这条语句可以显示出所有在线数据库的恢复模型:SELECT name, (SELECT DATABASEPROPERTYEX(name, 'RECOVERY')) RecoveryModel FROM master..sysdatabases ORDER BY nameSQL Server 2005及以上版本也可以使用下面这条语句来查看:SELECT name, recovery_model_desc
阅读全文
posted @
2014-04-09 15:44
无敌百搭
阅读(482)
推荐(0)
SQL Server如何截断(Truncate)和收缩(Shrink)事务日志
摘要:当SQL Server截断事务日志时,它仅仅是在虚拟日志文件中做个标记,以便不再使用它,然后准备以重用形式来做备份(假如运载在完整或是批量日志恢复模型)。也就是说,在使用简单恢复模型时,事务日志包括如下的日志记录:当checkpoint发生时,虚拟日志文件1、2不再被使用,因为事务1、2已经被提交了,而且日志记录也不再需要回滚了。然后SQL Server重用虚拟日志文件1、2,如下图:这就是我们所熟知的事务日志截断。基本上,事务日志的活动区间已经被截断了,但是事务日志的物理大小不会改变,除非数据库使用自动收缩的属性设置。在这种情况下,事务日志就会尽可能的在物理上进行周期性的收缩。为了物理上减小
阅读全文
posted @
2014-04-09 15:23
无敌百搭
阅读(7315)
推荐(1)
SQLSERVER备份事务日志的作用
摘要:事务日志备份有以下3种类型(1)纯日志备份:仅包含相隔一段时间的事务日志记录,而不包含任何大容量更改(2)大容量操作日志备份.包括由大容量操作更改的日志和数据页,不支持时间点恢复(3)尾日志备份:从可能已破坏的数据库创建,用于捕获尚未备份的日志记录。在失败后创建尾日志备份可以防止工作损失,并且,尾日志备份可以包含纯日志或大容量日志数据必须至少有一个完整备份或一个等效文件备份集,才能进行任何日志备份。通常DBA定期(如每周)创建数据库完整备份,以更短的间隔(如每天)创建差异备份,并会频繁(如每10分钟)创建事务日志备份。最恰当的备份间隔取决于一系列因素,如数据的重要性、数据库的大小和服务器的工作
阅读全文
posted @
2014-04-08 15:47
无敌百搭
阅读(3765)
推荐(0)