收缩数据库-事务日志已满和'PRIMARY' 文件组已满的解决方案(转)
方法1: MSSQL2005日志的收缩
1.右键在清除日志的数据库,如“TestDB”,点击[新建查询(Q)]
2.输入以下SQL语句,其中“TestDB”是数据库名称
DUMP TRANSACTION TestDB
WITH
NO_LOG3.执行该SQL,成功后继续以下操作
4.右键该数据库节点,点击[任务(T)] -> [收缩(S)] -> [文件(F)]
5.在弹出的“收缩文件”对话框中,将“文件类型(T)”选为“日志”,将“收缩操作”选中“在释放未使用的空间前重新组织页(O)”
6.在“将文件收缩到(K)”文本框中输入后面提示的最小大小的数值,点击[确定]即可。
方法2:
--1.清空日志
DUMP TRANSACTION oa WITH NO_LOG
--2.截断事务日志:
BACKUP LOG oa WITH NO_LOG
--3.收缩数据库文件(如果不压缩,数据库的文件不会减小
-- 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
-- 也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(oa)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)