鸿萌数据恢复服务:SQL Server 中的 GAM、SGAM、IAM,及数据库损坏的修复方法

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、网络及终端数据安全等解决方案与服务。

+

同时,鸿萌是国际主流数据恢复软件(Stellar、UFS、R-Studio、ReclaiMe Pro 等)的授权代理商,为专业用户提供正版的数据恢复软件。

在 SQL Server 中,页面是存储数据的基本单位,而扩展是帮助有效管理页面的基本单位。扩展是八个物理连接的页面的组合。在 SQL Server 中,有两种类型的分配映射用于记录分配的范围 - 全局分配映射(GAM) 和共享全局分配映射 (SGAM)。还有另一个页面,称为索引分配映射 (IAM),它映射分配单元使用的 SQL Server 数据库文件 4 GB 部分中的扩展。有时,这些 SQL 数据库页面会由于各种原因而受到损坏,需要修复数据库损坏。

什么是 GAM、SGAM 和 IAM 页面?

全局分配映射 (GAM) 负责处理数据库内的分配区,有助于在需要时识别空闲区。

共享分配映射 (SGAM) 页类似于粒度图,处理数据库中特定文件组的扩展分配。

索引分配映射 (IAM) 页是特殊的内部页,其作用类似于数据存储的注册表,跟踪数据页在数据库文件中的位置。

如何诊断 GAM、SGAM 和 IAM 页面错误?

运行查询时,您可能会遇到类似以下的错误消息:

Msg 8905, Level 16, State 1, Line 1

Extent (5678:1234) in database ID 10 is marked allocated in the GAM, but no SGAM or IAM has allocated it.

此错误表明 GAM 页面已损坏。

检测数据库页中的错误的另一种方法是是使用 DBCC CHECKDB 命令(参见下面的示例)。

DBCC CHECKDB (stellardb)

GO

有一个未记录的命令,名为 dbcc PAGE。这是 Microsoft 使用的内部命令。但是,可以使用它来诊断数据库页面。以下是使用此命令的代码。

DBCC PAGE (stellardb, 1, 354, WITH NOHEADER)

GO

这里,stellardb 是数据库名称,1 是文件编号,354 是页码。

如何修复 SQL 数据库 GAM、SGAM 和 IAM 页面中的损坏?

从备份恢复数据库

如果有备份,可以使用它来恢复数据。以下是使用 SQL Server Management Studio (SSMS) 恢复数据库备份的步骤:

  • 在 SQL Server Management Studio (SSMS) 中,转到对象资源管理器并右键单击数据库。
  • 然后,选择恢复数据库选项。

转到对象资源管理器并右键单击数据库。然后,选择“恢复数据库”选项。

  • 在常规页面上选择设备选项,然后按浏览按钮选择备份并按确定。

常规页面上的设备选项

使用 DBCC CHECKDB 命令

要修复 GAM、SGAM 和 IAM 页面错误以及数据库损坏,可以使用 SQL Server 中的 DBCC CHECKDB 命令。以下是使用 DBCC CHECKDB 命令修复数据库的代码:

USE master;
GO
ALTER DATABASE stellar
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

DBCC CHECKDB('stellar',REPAIR_REBUILD)
GO
ALTER DATABASE stellar
SET MULTI_USER;
GO

上述代码将转到主系统数据库,将数据库设置为单用户模式,修复数据库,然后将其恢复到多用户模式。

使用Stellar Repair for MS SQL 数据库修复软件

如果 DBCC CHECKDB 命令无法修复数据库,您可以使用 Stellar Repair for MS SQL。该软件可以轻松修复 SQL Server 数据库 (mdf 和 ndf) 文件。它可以从损坏的数据库文件中恢复所有数据并将其保存在新的数据库文件或其他各种格式中。

鸿萌是 Stellar 系列数据恢复软件的授权代理商,为用户提供官方正版软件产品。同时,需要时,可协助进行售后服务及寻求官方远程技术指导。

注意:在启动修复过程之前,请使数据库脱机。

  • 从官方网站下载该软件。
  • 安装软件并启动它。
  • 单击“浏览”选择数据库文件(如果您不知道数据文件存储在哪里,可以使用“查找”按钮)。

浏览选择数据库文件

  • 选择数据文件后,按修复按钮。

浏览损坏的 SQL 数据库并单击修复以修复数据库

  • 修复后,您可以将数据保存在新数据库或其他格式(如 CSV、HTML 和 Excel)中。

保存选项以保存已修复的 SQL 数据库

防止 GAM、SGAM 和 IAM 页面损坏的最佳实践

您可以遵循以下一些有用的提示来防止 SQL Server 数据库页面损坏:

  • 检查硬件,尤其是硬盘,确保它们没有问题。如果磁盘太旧或出现错误,请更换磁盘。如果可能,请为您的 SQL Server 数据创建镜像 RAID。
  • 避免病毒和恶意软件攻击。确保安装防病毒和反垃圾邮件软件。
  • 使用最佳防火墙和网络分段保护您的网络,并加密您的数据。如果适用,请创建安全的 VPN 网络。
  • 确保使用最新更新来更新您的操作系统和软件。

联系专业的数据恢复公司

以上解决方案针对专业的数据库人员。对于非专业人员,为了保护数据不受二次损坏,请及时联系专业的数据恢复公司。

天津鸿萌科贸发展有限公司提供专业的数据库恢复及修复服务,凭借二十余年的良好行业口碑,为客户高效解决数据安全问题。

7x24小时在线紧急数据救援服务,及时向客户提供专业的应急响应。

易备数据备份软件:数据库备份,为任何危机做好风险防范

易备数据备份软件支持对 SQL Server、Oracle、MySQL、PostgreSQL、MariaDB、泛微 OA 等数据库进行快速备份,备份过程不会对任何服务造成中断。

使用一份授权,可以备份无限量的数据库,不管数据库服务器是否在本机、本地网络、或是远程网络。可以从网络中的任何一个 Windows 系统中执行数据库的备份任务。软件可以将数据库自动备份到任何目标设备:本地磁盘、NAS、磁带,以及自动通过 FTP、FTPS 和 SFTP 进行传送备份文件,或发送到天翼云、华为云、信服云或 Amazon S3 等云服务。使用本软件可以备份及截断事务日志。

  • 实时备份, 不需要任何中断或数据库锁定
  • 基于日期和时间的备份任务计划
  • 可恢复到一个已存在的数据库或创建一个新数据库
  • 内置压缩
  • AES 256 位加密
  • 多账户和多数据库并行备份
  • 自定义备份文件名
  • 可以为每一个数据库保存多个备份副本
  • 备份校验
  • 标准格式的备份文件
  • 多副本备份,同时支持云端、FTP、磁带、NAS 等多种备份目的地
  • 邮件提醒备份结果
  • 防勒索备份检测
  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿萌数据安全

你的鼓励将是我创作的巨大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值