Skip to main content

moregeek program

【数据库数据恢复】sql server数据库所在磁盘分区空间不足报错的数据恢复案例_sun的博客-多极客编程

数据库数据恢复环境:

某品牌服务器存储有2组raid,一组raid1(2块硬盘),一组raid5(5块硬盘);

存放有SqlServer数据库。


数据库故障:

存放SqlServer数据库的分区由于数据量增加而导致原来划分的空间不足,管理员在另外一个分区中生成了一个.ndf文件并将数据库路径指向这个分区继续使用,一段时间后数据库出现故障报错,提示连接失效,SqlServer数据库无法附加查询。管理员于是进行尝试性数据恢复操作没有成功恢复数据,于是联系我们数据恢复中心进行数据恢复。


数据库数据恢复过程:

1、备份数据。服务器数据恢复工程师将故障服务器存储的所有磁盘都镜像备份。


2、数据库故障分析。由于SqlServer数据库文件所在磁盘分区空间不足,数据库无法正常运行,出现逻辑错误。分析存储中RAID1和RAID5的结构,根据获取到的raid信息分别虚拟重组出RAID1和RAID5并查看其中数据。 由于在数据库发生故障之后,管理员尝试过多次在原环境恢复数据库的数据,原始数据库文件被更改、覆盖,磁盘空间被多次重复擦除写入,所以无法使用管理员多次尝试恢复之后的数据库文件进行修复。 好在管理员在数据库发生故障,尝试进行恢复之前备份过一份数据库文件。


3、数据库修复。将之前备份的数据库文件尝试在数据库中附加,结果附加失败,错误提示如下:  



【数据库数据恢复】SQL Server数据库所在磁盘分区空间不足报错的数据恢复案例_sqlserver数据恢复


错误提示主数据库文件和次级数据库文件不匹配,数据库数据恢复工程师查看.ndf文件底层,发现.ndf文件中几乎没有数据。尝试取消.mdf文件和.ndf文件之间关联,只用.mdf文件进行附加仍然出现错误提示:  



【数据库数据恢复】SQL Server数据库所在磁盘分区空间不足报错的数据恢复案例_sqlserver数据恢复_02


错误提示日志文件(.ldf)和数据库文件(.mdf)不匹配。 于是数据库数据恢复工程师尝试对数据库进行无数据库附加,附加成功。但是发现数据库系统表损坏,无法正常使用。



【数据库数据恢复】SQL Server数据库所在磁盘分区空间不足报错的数据恢复案例_数据恢复_03


数据库数据恢复工程师对数据库的系统表尝试修复,但是系统表损坏严重无法修复。  

解析数据库文件中的数据库记录,北亚数据恢复工程师编写相应的程序提取数据库文件中的数据库记录,分析数据库备份获取数据库中的表结构,重构表结构并把提取出的数据库记录导入到新的表中。


数据验证:

由管理员对提取出的数据库记录进行验证,确认所有数据完全恢复。顺便提醒一下大家,在数据库的使用过程中,要合理分配数据库文件所在磁盘的空间,及时清理垃圾数据,保证数据库的正常、安全运行。

©著作权归作者所有:来自51CTO博客作者宋国建的原创作品,请联系作者获取转载授权,否则将追究法律责任
【数据库数据恢复】SQL Server数据库所在磁盘分区空间不足报错的数据恢复案例
https://blog.51cto.com/sun510/5517978

# mysql 七种连接方式图解_大鱼的博客-多极客编程

最下方有所有数据所需代码 内连接 #内连接 A∩B SELECT last_name,department_name FROM employees e INNER JOIN departments d ON e.department_id = d.department_id; 左外连接 #左外连接 SELECT last_name,department_name FROM employe

数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法_pg_hgdb的博客-多极客编程

瀚高数据库目录环境症状问题原因解决方案环境系统平台:Linux x86-64 Red Hat Enterprise Linux 7,Linux x86-64 Red Hat Enterprise Linux 6,银河麒麟U系(CPU飞腾)4版本:4.5症状瀚高数据库在使用psql工具以及jdbc进行远程连接时,在经过一定时间之后报错-致命错误:terminating connection due

如何使用数据管道实现测试现代化_wot技术大会的博客-多极客编程

企业需要了解数据合成与数据管道如何提供可扩展的解决方案,以创建符合测试系统实际需求的一致数据。很多企业如今被淹没在数据之中。他们从多种来源收集数据,并试图找到利用这些数据来推进业务目标的方法。解决这个问题的一种方法是使用数据管道作为连接到数据源,并通过管道将数据转换为端点可用的某种形式。虽然这是为企业操作数据的持续斗争的一部分,但始终需要找到方法为测试提供良好的数据集。企业需要这些数据集来测试整个

