1. 收缩数据库方法
1) 在查询分析器中执行如下代码来查看日志信息:
DBCC loginfo('MyDatabase')
可以看到status=0的日志,代表已经备份到磁盘的日志文件;而status=2的日志还没有备份。当收缩日志文件时,收缩掉的空间其实就是 status=0的空间,如果日志物理文件无法减小,这里一定能看到非常多status=2的记录。
2) 使用下面指令清除status=2的记录
sp_removedbreplication 'MyDatabase'
3) 之后对数据库日志文件进行收缩
USE [master]
GO
ALTER DATABASE MyDatabase SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE MyDatabase SET RECOVERY SIMPLE
GO
USE [MyDatabase]
GO
DBCC SHRINKFILE(N'MyDatabase_Log' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE MyDatabase SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE MyDatabase SET RECOVERY FULL --还原为完全模式
GO
2. 查看数据库及数据日志的可用空间
SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sys.MyDatabase_files ;
3. 查看所有数据的的日志文件大小和日志文件空间使用情况
DBCC SQLPERF(LOGSPACE)