无法为数据库 'xxx' 中的对象 'dbo.yyy'.'PK_yyy' 分配空间,因为 'PRIMARY' 文件组已满

前一阵子开发的一个游戏使用的SQL Server 数据库Express版本进行数据持久化,正常运行了一段时间都没有问题,昨天发现疯狂报错。

无法为数据库 'xxx' 中的对象 'dbo.yyy'.'PK_yyy' 分配空间,因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。

 检查了一下,发现是数据库对数据库文件大小进行了限制,单个数据库文件大小不能超过10G。

可以看到当前数据库文件的可用空间已经剩余 0% 了......

也可以通过数据库查询语句进行检测:

select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files where database_id=db_id(N'数据库名')

收缩时没办法收缩了,所以我通过在 'PRIMARY' 文件组新增新文件来解决。

在SSMS里,右键对应数据库,选择属性->文件,可以看到数据文件列表中有两个默认文件,一个mdf行数据文件,一个ldf日志文件,点击 添加 按钮,修改数据库文件信息,逻辑名称不重复就好,文件类型选行数据,文件组PRIMARY,初始大小和上一个文件保持一致,增量64MB,增长无限制,文件名以.mdf扩展名结尾,点击保存。

没想到到了这一部,SSMS又甩出一个错误:

操作失败,因为结果数据库的累计大小超出每数据库 10240MB 的许可限制值。

 EMMM。。。许可问题么,问了下度娘,果然是 Express 版本的限制,每个数据库文件大小限制为10G(据说早些版本是4G),有点坑,果断升级版本。

打开SQL Server 安装中心,点击维护选项卡,版本升级,将 Express 版本改为一个其他版本,我选了开发版本Developer,一路确定按下去,点击升级,然后再次执行失败前的操作,顺利通过。

就是不知道现在的Developer版本用来是不是有试用期限制,官方说Express版本免费使用但有各种硬件限制,Developer版本虽然有像企业版一样的功能,但不可以用于生产环境,这个是怎么鉴定的尚不清楚,先使用看看,以观后效。。

THE END

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值