数据库修复系列Part4:重建数据库日志文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了数据库修复系列Part4:重建数据库日志文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2271字,纯文字阅读大概需要4分钟。
内容图文
我们可能会遇到日志文件损坏或者被不小心删除的问题,导致数据库无法访问。在没有备份的情况下,可以用重建日志文件恢复数据库,但是可能会有数据丢失。 另外本篇文件还通过举例证明了日志文件的重要性(许多人说日志文件是可以删除的,这个是完全错误的)。
我们可能会遇到日志文件损坏或者被不小心删除的问题,导致数据库无法访问。在没有备份的情况下,可以用重建日志文件恢复数据库,但是可能会有数据丢失。 另外本篇文件还通过举例证明了日志文件的重要性(许多人说日志文件是可以删除的,这个是完全错误的)。
1. select * from Test(有两条记录1,2)
查询结果:
idTest
-----------
1
2
2. 更新一条记录(将1更改为3),但是不提交事务。
begin tran
update Test set idTest=3where idTest = 1
checkpoint
select * from Test
查询结果:
idTest
-----------
2
3
(2 row(s) affected)
3. 关闭SQL Server服务器
4. 删掉ldf文件重启Service,并且访问数据库会得到下面的错误:
Msg 945, Level 14, State 2,Line 2
Database 'FNDBLogTest' cannotbe opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
5. 重建日志文件:
ALTER DATABASE FNDBLogTestREBUILDLOGON (NAME=FNDBLogTest_Log,
FILENAME='D:\ProgramFiles\Microsoft SQL Server\MSSQL10_50.R2\MSSQL\DATA\FNDBLogTest_Log.ldf')
Warning: The log for database'FNDBLogTest' has been rebuilt. Transactional consistency has been lost.The RESTORE chain was broken, and the server no longer has context on theprevious log files, so you will need to know what they were. You should run DBCCCHECKDB to validate physical consistency. The database has been put in dbo-onlymode. When you are ready to make the database available for use, you will needto reset database options and delete any extra log files.
6. 查询test表数据:
select * from Test
idTest
-----------
2
3
(2 row(s) affected)
注意:这里我们看到数据是3而不是1,跟我们期望的数据是不一致的。因为数据库关闭时事务还没有提交,正确的值应该是1.所以SQL Server的日志文件是非常重要的,不能随便删除。 SQL Server是利用日志文件做REDO/UNDO。重建日志只是建造一个正确的日志结构文件但是数据是空的(查看SQL Server事务可以参考我前面的两篇博客)
所以重建日志文件是在没有备份的情况下才会尝试的方法。
最后我们还需要运行DBCC CHECKDB检查数据库完整性:
USE FNDBLogTest
GO
DBCC CHECKDB WITHNO_INFOMSGS
内容总结
以上是互联网集市为您收集整理的数据库修复系列Part4:重建数据库日志文件全部内容,希望文章能够帮你解决数据库修复系列Part4:重建数据库日志文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。