SQL Server清理数据库,事务日志?

时间:2011-03-10 16:28:24

标签: sql-server backup

我有一个SQL Server 2005数据库,我从中删除了几个大型表到存档数据库。原始数据库应该大大缩小。

要创建存档数据库,我打算恢复原始数据的副本,然后从中删除当前表。

这是最好的方法吗?我应该怎么做日志/收缩以确保最终尺寸尽可能小?存档数据库可能会增长一点,但原始数据库继续正常增长。

3 个答案:

答案 0 :(得分:3)

这似乎是一种可行的方法。将恢复模型设置为simple,然后截断并收缩日志文件。这将使它尽可能小。

请参阅here以获得更好的方法。

注意:这假设您不希望或不需要将存档数据库恢复到特定时间点。原因是简单恢复模型不会将事务保存在事务日志中。因此,当您的存档数据库“稍微改变”时(如您所说),它不会将事务保存到日志中。

答案 1 :(得分:1)

我使用这个脚本,这在开发中非常有用。

BACKUP log [CustomerServiceSystem] with truncate_only
go
DBCC SHRINKDATABASE ([CustomerServiceSystem], 10, TRUNCATEONLY)
go

答案 2 :(得分:0)

  1. 重新设计db
  2. 尝试以下sql命令之一:

  3. 或者右键单击进入Sql Server Management Studio对象资源管理器的数据库,然后选择Tasks-Shrink。