金沙国际平台登录-金沙国际会员登录

热门关键词: 金沙国际平台登录,金沙国际会员登录

server在开启了事务并对内存中的数据进行修改时

金沙国际会员登录 ,一. 概述

  1.1  日志文件与数据文件一致性

由于日志是顺序写入,而修改数据分散在数据库各个页面,属于随机写入,而磁盘顺序写入速度远高于随机写入,因此主流数据库都采用预写日志的方式来确保数据完整性

  在sql server 里有数据文件.mdf和日志文件.ldf,日志文件是sqlserver数据库的另一个重要组成部分,日志文件记录了所有事务以及每个事务对数据库所做的修改。为了提高数据库的性能, sqlserver 数据是缓存在内存里,并没有实时写入到磁盘,直到数据库出现检查点(checkpoint)或者内存不足必须(Lazy Write)将数据的修改写入到磁盘。 sql server在开启了事务并对内存中的数据进行修改时,会生成日志记录。 sqlserver 对数据页的插入修改删除都是在内存中完成后提交事务,但并不会同步到硬盘的数据页上。 为了保证数据库事务的一致性 如(服务器崩溃,断电)等 内存中的修改没有来得及写入硬盘,下次重启时候要能够恢复到一个事务一致的时间点,就必须依赖于事务日志。

 在上一章备份与恢复里了解到事务日志的重要性,这篇重点来了解事务日志。 事务日志记录了数据库所有的改变,能恢复该数据库到改变之前的任意状态。在sql server实例每次启动时都会去检查数据文件与日志文件的一致性。 包括日志记录的任何已提交的数据必须体现在数据文件上,未被标记为已提交的将禁止写入数据文件,日志还存储了收到客户端回滚事务请求,sqlserver出错如死锁等,日志产生一个rollback命令。

1.日志记录的是数据的变化而不是引发数据的操作
2.每条记录都有唯一的编号:LSN,并且记录了它属于的事务号。
3.日志记录的行数和实际修改的数据量有关
4.日志记录了事务发生的时间,但不记录发起者的程序名称和客户端信息
5.日志记录数据修改前和修改后的数据

金沙国际平台登录 ,     1.1 存储结构

   事务日志是在数据库创建或改变时与数据库关联起来的一个或多个文件。 任务改变数据库的操作都会在事务日志中写入描述这些改变的记录,包括要改变的页码,增加或删除的数据值,事务信息,起止的日期和时间信息等。通过dbcc log可以看到如下信息

 

  与数据文件不同 日志文件不是按页/区来进行组织的。每个物理日志文件是分成多个虚拟日志单元,虚拟日志单元没有固定大小,且数量不固定, 管理员也不能配置大小和数量。 例如:日志文件每自动增长一次(默认是按10%的空间扩展),会至少增加一个虚拟单元。

金沙国际平台登录 1

虚拟日志文件的状态:
1.活动(ACTIVE),在VLF上有任一条LSN是活动的
2.可恢复(RECOVERABLE),VLF上的LSN不活动的,但尚未被截断(truncated),该片区域的日志将可能被用于备份/镜像/复制等
3.可重用(REUSED),VLF上无活动的LSN,且已经被截断,该空间可以被再次使用
4.未使用(UNUSED),VLF是不活动的,且空间从未被使用过

  事务日志是一种回绕的文件。例如一个数据库里的日志文件包括5个虚拟日志单元,在创建数据库时,逻辑日志文件从物理文件的始端开始,新的日志记录被添加到逻辑日志未端,然后向物理日志未端扩张。

  sql server里每个日志记录都有一个唯一的日志序列号标识LSN, 同一个事务里的所有日志记录是一个连接起来的整体,这样能够容易的定位一个事务的各个部分,从而实现撤销undo或重做redo操作。

(PS: DBCC LOGINFO 中Status=0表示可重用或未使用,Status=2表示活动或可恢复)

  当逻辑日志的末端到达物理日志的末端时,新的日志记录将回绕到物理日志文件的始端继续向后写(这是因为日志备份会截断使日志空间重用)。

  1.2 优先写日志

 

  下图是日志文件的流程图,当日志备份后虚拟日志1和虚拟日志2会被截断,虚拟日志3成为了逻辑日志的开头,当虚拟日志3和虚拟日志4在使用后,再次备份时,由于日志文件是一个回绕的文件,此时又从虚拟日志1开始。
   图1  日志文件的外观

  在日志里有个名词叫“优先写日志”。是指:缓存管理器能够保证日志写入磁盘优先于相应的数据改变写入磁盘,这叫优先写日志。一旦某个数据页发生改变,相应的日志项的LSN将会被写入该数据页的页头,缓存管理器能够保证日志页以特定的顺序写入磁盘,使得无论故障在何时发生,sqlserver 能清楚知道在系统故障之后应该处理哪些日志块。如下图所示

数据增长大小与VLF增长数量
1-64M:4个VLF
64M-1G:8个VLF
1G以上:16个VLF

  金沙国际平台登录 2

金沙国际平台登录 3

 

本文由金沙国际平台登录发布于金沙国际平台登录,转载请注明出处:server在开启了事务并对内存中的数据进行修改时

您可能还会对下面的文章感兴趣: