今天遇到"无法为数据库 'XXXX' 中的对象 'XXXXX' 分配空间,因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象"在论坛搜索了一下,有好多跟我类似问题,但解决方案都不能解决我的问题
1、SqlServer 2008企业版 现在数据文件已经110G,日志文件每天清除,保持在800M左右。
2、数据文件所在磁盘共390G,还有可用空间170G。
3、数据文件增加类型为12%,不限制增长,日志为2%,不限制增长请大家考虑一下,还有哪种方案可以解决我的问题sqlserver数据库 PRIMARY 文件组已满
1、SqlServer 2008企业版 现在数据文件已经110G,日志文件每天清除,保持在800M左右。
2、数据文件所在磁盘共390G,还有可用空间170G。
3、数据文件增加类型为12%,不限制增长,日志为2%,不限制增长请大家考虑一下,还有哪种方案可以解决我的问题sqlserver数据库 PRIMARY 文件组已满
解决方案 »
- 求高手帮菜鸟写一SQL语句,急~
- 这句简单的sql语句太耗时了,帮忙优化一下。。。
- sql数据库恢复
- sqlserver.exe占用大量系统内存无法释放的问题
- 存储过程的含字符型参数的问题
- 关于第二次安装sql server2005的问题,急!!
- 请问大侠,如何在企业管理器中把用word编辑的文档、表格存入text字段,并如实显示出来。
- Windows 2003 Server 上安装了 SQL 2000,客户端为何连接不上?
- 数据库从Access2000升迁至SQL SERVER7.0之后出现的问题
- 这种很复杂的sql语句怎么写?高手进,100分
- reporting services报表怎么实现双层圆饼图
- 本机sql2008的数据,如何导入到服务上sql2005的数据库
2、可以通过新建文件组到别的盘,然后通过对大表重建聚集索引,重建同时指定新文件组的方式来移动数据到别的盘,然后进行压缩(2008才有)、重建聚集索引、收缩文件等方法减少空间。
3、12%貌似多了,你的库大小不应该用百分比,1~500M每次比较好。
1.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间。
2.检查你的磁盘分区格式:如果是FAT16,则数据文件最大只能是2G,如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制。
3.检查一下你有没有限制数据库文件的大小:
企业管理器--右键你的数据库--属性--文件增长限制--如果有限制大小,取消限制。
4.检查你的SQL版本,如果你用MSDE,则限制了数据文件最大是2G。
5.你也可以为 primary 组添加新的数据文件来解决这个问题
alter database 库名 add file(NAME = 逻辑文件名,FILENAME = 'c:实际文件名.ndf'。(其实通过企业管理器选择数据库"属性"》数据库文件更方便。
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、如果盘没有满,那么可能是你的文件组没有设置自动增长,也就是上面的is_percent_growth为0,那么需要设置:use master--你的数据库名称
go--看看你的primary组里的文件select ds.name,
df.physical_name, --主文件组的物理文件的路径
--打开我的电脑,查看文件所在盘,是否磁盘已满
df.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'
--物理文件所对应的逻辑名称,上面的语句就可以查询到
ALTER DATABASE 数据库名称
MODIFY FILE ( NAME = N'物理文件所对应的逻辑名称', FILEGROWTH = 10%)