SQL Server误区误区30日谈日谈 第第16天天 数据的损坏和修复数据的损坏和修复
误区 #16:多个关于数据的损坏和修复误区
坊间流传的很多版本都不正确
我已经听过很多关于数据修复可以做什么、不可以做什么、什么会导致数据损坏以及损坏是否可以自行消失。其实我已经针对
这类问题写过多篇博文,因此本篇博文可以作为“流言终结者”来做一个总结,希望你能有收获。
首先,对于数据修复可以做什么,不可以做什么,我已经写过一篇博文Misconceptions around database repair涵盖了13个误
区—从不用DBCC CHECKDB是否能修复错误(当然不能)到REPAIR_ALLOW_DATA_LOSS是否会引起数据丢失(这个名
字的确很让人迷惑)。
其次,很多人抱怨说DBCC CHECKDB第一次运行时显示的错误在第二次运行时会自行消失。这很好解释:第一次由DBCC
CHECKDB检测出的错误页已经不属于页分配集了,因此在第二次运行DBCC时就显示不出来了。我有一篇博文对此进行了详
细的解释:Misconceptions around corruptions: can they disappear?。
还有一个传的很广泛的流言是,运行时间长的操作(比如索引重建,大容量数据插入,数据库或文件的收缩)会导致页损坏。其
实不然,除非SQL Server存在BUG的情况下(非常罕见)。没有任何T-SQL语句会导致数据出错。我几年前写过一篇文章对
此进行了详细的解释:Search Engine Q&A #26: Myths around causing corruption。
希望这篇文章对澄清这个概念有帮助
您可能感兴趣的文章您可能感兴趣的文章:SQL Server误区30日谈 第29天 有关堆碎片的误区SQL Server误区30日谈 第28天 有关大容量事务日志
恢复模式的误区SQL Server误区30日谈 第27天 使用BACKUP WITH CHECKSUM可以替代DBCC CheckDBSQL Server误区
30日谈 第26天 SQL Server中存在真正的“事务嵌套”SQL Server误区30日谈 第25天 有关填充因子的误区SQL Server误区30日
谈 第24天 26个有关还原(Restore)的误区SQL Server误区30日谈 第23天 有关锁升级的误区SQL Server误区30日谈 第22天 资
源调控器可以调控IOSQL Server误区30日谈 第21天 数据损坏可以通过重启SQL Server来修复SQL Server误区30日谈 第20
天 破坏日志备份链之后,需要一个完整备份来重新开始日志链SQL Server误区30日谈 第19天 Truncate表的操作不会被记录
到日志SQL Server误区30日谈 第18天 有关FileStream的存储,垃圾回收以及其它SQL Server误区30日谈 第17天 有关页校验
和的误区SQL Server误区30日谈 第15天 CheckPoint只会将已提交的事务写入磁盘SQL Server误区30日谈 第14天 清除日志
后会将相关的LSN填零初始化SQL Server误区30日谈 第13天 在SQL Server 2000兼容模式下不能使用DMVSQL Server误区
30日谈 第12天 TempDB的文件数和需要和CPU数目保持一致SQL Server误区30日谈 第11天 镜像在检测到故障后瞬间就能故
障转移SQL Server误区30日谈 第10天 数据库镜像在故障发生后 马上就能发现SQL Server误区30日谈 第9天 数据库文件收缩
不会影响性能SQL Server误区30日谈 第8天 有关对索引进行在线操作的误区SQL Server误区30日谈 第7天 一个实例多个镜像
和日志传送延迟SQL Server误区30日谈 第6天 有关NULL位图的三个误区SQL Server误区30日谈 第5天 AWE在64位SQL
SERVER中必须开启SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器SQL Server误区30日谈 第3天 即时文
件初始化特性可以在SQL Server中开启和关闭SQL Server误区30日谈 第2天 DBCC CHECKDB会导致阻塞SQL Server误区
30日谈 第1天 正在运行的事务在服务器故障转移后继续执行SQL Server误区30日谈 第30天 有关备份的30个误区
评论0