SQLServer数据库无法收缩问题.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MS SQL Server数据库 无法收缩的处理办法 一. 数据库数据文件无法收缩的情况 在MS SQL Server 2008中有一个叫做“张金玉”的数据库。想把他收缩一下。 进入“SQL Server Management Studio”,使用“数据库”→“张金玉”鼠标右键菜单中的“任务”→“收缩”→“文件”菜单项,弹出一个“收缩文件”窗口,如下图。 在这个窗口中可以看到“当前分配的空间”为31236.00MB,“可用空间”为23341.81MB(74%)。可以缩小很多。 选中窗口中的“在释放未使用的空间前重新组织页”单选按钮,并将那个“将文件收缩到”框框里面的值设为0(此处设为0在运行中会自动填入这个框框右边的最小值—7825)。 点击“确定”按钮,稍等片刻,这个窗口自动关闭,表示已经收缩完毕。但是,再次打开这个窗口看看,“当前分配的空间”仍然是31236.00MB。换句话说,这个数据库实际上并没有收缩。换用其它的收缩方法,统统不能收缩。 鉴于此种情况,考虑数据库本身可能存在错误。试用“DBCC CHECKDB”检查是否有误。 在“SQL Server Management Studio”中新建一个查询选项卡,先指定数据库名称为“张金玉”,然后执行“DBCC CHECKDB”。执行期间服务器的硬盘灯常亮。执行完毕后报告有错。在报告开头附近就有两行红字如下: 张金玉的 DBCC 结果。 Service Broker 消息 9675,状态 1: 已分析的消息类型: 14。 Service Broker 消息 9676,状态 1: 已分析的服务约定: 6。 Service Broker 消息 9667,状态 1: 已分析的服务: 3。 Service Broker 消息 9668,状态 1: 已分析的服务队列: 3。 Service Broker 消息 9669,状态 1: 已分析的会话端点: 0。 Service Broker 消息 9674,状态 1: 已分析的会话组: 0。 Service Broker 消息 9670,状态 1: 已分析的远程服务绑定: 0。 Service Broker 消息 9605,状态 1: 已分析的会话优先级: 0。 消息 2576,级别 16,状态 1,第 1 行 索引分配映射(IAM)页 (1:3998207) (位于对象 ID 0,索引 ID -1,分区 ID 0,分配单元 ID 332260034084864 (类型为 Unknown))的上一个指针指向了 IAM 页 (0:0),但扫描过程中检测不到它。 消息 8906,级别 16,状态 1,第 1 行 数据库 ID 5 中的页 (1:3998200) 在 SGAM (1:3578625) 和 PFS (1:3995472) 中进行了分配,但未在任何 IAM 中分配。PFS 标志 MIXED_EXT ALLOCATED 0_PCT_FULL。 CHECKDB 发现有 2 个分配错误和 0 个一致性错误与任何单个的对象都没有关联。 ……………… 在报告的末尾处有总结如下: CHECKDB 在数据库 张金玉 中发现 2 个分配错误和 0 个一致性错误。 对于由 DBCC CHECKDB (张金玉)发现的错误,repair_allow_data_loss 是最低的修复级别。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 好像是建议使用“DBCC CHECKDB”的repair_allow_data_loss参数修复。那么在查询选项卡中运行“DBCC CHECKDB(张金玉,repair_allow_data_loss )”。但是,一运行就报错。原因是修复数据库时,该数据库需要设置成“单用户”状态。将数据库属性的“选项”→“状态”→“限制访问”设置成“SINGLE_USER”,使其变成单用户。 设置成单用户之后立即再运行“DBCC CHECKDB(张金玉,repair_allow_data_loss )”。但是仍然报错。然而,退出“SQL Server Management Studio”再重新启动“SQL Server Management Studio”后再运行“DBCC CHECKDB(张金玉,repair_allow_data_loss )”就不报错了。运行后的界面如下图。 从运行结果看,错误已经被修复了。 既然已经修复了错误,那么就重新进行“收缩”。收缩后再使用“数据库”→“张金玉”鼠标右键菜单中的“任务”→“收缩”→“文件”菜单项,打开“收缩文件”窗口看看,情况如下图。 此时“当前分配的空间”已经变成了7895.00MB,说明收缩成功。 下次再遇到不能“收缩”的情况时,首先要考虑数据库内部是否有错。

文档评论(0)

ktj823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档