sql server是先写日志还是数据

来源:互联网 发布:淘宝店铺收藏怎么看 编辑:程序博客网 时间:2024/05/01 06:30

我们知道SQL是在内存缓存区中对日志和数进行操作,然后再写入物理介质上。内存中的日志缓冲区与数据缓冲区是独立管理的。那么日志和数据到底是谁先写入物理介质?还是写入顺序无关紧要呢?

  一、什么是WAL

  sql server2000与对没有提交的事务,在把数据写入物理介质之前,必须先把日志写和物理介质。这就是WAL(Write ahead Log),先写日志的原则。

  二、为什么必须WAL

  让我们假设一下先写入数据这种情况。如先把数据缓冲区的数据写入物理介质,数据已发生变化。但因为一些原因日志缓冲区的数据丢失了,则会造成数据的不一致。而日志缓冲的数据已补破坏,数据到底发生了那些变化也无从考究,这样的数据根本无从恢复。如果执行WAL原则,先把日志缓冲区中的数据写入物理介质,即使用日志缓冲区中的数据发生丢失或破坏,可以通过日志查出数据发生那些变化,从而可以执行REDO操作,从而保证数据的一致性。

 

原创粉丝点击