附加数据库,未驻留在只读数据库或文件组中。必须将此文件解压缩

错误信息:

 

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

文件 "D:\www\database\XXXXX.mdf" 或者".ldf"已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。
无法打开新数据库 'XXXXX'。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 5118)

 

解决办法:
其实很简单,出现这种情况的时候多半是因为你把数据库文件放在了ntfs分区中,而ntfs分区又设置了"压缩文件以节省空间"

 

数据文件所在文件夹:

右键点击文件夹进入属性,在第一页的时候选择"高级"选项,去掉"压缩文件以节省空间"前面的勾即可

 

补充:数据文件本身可能也需要 右键点击文件夹进入属性,在第一页的时候选择"高级"选项,去掉"压缩文件以节省空间"前面的勾即可

 

 

注: 压缩与否的关键判断

       文件或文件夹是否是蓝色

### 解决SQL Server数据库文件压缩问题 对于SQL Server数据库文件压缩问题,当遇到提示文件已压缩驻留只读数据库文件组中的情况时,应当采取措施解除该文件的压缩状态。具体操作可以通过执行T-SQL命令来实现。 在SQL Server Management Studio (SSMS) 中连接至对应的实例并打开一个新的查询窗口输入如下语句: ```sql USE master; GO ALTER DATABASE YourDatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO -- 将YourDatabaseName替换为实际的数据库名称 DBCC SHRINKFILE ('mastlog', 0, TRUNCATEONLY); GO -- 这里'mastlog'应对应于日志文件逻辑名 ALTER DATABASE YourDatabaseName MODIFY FILE (NAME = 'mastlog', SIZE = ?MB); -- 设置合适的大小 GO ALTER DATABASE YourDatabaseName SET MULTI_USER; GO ``` 上述脚本首先将目标库切换成单用户模式以防止其他会话干扰;接着通过`DBCC SHRINKFILE()`函数尝试释放分配给指定文件的空间而不移动任何数据页;最后调整文件尺寸以及恢复多用户访问权限[^1]。 完成这些步骤之后,建议再次确认文件属性是否仍然处于压缩状态,并确保其所在卷有足够的可用空间支持后续扩展需求。如果继续存在异常,则可能涉及更深层次的原因分析者操作系统层面的操作。 #### 注意事项 - 执行以上更改前务必做好充分备份工作以防意外丢失重要资料。 - 修改生产环境之前最好先在一个测试环境中验证整个流程的安全性和有效性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值