注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤,否则可能损坏数据库,
以库名www为例, 若不压缩库, 数据库的文件不会减小。
压缩日志文件
清空日志
1 2 3 4
| # 清空日志 DUMP TRANSACTION www WITH NO_LOG # 截断事务日志 BACKUP LOG www WITH NO_LOG
|
收缩数据库
图形界面
企业管理器->右键你要收缩的数据库->所有任务->收缩数据库->收缩文件(XXM: 允许收缩到的文件M数)
- 选择日志文件->选择收缩至XXM,确定
- 选择数据文件->选择收缩至XXM,确定
如上操作www库后,几G的日志文件变为1M大小:)
SQL语句
1 2 3
| DBCC SHRINKDATABASE www DBCC SHRINKFILE(1) #1:通过以下语句查询到的文件号 select * from sysfiles
|
分离旧的大日志文件,创建新的最小化的日志文件
查询分析器界面操作
- 分离数据库:企业管理器->服务器->数据库->右键->分离数据库
- 在我的电脑中删除LOG文件
- 附加数据库:企业管理器->服务器->数据库->右键->附加数据库
如上操作后,生成新的LOG文件更小。
SQL语句
分离www日志,将www中的一个文件附加到当前服务器。
1 2 3 4
| # 分离,并删除日志文件 EXEC sp_detach_db @dbname='www' # 附加库,并创建新的日志文件 EXEC sp_attach_single_file_db @dbname='www', @physname='c:\\path\to\www.mdf'
|
库收缩和日志增长的自动设置
库自动压缩设置
1 2 3 4
| # 界面操作 企业管理器->服务器->右键数据库->属性->选项->选择"自动收缩" # SQL语句 EXEC sp_dboption 库名, autoshrink, TRUE
|
日志增长限制设置
1 2 3 4
| # 界面操作 企业管理器->服务器->右键数据库->属性->事务日志,将文件增长限制为(xx)M大小。 # SQL语句 alter database 库名 modify file (name=原逻辑文件名, maxsize=10)
|