热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【数据库数据恢复】windowsserver下SqlServer数据库的数据恢复

数据库数据恢复环境:5块2T硬盘组成的RAID5,划分LUN供windows服务器使用;windows服务器内装有SqlServer数据库;存储空间内共有三个逻辑分区大小分别为:5

数据库数据恢复环境:
5块2T硬盘组成的RAID5,划分LUN供windows服务器使用;
windows服务器内装有Sql Server数据库;
存储空间内共有三个逻辑分区大小分别为:500G、800G、2.3T。

数据库故障:
未知原因的数据库文件丢失,涉及到5个数据库约6000张表,不能确定数据存储位置。数据库文件丢失后服务器仍处于开机状态,但并未写入大量数据。管理员联系北亚数据恢复中心进行数据恢复。

数据库故障检测:
1、数据恢复工程师利用分析提取出来的RAID信息及内部数据块信息重组RAID。

 

重组RAID

 

2、提取LUN内三个分区镜像。
3、扫描文件系统内丢失文件,未找到被删除的数据库文件,数据库文件丢失,无法通过文件系统层面恢复数据。

数据库数据恢复过程:
1、经过检测后判定数据库文件丢失且无法恢复,数据恢复工程师只能通过扫描数据页,提取页内记录的方式进行数据恢复。
2、使用北亚数据恢复中心自主研发的数据页扫描程序扫描分区内数据页并提取。扫描两个分区镜像后发现系统盘分区内数据页数量极少且数据页断裂情况严重,另一分区内扫描到数据页数量较多,暂定此分区为数据库文件存储空间。

扫描数据页

 

3、重组系统表。Sql Server数据库使用系统表来管理所有用户表,系统表记录了各表的列数、数据类型及约束信息等。解析系统表过程中发现提取出的数据页内系统表损坏,无法正常读取信息。数据恢复工程师与管理员沟通后,得知有备份文件且备份完成后没有大量改动表结构,系统表可用。
4、还原备份。

还原备份

 

5、分别提取库中各表表结构信息。

提取表结构信息

 

6、解析表结构脚本。将各表的列信息存入数据库内便于后续使用。

 

扫描脚本文件

 

表结构信息存入数据库

 

7、解析系统表获取用户表id信息、关联表结构与数据页。(为保护隐私,后续步骤涉及用户表表名及数据页内数据部分均未截图)
8、新建数据库,使用北亚自主编写的软件解析记录并导入到数据恢复环境内。
9、整理恢复结果。在此分区内除数据库文件外还存有若干备份文件,导出记录后可能存在重复数据,必须去重。数据恢复工程师编写SQL存储过程进行去重。

数据库去重

 

10、验证数据。管理员在查验过数据后表示数据没有问题,移交数据到管理员准备好的存储设备,本次数据恢复成功。



推荐阅读
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 解决SQL Server数据库sa登录名无法连接的问题
    在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • MySQL Server 8.0.28 升级至 8.0.30 的详细步骤
    为了修复安全漏洞,本文档提供了从 MySQL Server 8.0.28 升级到 8.0.30 的详细步骤,包括备份数据库、停止和删除旧服务、安装新版本以及配置相关环境变量。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 本文旨在解决 MySQL 无法连接到 localhost 的常见问题,并提供详细的步骤来确保 MySQL 服务正确启动和配置。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 本文详细介绍了MySQL数据库服务器(mysqld)和客户端(mysql)的区别,并提供了多种启动和关闭MySQL服务器的方法。通过这些方法,您可以更好地管理和维护MySQL数据库。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • ZooKeeper 入门指南
    本文将详细介绍ZooKeeper的工作机制、特点、数据结构以及常见的应用场景,包括统一命名服务、统一配置管理、统一集群管理、服务器动态上下线和软负载均衡。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
author-avatar
linxiuying261
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有