SQL数据库质疑 SQL数据库可疑 SQL数据库显示正在恢复 SQL数据库无法附加
数据库为什么会出现故障?为什么突然坏了?该怎么预防损坏?下面我们根据多年经验给大家讲讲我们的看法。
SQL数据库是微软的数据库,这种数据库市场占用率估计达60%,使用的人多了 报告损坏的也就多了。加上SQL数据库给人感觉属于中型数据库 操作简单 所以一般企业都没有专业SQL数据库管理员. 加上 病毒 分区损坏 阵列崩溃 UPS断电 硬盘坏道因素 数据库损坏也是常见的。
不是只有SQL数据库会损坏,其他数据库一样会损坏,只不过大型数据库 配备有专人管理备份检测等,所以有损坏的情况大部分DBA自己处理了。
下面我们来看看 SQL数据库常见故障有哪些
一 SQL数据库置疑 (SQL2005及以上版本数据库会显示为数据库可疑或者数据库挂起) 这个报错 大家应该是比较容易看到
出现这个情况 是因为 文件损坏 至于损坏原因有很多 例如 病毒 数据库所在分区损坏 磁盘坏道 系统强制关机 重启 蓝屏 突然断电等情况.
预防方法:
1 定期检测数据库存储分区是否逻辑有问题 比如运行chkdsk d: 检测
2 定期检测磁盘是否有坏道, 可以使用网上的 坏道检测工具 例如HDDScan 2.8或者更高版本
3 定期更换电源 (电源这个东西是很脆弱的.建议使用做工非常好 价格比较贵的好电源) 防止电源不稳定 电容爆浆 自动重启,
4 内存条 这个东西也很重要 如果有灰尘或者内存条接触不良 电脑将会蓝屏死机。
5 有条件的话 就做数据库备份吧,对数据库checkdb检测 建议一天一检测,别怕麻烦。
6 建议数据库跟备份文件不要放在同一块盘,做好的备份一定要进行还原测试,免得你需要恢复备份的时候发现备份是坏的 就麻烦了。
7 SQL数据库损坏大多是 数据库正在工作 读写数据库页面时 数据库服务突然中止导致,数据库很多数据未及时写入到MDF文件 或正在写 没写完整,这样再次重启服务时 有的显示正在恢复 过一会就恢复OK,有的因为事务损坏导致无法回滚或者重做事务 数据库就挂了,起不来了 显示质疑.
二 SQL数据库置疑解决方法
1出现置疑后 强烈建议不要动存储数据库的分区 不要往里面写入文件 不要在这个分区打包RAR 或者黏贴任何文件到这个分区,你可以把损坏的MDF和LDF文件拷贝到其他分区 来尝试附加 很小一部分会直接附加成功 一旦附加成功 你可以执行DBCC CHECKDB检测数据库是否正常 出现红字 即为有错误。
如果修复不了 建议联系我们处理.
三 SQL数据库使用中 突然使用不了了, 这种就要小心是磁盘坏道了。你可以尝试停止SQL服务 然后拷贝MDF LDF文件到其他分区 如果拷贝中出现 冗余错误 那就表示 文件处在坏道上.
对于这种情况 不建议使用文件系统修复坏扇区 他会打乱文件结构, 导致问题更严重, 最简单的方法是 下载一些数据恢复软件 用数据恢复软件打开分区 例如R-Studio finaldata 都可以.
右键点击恢复即可。 他会跳过坏扇区. 恢复出来的文件需要您在加以检测 以确定损坏程度 然后在尝试修复。 至于坏道 你可以拿去专业维修硬盘的地方处理或者 你的数据库文件已经保存出来 并且也修复OK的情况下 你可以用文件系统检查错误修复或者用hddreg软件修复坏扇区.
四 数据库显示正在恢复, 或者阵列崩溃导致的数据库问题 。
阵列崩溃这种导致数据库文件损坏的 建议还是 先找出原因 从阵列入手, 下面主要讲讲 SQL数据库在使用过程中 如果突然断电 非法重启 非法关机 等带来的严重后果,
数据库在很多客户端同时操作的时候 会产生大量的读写操作,为了保持数据库数据的一致性,SQL会将数据先缓存起来,等到事务完成在一次性的写入到SQL数据库物理页面
这个过程 可能涉及到 修改数据 增加数据 删除数据 查询数据 SQL会很忙,假如这时 断电了 关机了。蓝屏了 那么 再次启动数据库时 数据库就会显示恢复
运气好的时候 SQL会恢复完成 数据库完美如初。 运气不好的时候 就会造成事务死锁或者事务损坏 或者 SQL数据库物理页面 校验损坏 导致恢复失败 变成置疑或者可疑 以及恢复挂起 或者长时间恢复不完成。
五 SQL数据库备份文件无法还原
这个问题不得不说 很多人 不会经常检查数据库是否有错误,结果备份的时候 也不进行校验
结果备份文件是坏的 也不知道。等到那天需要还原的时候发现还原不了 那就是个悲剧了。
导致备份损坏的原因 还有 文件系统损坏 病毒破坏 阵列损坏 坏道等 日常我们使用数据库 只要 对 硬件 文件系统 等做良好的检测 预防 就会很好的 预防数据库的损坏。
六 数据库文件被删除 数据库被老备份误还原覆盖
因为数据库经常使用 所以99.9%的数据库在磁盘存储里 他并不是连续的,成碎片状.他们依靠文件链接 呈现在使用者眼前 , 一旦您的数据库文件被误删除 通常数据恢复软件恢复出来的文件是不对的,虽然文件大小 和 名字 是正确的,但是内容却不是SQL数据库,或者部分正常 大部分确实其他文件的数据。
这种建议 找专业 人士解决。 自己保护好磁盘分区 防止二次破坏。
下面在来说说 数据库被老备份还原, 是不是还原完成 就表示 原数据库没有办法恢复了? 答案不是 , 因为原始数据库 在磁盘扇区底层有没有被覆盖到 或者 是不是被覆盖完了 这个需要 利用专业工具 从磁盘剩余空间 查找原始数据库页面 是否还存在 来确定。
只要没有覆盖完, 还是可以恢复部分数据。
如果数据库被彻底覆盖是否还能恢复数据?这个要跟数据 数据库使用的是什么模式. 数据库其中完全模式 才是我们需要的 虽然他会影响性能但是损失一点性能换来数据库的安全 完全值得。极佳数据库急救中心目前开发的SQL数据库事务日志恢复工具 就是专门针对这类情况 开发的。从磁盘恢复丢失的完整模式LDF文件 从中恢复数据库记录
七 表被删除 表数据被删除 表数据值被更新问题
以上操作 如果您误执行了 可以利用老备份和事务日志来进行数据恢复,这里不得不提的数据库模式 完整模式 这种模式会记录数据库的事务操作,也就是说可以利用它来恢复数据以及撤销任何操作,所以在使用数据库过程中 强烈建议 使用完整模式。
常用的事务恢复工具 如 Log Explorer for SQL Serverv 网上都可以下载到 并且有恢复教程 .
一定要保护好 原始MDF LDF文件 ,自己无法恢复的时候 可以寻求专业人士帮助.
深圳极佳数据库急救中心
QQ254897536