转自
http://blog.csdn.net/liuhuayang/article/details/5771208
数据库服务器磁盘空间是一天比一天少,已经加了一块500G的硬盘了,可RAID5下也没有起到什么太大的作用。 看看能不能从数据库中要回点空间。
先看看未分配的数据库空间有多少
1 使用 sp_spaceused 命令查看当前unallocated space 的空间, 还真的不少
那既然有不少的未分配空间,开始收缩数据库好了。
1 在保证数据库正常备份的情况下,DUMP日志
2005 数据库中可以使用
use [目标数据库]
go
backup log [目标数据库] with no_log
go
dbcc shrinkdatabase ('目标数据库', 20, truncateonly)
20的意思是数据库收缩后的数据库文件中所需的剩余可用空间百分比。
结果出来了,
EstimatedPages
数据库引擎估计文件能够收缩到的 8 KB 页数。
EstimatedPages | 数据库引擎估计文件能够收缩到的 8 KB 页数 |
EstimatedPages | 数据库引擎估计文件能够收缩到的 8 KB 页数 |
任务完成。
分析: 在2005上可以使用的命令已经在sql server 2008上不能使用了
sql server 2008 不在支持 backup log with no_log ,
需要替换为
USE [master]
GO
ALTER DATABASE [目标数据库] SET RECOVERY SIMPLE WITH NO_WAIT
GO
DBCC shrinkdatabase ('目标数据库', truncateonly)
USE [master]
GO
ALTER DATABASE [目标数据库] SET RECOVERY FULL WITH NO_WAIT
GO