SqlServer压缩数据库日志
Posted himmy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer压缩数据库日志相关的知识,希望对你有一定的参考价值。
declare @dbName varchar(20)--数据库名称 declare @dbNamelog varchar(20)--数据库日志文件名称 --替换成自己的文件名称 select @dbName=\'dbname\' select @dbNamelog=\'dbname_log\' declare @sql nvarchar(2000) set @sql=\' USE \'+@dbName+\' ALTER DATABASE \'+@dbName+\' SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE \'+@dbName+\' SET RECOVERY SIMPLE USE \'+@dbName+\' DBCC SHRINKFILE (N\'\'\'+@dbNamelog+\'\'\' , 11, TRUNCATEONLY) USE \'+@dbName+\' ALTER DATABASE \'+@dbName+\' SET RECOVERY FULL WITH NO_WAIT ALTER DATABASE \'+@dbName+\' SET RECOVERY FULL SELECT file_id, name FROM sys.database_files\' exec(@sql)
主要语法如下:
DBCC SHRINKFILE
( { file_name | file_id }
{ [ ,target_size ]
| [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ]
}
)
参数
file_name
是已收缩文件的逻辑名称。文件名必须符合标识符的规则。
file_id
是要收缩的文件的标识 (ID) 号。若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles。
target_size
是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,DBCC SHRINKFILE 将文件大小减少到默认文件大小。
EMPTYFILE
将所有数据从指定文件中迁移到同一文件组中的其它文件
NOTRUNCATE
导致将释放的文件空间保留在文件中。
TRUNCATEONLY
导致文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次分配的大小,从而减少文件大小,而不移动任何数据。不尝试将行重新定位到未分配页。如果使用 TRUNCATEONLY,将忽略 target_size
转至:https://www.cnblogs.com/wangqiang3311/p/7687073.html
以上是关于SqlServer压缩数据库日志的主要内容,如果未能解决你的问题,请参考以下文章