​如何平衡sql中的安全与性能?_wot技术大会的博客-多极客编程

如果你发现自己以某种方式置身于数据库的世界中,想必你已经对数据库的安全和性能有了一些了解。数据库管理系统确实为数据库带来了好处,但你是否考虑过需要从安全性和性能角度进行权衡,以便使你的选择最有效?这正是本文要探讨的。PART 01安全和性能是否联系在一起?首先要考虑一个事实,性能和安全密切相关。出现这种情况的主要原因是,开发人员,无论是初级的还是资深的,在其职业生涯的某个时刻开始意识到:安全性提高

瀚高数据库最佳实践配置工具hg_bp日志采集内容_pg_hgdb的博客-多极客编程

瀚高数据库目录环境文档用途详细信息环境系统平台:Linux x86-64 Red Hat Enterprise Linux 7,Microsoft Windows (64-bit) 10版本:4.5.7,4.5.6文档用途介绍瀚高数据库最佳实践配置工具HG_BP日志采集内容详细信息瀚高数据库最佳实践配置工具HG_BP日志采集内容如下:收集项说明最早支持版本CPU统计信息lscpuV 1.1CPU详

mysql 错误总结_大鱼的博客-多极客编程

错误信息如下 Resolved [org.springframework.jdbc.BadSqlGrammarException: <EOL><EOL>### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; che

一文读懂数仓中的pg_stat_华为云开发者社区的博客-多极客编程

摘要:GaussDB(DWS)在SQL执行过程中,会记录表增删改查相关的运行时统计信息,并在事务提交或回滚后记录到共享的内存中。这些信息可以通过 “pg_stat_all_tables视图” 查询,也可以通过下面函数进行查询。本文分享自华为云社区《​​一文读懂pgstat​​》,作者: leapdb 。GaussDB(DWS)在SQL执行过程中,会记录表增删改查相关的运行时统计信息,并在事务提交或

sql server 全库筛选指定字符串操作记录_孙忠的博客-多极客编程

SQL Server 全库筛选指定字符串操作记录过程描述:​获取所有表和字段:只要字符型字段,字符串一定是字符型,如果要查询其它的就按需选择字段,避免字段类型错误;通过excel拼接生成sql:每个字段一条查询语句。查询结果union all 拼接到一起。获取所有表和字段名​SELECT t.name,c.name FROM SYSOBJECTS t,SYSCOLUMNS c WHERE t.xt

经费预算与调整记录与使用记录输出使用进度搭建过程记录_孙忠的博客-多极客编程

需求描述:已有经费预算数据、经费调整记录、经费使用记录,需求输出视图显示经费使用进度。即经费预算金额、调整后金额、使用冻结金额、已使用金额、剩余可用金额。相关蓝图: 需求分析:基础数据:项目、预算维度、科目、科目类型、年份预算金额:来源经费预算数据。调整后金额:经费预算金额+调整合计冻结金额:来源使用记录合计(状态:审批中/冻结)。已使用金额:来源使用记录(状态:完成/扣减)剩余可用金额:金额+调

【数据库数据恢复】sqlserver数据库无法读取的数据恢复案例_sun的博客-多极客编程

SqlServer数据库故障&分析: SQL server数据库的数据无法被读取。管理员联系我们数据恢复中心进行数据库数据恢复。 数据库数据恢复工程师对故障数据库进行分析,发现SQL Server数据库文件无法被读取的原因是由于底层File Record被截断为0,无法找到文件开头,数据表结构也被损坏。镜像文件前面80M左右的空间和中间一部 分空间被覆盖掉,系统表损坏,无法读取,考虑用自动

sql server 实现触发器备份表数据_jackysz的博客-多极客编程

在项目里一个表(A)被增加, 需要同步插入的数据写别一个表(B)中:​条件:需要一个备份表(B) 和一个触发器(Insert_back)创建备份(B)表SELECT * INTO B FROM PATIENT触发器CREATE TRIGGER [dbo].[Insert_back] ON [dbo].[A] FOR INSERT ASBEGINSET NOCOUNT ON;INSERT INTO

数据库sqlserver迁移postgresql实践_陌路,尽头的博客-多极客编程

背景公司某内部系统属于商业产品,数据库性能已出现明显问题,服务经常卡死,员工经常反馈数据无法查询或不能及时查询,该系统所使用的数据库为SqlServer,SqlServer数据库属于商业数据库,依赖厂商的维护,且维护成本高,效率低,且存在版权等问题,考虑将该系统的数据库,迁移至PostGresql数据库,属于BSD的开源数据库,不存在版本问题,公司也有部分系统采用pg,维护成本也将大大减低。迁移原