SQL数据库损坏,报错,原因及注意事项
同岳科技最近一段时间接到很多客户咨询SQL数据库损坏,附加数据库报错的一些问题,在这里整理一下SQLSEVER数据库常见的一些故障现象及注意事项。
目前中小型企业使用SQLSEVER应用的非常多,但由于各种原因,也会经常出现一些不同的故障,常见的有一下几种:
一,附加数据库文件MDF及日志文件LDF时,报“823”错误。
故障出现原因:
(1)在数据库读写过程中突然死机或者断电。
(2)服务器重启,重启后数据库出现“置疑”状态。
(3)磁盘I/O错误
在以上可能的三种突发故障下,由于缓冲数据丢失,数据库无法写入正确的数据,导致数据结构紊乱,重启后数据库无法正常附加。
二,通过之前备份的数据库进行数据库还原时,出现“内部一致性错误”。这通常也是数据库管理人员最大的梦魇了,明明是做了备份,却在还原时发现备份文件是损坏的。这意味着数据库的丢失,后果是非常严重的。
故障出现原因:
(1)备份文件和数据库放在同一个物理硬盘上,硬盘出故障,备份也损坏。
(2)备份介质损坏;或者做的是网络备份,数据在网络传输中发生了损坏。
(3)数据库在做完整备份、文件备份或者文件组备份的时候,里面的内容就已经有了损坏。这是因为SQL Server在做数据备份的时候为了节省时间,基本只是很简单地把数据页面拷贝下来,不会做一致性检查的。但是在恢复的时候,需要将数据库恢复(Recover)到事务一致的一个时间点。如果备份中的损坏妨碍了SQL Server的前滚后滚(Redo和Undo),恢复动作就会遇到错误。
(4)在备份数据库时由于磁盘中有坏道,备份出来的MDF文件不完整时也会出现这种错误。
当数据库出现以上的故障时,需要修复数据库文件当中的坏页面,如果对MDF文件结构不是很清楚的话,请不要对原文件进行胡乱修改,这样会适得其反,会造成更大的损失。我们可以先将数据库文件备份一份,然后对备份文件用命令来修复,常常这种情况用命令修复完后,数据会丢失部分!
三,附加还原数据库后,检测数据库是出现一致性错误和分配错误。
数据库附加或者还远成功后,DBCC CHECKDB 通不过,报一系列错误。如下所示:
CHECKDB 发现了 5 个分配错误和 2 个一致性错误(在数据库 test 中)。
repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKDB (test ) 发现的错误而言)。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系.
故障出现原因:数据库的某个页面被更改或者清0,所以产生一致性错误和分配错误。
四, 最为常见的“未能读取并闩锁页 (1:4234)(用闩锁类型 SH)”
在检测数据库,会常见到下面的错误: “服务器: 消息 8966,级别 16,状态 1,行 1 未能读取并闩锁页 (1:4234)(用闩锁类型 SH)。sysobjects 失败”。这种“未能读取并闩锁页 (1:4234)(用闩锁类型 SH)”错误常常会出现在系统表中:sysobjects、sysindexes、syscolumns等中,这种错误出现的原因是因为系统表被破坏,这种错误是很麻烦地,因为SQL的效验比较严密,只要稍改一个关键字节,都出报这个错误,但有时可以导出部分数据。
五, 误删除或误格式化。
出现这种情况后,很多用户会用市面上的一些软件来恢复数据库,虽然用这些数据库软件可以恢复出MDF和LDF文件来,但几乎都会无法附加,即使附加成功,错误也会很多,因为数据库在日常中经常增加和删除记录,这样就会出数据库文件存储不连续的情况,而市面上的软件都是连续取数据,所以会造成数据库无法附加。出现这种错误时,用户应尽量不要使用本计算机,更不要安装软件和写任何数据。
针对最后两种情况的数据库损坏,恢复起来是比较复杂的,简单的一些命令恢复是达不到恢复的目的,这需要对数据库的结构有非常深入的了解。目前市面上,能够智能恢复数据库的工具非常之少,用户遇到这种问题可以尝试使用D-Recovery for MS Sql sever数据库恢复专用软件通过碎片提取的方式更完整的恢复数据库表内记录。
转载于:https://my.oschina.net/tongyuekeji/blog/682010
SQL数据库损坏,报错,原因及注意事项相关推荐
- 深圳坐标软件 SQL数据库 复制 报错 MS-DOS 功能无效 上读取失败 1(函数不正确) 恢复实践
坐标软件 SQL数据库 复制 报错 MS-DOS 功能无效 上读取失败 1(函数不正确) 恢复实践 接到文件,立即组织进行分析工作,发现 select * from sysobjects --系统表 ...
- SQL数据库挂起 SQL数据库附加报错 SQL数据库824错误修复
SQL数据库挂起 SQL数据库附加报错 SQL数据库824错误修复 数据类型 MSSQL 2012 数据大小 4.5 GB 故障检测 附加数据库提示824错误 一般是由于断电非法关机导致页面损坏. 客 ...
- 解决在安装Symantec选择SQL 数据库“11501”报错
问题: symantec(赛门铁克)安装时,不用内嵌数据库,用SQL,出现"错误 11501无法连接到数据库.如图所示: 解决思路: 1.排查防火墙是否关闭 2.主要排查SQL Server ...
- 数据库startup报错_SQL Server数据库恢复过程内部–数据库STARTUP命令
数据库startup报错 A database recovery process is an essential requirement for database systems, It can be ...
- SQL数据库损坏怎么办?教你数据恢复应急方案
最近一段时间,济南同岳科技接到很多客户咨询SQL数据库损坏,附加数据库报错的一些问题,在这里整理一下SQLSEVER数据库常见的一些故障现象及注意事项. 目前各大中小型企业使用SQLSEVER应用的非 ...
- 数据库查询报错Error Code 1064
数据库查询报错Error Code 1064 原因是sql语句书写错误,里面的 '' 符号并不是单引号,而是键盘上的波浪号. 错误代码: SELECT * FROM 'test'.'user'; 正确 ...
- SQL数据库损坏及恢复分析
来源: http://www.itquan.com/user3/4602/archives/2007/19410.html SQL数据库在现在的中小型企业中运用是非常多地,但它的损坏也是很常见地,现就 ...
- 【8008】解决idea中JDBC写sql语句出现报错Unable to resolve table ‘表名‘?
[8008]解决idea中写sql语句出现报错Unable to resolve table '表名'? 问题背景: 昨天使用JDBC连接数据库中写sql语句,一直爆红,真服了,虽然能运行,但看着不舒 ...
- SQL数据库损坏,数据库数据恢复!
数据恢复论坛,中国数据恢复联盟! 原文来自:http://www.intodata.org/read-htm-tid-132.html SQL数据库损坏及恢复分析 SQL数据库在现在的中小型企业中运用 ...
最新文章
- 详解Linux Initrd
- 代码质量与规范,那些年你欠下的技术债
- 【工具推荐】ELMAH——可插拔错误日志工具(转)
- Android开发之Android studio4.1查看app布局的方法 | 使用布局检查器和布局验证工具调试布局
- 用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server如何处理
- 2021-10-07
- laravel event
- C++之指针探究(十):this指针
- VB.NET DataGridView与数据库的连接
- android-async-http框架之与网络进行数据交互
- HTML5生日祝福网页制作 (粉色系列为你定制) HTML+CSS+JavaScript
- 《晚明》小说各战役配图
- 扫普通二维码打开小程序,可进入体验版
- Chrome浏览器本地调试:阻止不安全、本地网络请求
- 该网页无法正常运作 HTTP ERROR 500
- 数据库分类和负载均衡方案
- 多媒体计算机音乐大赛评分表,歌唱比赛的评分标准
- 阿里云设置密钥对登录服务器
- 解决tuple index out of range
- SQL数据库管理—DBCC数据库修复
热门文章
- Matlab试验箱rbf,matlab实现RBF的相关函数
- DALSA Xtium系列MX4采集卡和AVAL GLOBAL APX-3324A采集卡参数对比
- ERROR com.alibaba.druid.pool.DruidDataSource - abandon connection, open stackTrace: 已解决
- RBAC权限管理(详细)
- 硬件基础-锁相放大器详解
- 2014 android 机型排行,2014年1月份10大畅销Android智能手机排名(图)
- 酷播云的视频分享到微信完整教程(转发给微信好友、微信群、微信朋友圈)
- 企业如何制定数字采购战略?
- NoSQL数据库入门与实践——整理(一)
- python库之—psycopg2