服务器使用mssqlserver2005,最近经常出现无法新增信息错误,查看日志,发现严重错误提示,内容大致为:

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

打开企业管理器,右键报错的数据库,选择“属性”,弹出对话框,发现常规标签页的可用空间显示只有1.03M,原来问题就在这里,想起是之前做过限制。
这时的一种解决方案是:设置该数据库文件以及日志的“最大文件大小”为文件增长不受限制。
注意要经常清理数据库日志和备份数据库文件。

以下相关内容整理仅供参考

提示:对于该问题,主要检是否限制了数据库文件增长
1.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间
2.检查你的磁盘分区格式
如果是FAT16,则数据文件最大只能是2G;如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制
3.检查一下你有没有限制数据库文件的大小
企业管理器--右键你的数据库--属性--文件增长限制--如果有限制大小,取消限制
4.检查你的SQL版本,如果你用MSDE,则限制了数据文件最大是2G
5.你也可以为 primary 组添加新的数据文件来解决这个问题
alter database 库名 add file(NAME = 逻辑文件名,FILENAME = c:实际文件名.ndf
另外,请注意TEMPDB的空间占用情况!该临时数据库应该经常清理!

清理日志的方法

当SQL数据库日志文件已满,可以取消日志文件大小限制,当然我们更希望定期对其压缩,清除N天前的无用记录
提供一种压缩日志及数据库文件的方法如下:
1.清空日志
  DUMP  TRANSACTION  库名  WITH  NO_LOG   
2.截断事务日志:
  BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
  企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
   --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
   --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
  也可以用SQL语句来完成
  --收缩数据库
  DBCC SHRINKDATABASE(客户资料)
  --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
  DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
  a.分离数据库:
   企业管理器--服务器--数据库--右键--分离数据库
  b.在我的电脑中删除LOG文件
  c.附加数据库:
   企业管理器--服务器--数据库--右键--附加数据库
  此法将生成新的LOG,大小只有500多K
  或用代码:
  下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
  a.分离
  E X E C sp_detach_db @dbname = pubs
    b.删除日志文件
  c.再附加
  E X E C sp_attach_single_file_db @dbname = pubs,
     @physname = c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf
5.为了以后能自动收缩,做如下设置:
  企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
  --SQL语句设置方式:
  E X E C sp_dboption 数据库名, autoshrink, TRUE
6.如果想以后不让它日志增长得太大
  企业管理器--服务器--右键数据库--属性--事务日志
   --将文件增长限制为xM(x是你允许的最大数据文件大小)
  --SQL语句的设置方式:
  alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
  请按步骤进行,未进行前面的步骤,请不要做后面的步骤
  否则可能损坏你的数据库.
  一般不建议做第4,6两步
  第4步不安全,有可能损坏数据库或丢失数据
  第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.

一种更简单的解决方法:
   1、右建数据库属性窗口--故障还原模型--设为简单
   2、右建数据库所有任务--收缩数据库
   3、右建数据库属性窗口--故障还原模型--设为大容量日志记录

未能为数据库 '*'中得对象'*'分配空间,因文件组'PRIMARY'已满相关推荐

  1. 无法为数据库中的对象分配空间,因为'PRIMARY'文件组已满问题处理方式

    今天公司同事反馈,在手机APP端进行业务操作时,提示无法为数据库中的对象分配空间,因为'PRIMARY'文件组已满,如下所示. 出现这个问题的原因是数据库中设置了Log日志限制了文件增长.设置如下所示 ...

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

    用SQL Server2012,做数据保存时出错,错误信息:无法为数据库'***'中的对象'***'分配空间,因为'PRIMARY'文件组已满.请删除不需要的文件.删除文件组中的对象.将其他文件添加到 ...

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

    文章目录 平台 问题描述 解决问题 1.查看数据库数据文件存放路径 2.查看存放路径的盘是否已满 3.更改数据库设置 平台 sqlserver 2012 问题描述 正常运行的生产系统,今天下午突然发现 ...

  4. 在SQL数据库中搜索对象的不同方法

    This article explores various ways to search for database objects in SQL database such as tables, st ...

  5. openwrt中磁盘未分配空间挂载

    openwrt中磁盘未分配空间挂载 lsblk 查看磁盘信息命令 opkg install cfdisk 安装磁盘管理图形化管理界面 cfdisk 打开管理工具 新建磁盘分区: 找到free磁盘,点击 ...

  6. 已解决-Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足。请关闭一些目前没有使用的程序或者释放部分硬盘空间(如果硬盘几乎已满),然后重试。

    问题: 在Windows7或Windows10上面用Windows照片查看器打开图片的时候,无法打开.提示: "Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足.请关 ...

  7. 使用PHP从Access数据库中提取对象,第2部分

    In the first part of this series we learned how to extract packaged objects from a legacy Access dat ...

  8. asp.net学习笔记·将数据库中的数据保存在EXCEL文件中

    提取数据库中的数据,将其保存在EXCEL文件中,并提供下载. 在一般处理程序中将数据库数据保存在EXCEL文件中的代码 using System; using System.Collections.G ...

  9. 将Sql数据库中的表导出到指定文件

    2.导出数据表txt文件到指定目录:select * from table_name into outfile  '指定目录'; 3.加载指定文件到数据表中:load data local infil ...

最新文章

  1. bzoj2427: [HAOI2010]软件安装
  2. Java 打印菱形星块
  3. MySQL - mysqldump多种方式实现数据迁移
  4. Slony-I双机备份
  5. 一个较完整的关键字过滤解决方案(上)
  6. qt stylesheet 隐藏_Qt QDockWidget实现鼠标移出自动隐藏
  7. 小米手机如何关闭悬浮球
  8. Memcache的最佳实践方案
  9. 函数指针作为函数參数,实现冒泡排序的升序排序和降序排序
  10. java 注释器_注释和注释处理器入门指南
  11. 网站优化工具-YUI Compressor
  12. DirectX 9的安装与配置
  13. 漫谈可视化Prefuse(五)---一款属于我自己的可视化工具
  14. apache如何支持php,apache支持php吗
  15. Actor模型的本质:究竟是要解决什么问题
  16. iphone与android传文件,安卓与苹果手机之间互传文件的方法教程
  17. 用python实现简单五子棋游戏的练习过程
  18. 怎么搭建可视化BI数据平台(下)
  19. php 1为false,false是1还是0
  20. Pregel: A System for Large-Scale Graph Processing

热门文章

  1. stm32官方例程在哪找_正点原子Linux第十一章模仿STM32驱动开发格式实验
  2. 如何查linux系统安装时间查询,Linux系统怎样查询当前的系统时间
  3. Java设计模式(五):单例设计模式
  4. html传值方式有哪几种,关于html页面间传值的几种方法
  5. centos中ifcfg-eth0配置ip后,重启network服务提示地址已被使用
  6. springcloud 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
  7. easyui 传递参数报错(错误:uncaught SyntaxError: Unexpected identifier)
  8. Linux命令之---rm
  9. jsp+servlet+mysql增删改查
  10. 将CSS放头部,JS放底部,可以提高页面的性能的原因