sql server 2008 日志文件和数据文件分磁盘放置的问题
两台服务器A和B互为备机,磁盘都分两个区C和D,服务器A和B用同一阵列分区都设为G。即在阵列分区G里面的数据是两台服务器共享的,A服务器改变阵列G中数据时,那么关闭服务器A,启动服务器B后,B服务器在阵列读取到的数据是同步的也是先前A服务器改变后的数据。但是A和B的本地磁盘C和D是自己拥有的。如图:
那么现在我将数据库中数据文件test.mdf放到共享的磁盘阵列分区G中,则无论数据库怎么变化,那么服务器A和B读取到的数据都一样的。但如果将日志文件test.ldf放到服务器的本地磁盘D中,那么服务器A和B读取到的日志文件肯定是不一样的。
现在,如果服务器A对数据库test执行了插入等改变数据的操作,那么磁盘阵列中test.mdf和服务器A本地磁盘D中的日志文件test.ldf都会改变。现在关闭服务器A,启动服务器B,现在服务器B读取到的数据文件test.mdf是改变后的文件,但是到服务器B本地磁盘D读取到的日志文件test.ldf是改变前的(上次B服务器关闭时的日志)。也就是日志不同步,对整个数据库有没有什么影响!
谢谢!!!!!
------解决方案--------------------晕倒,直接做个cluster多好,这样还可以故障自动转移
------解决方案--------------------SQL Server修改数据时,是先在内存缓冲区写入,同时记入日志文件。你把A关机时,内存缓冲区不一定会回写到硬盘。如果A重启,SQL Server会检查日志,把尚未回写的数据写入硬盘(re-do)。可是你却直接启动B电脑,因此,可能会导致丢失部分数据。
------解决方案--------------------2013-09-23 19:26:51.10 spid19s 错误: 9003,严重性: 20,状态: 1。
2013-09-23 19:26:51.10 spid19s The log scan number (25:472:1) passed to log scan in database 'db01' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.
2013-09-23 19:26:51.10 spid19s 错误: 3414,严重性: 21,状态: 1。
2013-09-23 19:26:51.10 spid19s An error occurred during recovery, preventing the database 'db01' (database ID 5) from restarting. Diagnose the recovery errors and fix them, or restore from a known good backup. If errors are not corrected or expected, contact Technical Support.
------解决方案--------------------这样数据库无法使用了,你如果真的要做高可用性,可以用CLUSTER。