zoukankan      html  css  js  c++  java
  • 【解决方法】因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间

    平台

    • sqlserver 2012

    问题描述

    正常运行的生产系统,今天下午突然发现不能使用的情况。看日志,发现以下描述:

    System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. —> System.Data.Entity.Core.UpdateException: An error occurred while updating the entries. See the inner exception for details. —> System.Data.SqlClient.SqlException: 无法为数据库 ‘bidagen2’ 中的对象 ‘dbo.OperationLog’.‘PK_dbo.OperationLog’ 分配空间,因为 ‘PRIMARY’ 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。

    定位问题,自增的主键,没有存储空间了。

    解决问题

    1、查看数据库数据文件存放路径

    use master--你的数据库名称
    go
    
    --看看你的primary组里的文件
    
    select ds.name,
           df.physical_name,  --主文件组的物理文件的路径
                              --打开我的电脑,查看文件所在盘,是否磁盘已满
                              
           df.is_percent_growth, --是否自动增长
           df.growth             --增长多少
    from sys.data_spaces ds
    inner join sys.database_files df
            on ds.data_space_id = df.data_space_id
    where ds.name = 'primary'

    运行以上代码会出现类似以下的结果:
    在这里插入图片描述

    2、查看存放路径的盘是否已满

    针对我的情况,C盘还有很多的空间,所以应该是数据库设置的问题。

    如果已经满了,那就需要清除一些文件了。

    3、更改数据库设置

    a、使用 MSSqlserver Management Studio 连接数据库

    b、在需要更改的数据库上点击右键,选择属性

    c、依次选择文件->Primary组的自动增长设置->最大文件大小设置为无限制

    具体可以参考以下操作截屏。

    在这里插入图片描述
    在这里插入图片描述
    至此,该问题已解决。

  • 相关阅读:
    终于和Java碰面了
    Servlet学习-MVC开发模式
    Servlet学习-数据库的操作
    Servlet学习-sendRedirect()和forward()
    Servlet学习-request
    Servlet学习-乱码解决方案
    Servlet学习-response
    Servlet学习-页面设置不缓存
    软件构造 第一章第二节 软件开发的质量属性
    软件构造 第二章 第一节 软件生命周期和版本控制
  • 原文地址:https://www.cnblogs.com/coce/p/13657588.html
Copyright © 2011-2022 走看看