日志文件丢失了会有什么后果呢?就是失去了对数据库一致性的保障。比如A从他账户里取出100元钱,汇到B的账户中,就在钱刚取出后还没进B账户前日志文件丢失了,那最终这笔交易就无迹可查了。A的钱就没有了,B也不会收到100元钱了。可见,日志文件对维护数据库完整性是多么重要。
如果日志文件丢失,首先建议从过去的备份恢复整个数据库。如果没有备份(怎么能不做备份呢?!),那就只有重建日志文件了。对于SQL2005来说,又以下两种方案:
1. 停止数据库服务。
2. 将数据文件复制一份。
3. 启动数据库服务。
4. 执行以下命令:
Create Database <New DB Name>
On (FileName='<复制出来的数据文件所在的路径及文件名加后缀')
For ATTACH_FORCE_REBUILD_LOG
5. 将原来的数据库Detach
方案二
1. 直接detach掉原来的数据库。
2. 再attach上这个数据库,我是在图形界面上操作,由于找不到日志文件,会提示日志文件找不到(transaction log Not Found)
3. 移除日志文件,attach可以成功,并自动创建了新的日志文件。
方案二的好处是不用重启数据库,并且不用复制数据库,这样对一个大数据库来说很方便。