页是SQL server数据库的基本存储单元。数据库文件(MDF和NDF)以页面的形式携带所有保存的信息。页级损坏是大多数dba最严重的问题之一,它将导致MDF和NDF文件损坏,并使保存在数据库中的数据无法访问。
如果您正在寻找修复SQL页面级损坏的有效解决方案,请尝试下面提供的两种方法。一种是使用专业的EaseUS MS SQL恢复一种是自动修复损坏的MDF/NDF,另一种是使用手动方法逐个修复每个页面,这需要经验和深厚的SQL Server知识。
SQL Server页面级别损坏的原因
SQL数据库中的损坏可以在任何时候发生,从而导致页面级损坏。通过了解问题的原因,我们可以更好地预防和解决问题。
- 硬件故障
- 突然停电
- 病毒/恶意软件攻击
- SQL Server升级失败
- 服务器本身有问题
一旦您开始注意到SQL数据库损坏并异常运行,您应该立即备份数据库中的所有数据,并开始修复和恢复。
自动修复SQL数据库页级损坏和修复MDF的方法
修复SQL server数据库中的页面级损坏对于许多新数据库管理员来说是一项艰巨的工作。为了尽快修复SQL页面级损坏并避免更严重的数据丢失,我们强烈建议您首先尝试更安全,更有用的解决方案,即应用SQL修复工具。最流行的软件之一是EaseUS MS SQL Recovery,它为用户提供了以下优秀的功能。
- 修复损坏的SQL数据库文件(MDF/NDF文件)
- 从SQL数据库中恢复已删除的记录
- 修复损坏的SQL server数据库组件-表,触发器,索引,键,规则和存储过程
- 允许将修复后的数据库导出为CSV;XLS、HTML和MDF格式
- 支持MS SQL Server 2017, 2016, 2014, 2012, 2008和更旧的版本
步骤1。停止MS SQL Server服务
按“Windows + R”并输入services.msc。
找到并双击“SQL Server(即时名称)”。
在“属性”窗口中,单击“停止”结束SQL Server,单击“应用”确认。
步骤2。运行EaseUS SQL修复工具。在主界面点击“浏览”(两个圆点)选择损坏的MDF/NDF文件。然后点击“修复”开始分析你的MDF/NDF文件。
如果您知道文件的确切位置,请单击“Browse”来定位数据库。
如果你不知道文件的位置,点击“搜索”来搜索。mdf或。ndf文件。
步骤3。完成后,您将在窗口的左侧窗格中看到列出的所有数据库对象。选择要修复的数据库对象并单击“Export”。
步骤4。选择导出数据库数据的首选方式:“导出到数据库”或“导出为SQL脚本”。如果选择“Export to database”,则需要进一步选择服务器信息,登录您的帐户,并选择目标数据库,可以是新的数据库,也可以是现有的数据库。
步骤5。在单击“确定”之前,现在需要重新启动SQL Server。
按“Windows + R”并输入services.msc。
找到并双击“SQL Server(即时名称)”。
在“属性”窗口中单击“开始”重新启动SQL Server服务,然后单击“应用”确认。
步骤6。点击“确定”将修复后的文件保存到所需的SQL数据库中。
修复SQL数据库页级腐败与DBCC CHECKDB命令
如果您不想使用第三方软件来修复SQL Server中的页面级损坏,您可以使用DBCC CHECKDB来检查数据库损坏。但是,作为预防措施,一旦发生损坏,您最好备份SQL数据库。
首先,从网上下载一个文本比较工具和一个数据比较工具。这些工具将帮助您查看损坏数据和原始数据的并排比较。
1.使用文本比较工具检查原始文件和损坏文件之间的差异。
2.在损坏的文件上运行DBCC CHECKDB命令。该命令将确保检查数据库文件,识别缺陷并建议数据修复的最低要求。
3.要检查受感染页面的内容,请运行DBCC page命令。首先打开跟踪标志3604。
DBCC traceon (3604)
DBCC PAGE ({' dbname ' | dbid}, filenum, pagenum [, printopt={0|1|2|3}])
其中filenum和pagenum是与系统表相关的页id。其他参数0、1、2和3如下所示。
- 0 -这将打印页眉部分
- 1 -它是每行十六进制转储的页头
- 2 -这是详细的页面十六进制转储页头
- 这是页眉与详细的每行解释
4.使用以下命令确认页码和物理偏移量,强制出现逻辑一致性错误,并尝试读取表。
SELECT * from dbo.tablename
5.从损坏的文件中复制损坏的页面并将其粘贴到文本比较工具中。
6.使用数据比较工具将损坏的页面与原始页面的最新版本进行比较。您将清楚地识别故障。
7.在恢复的文件上运行DBCC CHECKDB命令以修复SQL server中的页级损坏。
为什么不推荐使用手工方法
- 它对轻微的腐败是有用的。如果几个位置损坏,可能会影响其他类型的页面,从而导致SQL Server无法打开文件。
- 直接编辑文件容易出错。校验和是逐页计算的,如果不能正确地复制/粘贴,就会出现输入/输出错误,或者可能无法打开数据库。
- 此解决方案将花费大量时间,并且需要技术专长和丰富的经验。
结论
许多用户无法使用手动方法修复SQL server中的页面级损坏,因为它太复杂了。因此,您最好使用自动化的方法来解决问题,例如使用这里是EaseUS MS SQL恢复。
这个页面有用吗?
相关文章
简单的方法修复恢复挂起状态在SQL Server 2014/2016/2017
塞德里克/ 2023-02-22
塞德里克/ 2023-02-22
塞德里克/ 2023-02-22
特蕾西王/ 2023-02-22