最近几天我发现网站的数据库MDF文件不更新了,但是网站还可以添加信息,前台也正常显示,我重新启动SQL,MDF得到更新,数据没有丢失,可是我再对数据库进行操作,MDF和LDF都不更新,请问我的数据库哪里出错了 ?
mdf显示的是前几天的日期,最近几天我对数据库都有添加信息的操作,但是连续几天数据库备份BAK,字节数都是一样的,我把最近一天的BAK还原,里面居然有最新的信息,重新启动SQL服务后,MDF显示最新日期,于是我又对数据库进行了操作,MDF和LDF的显示时间还停留在重新启动SQL服务后的时间。这跟OS有关,跟数据库无关。
对mdf显示的时间:
1,在分离或附加时,会改变。
2.空间满后,自动扩展也会改变。
3,如果单纯的插入,删除数据是不会改变文件的时间。
在1,2条件的触发下,才会导致数据文件的最后修改时间(lastAccessTime)发生改变。
没有找到这方面的资料,下面是个人看法,仅供参考:
1,我们常见的像txt,doc文件,都是单个文件,OS在处理这些文件的时候,会在内存里产生相关的Handle,这些Handle是对应单个文件的,所以在每次修改txt,doc文件的内容时,handle的信息会同样更新,这也包括了最后修改时间;
2,对于数据文件和日志文件而言,OS不是直接对单个数据文件产生相关的HANDLE来处理,而是通过SQLOS(2005 和 2008)或者UMS (sqlserver 2000)里的Access method模块来操作数据文件的,这个时候根本就不关OS的什么事,所以修改时间的属性就不会发生改变;
3,如果文件需要扩展时,文件控制权又交到了OS手上,修改时间就会发生改变了。