方法一:

Use 数据库名

Select NAME,size From sys.database_files

ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT

ALTER DATABASE 数据库名 SET RECOVERY SIMPLE

USE 数据库名

DBCC SHRINKFILE(N’日志文件名’,0,TRUNCATEONLY)

ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT

ALTER DATABASE 数据库名 SET RECOVERY FULL

方法二:

backup log [你的数据库名称] WITH NO_LOG
backup log [你的数据库名称] WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE([你的数据库名称])

说明:

backup log 指定仅备份事务日志。该日志是从上一次成功执行的 LOG 备份到当前日志的末尾。备份日志之后,可能会截断事务复制或活动事务不再需要的空间。

NO_LOG | TRUNCATE_ONLY

通过放弃活动日志以外的所有日志,无需备份复制日志即可删除不活动的日志部分,并截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG 和 TRUNCATE_ONLY 是同义的。

这里有个问题,什么是活动日志,微软的解释是:

日志文件中从必须存在以确保数据库范围内成功回滚的第一条日志记录到最后写入的日志记录之间的部分称为日志的活动部分,即“活动日志”。这是进行数据库完整恢复所需的日志部分。永远不能截断活动日志的任何部分。

DBCC SHRINKDATABASE 收缩特定数据库的所有数据和日志文件,这个是最简单的方法了,也可以使用。

不过有个问题是:

在一些对数据安全性要求不高,或者备份频率很高的情况下,使用直接截断日志的方法不如使用 简单恢复模式。微软说:在简单恢复模式下,在每个数据备份后事务日志将自动截断,也就是说,不活动的日志将被删除。因为经常会发生日志截断,所以没有事务日志备份。这简化了备份和还原。但是,没有事务日志备份,便不可能恢复到失败的时间点。

也就是说:如果你不会使用日志来恢复数据(我自己不会用,我使用redgate 定时高频率备份),那么简单模式就是最佳的方案。

收缩SQL Server 数据库的几种方法的更多相关文章

  1. SQL server分页的四种方法

    SQL server分页的四种方法 1.三重循环: 2.利用max(主键); 3.利用row_number关键字: 4.offset/fetch next关键字 方法一:三重循环思路  先取前20页, ...

  2. C# 连接SQL Server数据库的几种方式--server+data source等方式

    如何使用Connection对象连接数据库? 对于不同的.NET数据提供者,ADO.NET采用不同的Connection对象连接数据库.这些Connection对象为我们屏蔽了具体的实现细节,并提供了 ...

  3. 收缩sql server数据库日志

    项目中,可能数据库(sql server数据库)日志太多,占了很多磁盘空间,可以通过收缩数据库日志,减少日志文件大小. 下面以Northwind数据库为例: 1.把数据库的恢复模式设置为“简单模式”: ...

  4. SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式(转载)

    SQL Server数据库有三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式: 1.Simple 简单恢复模式, Simple模式的旧称叫”Checkpoint with truncate ...

  5. SQL Server启动的几种方法

    SQL Server 启动有以下几种方法: (1)在Control Panel——Administrative Tools——Services,找到SQL Server (XXX)进行启动. 其中XX ...

  6. SQL Server 备份的 8 种方法。

    方法 1. 完整备份 方法 2. 差异备份 方法 3. 部分备份(备份数据库的read_write部分) 方法 4. 文件备份 方法 5. 文件组备份 方法 6. 只复制备份 方法 7. 日志备份 - ...

  7. sql server数据库可疑状态解决方法

    前段时间客户数据服务器断电,开机后发现数据库状态标记为可疑,可能是断电引起的数据库日志文件损坏,修复方法如下: 只有mdf文件,重建日志: --注:example为测试用数据库,相应的Example_ ...

  8. SQL server分页的四种方法(算很全面了)

      这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本.下面都用pageIndex表示页数,pageSize表示一页包含的记录.并且下面涉及到具体例子的,设定查询第2 ...

  9. 收缩SQL Server数据库文件

    收缩整个数据库 DBCC SHRINKDATABASE (dbName) 收缩单个文件DBCC SHRINKFILE (FileName) 查找所有的文件名称USE dbNameEXEC sp_hel ...

随机推荐

  1. 配置Struts.xml DTD文件报错

    报错信息为: The content of element type "struts" must match "((package|include|bean|  cons ...

  2. sellsa

    我看见天空很蓝 就像你在我身边的温暖 生命有太多遗憾 人越成长越觉得孤单 我很想飞 多远都不会累 才明白爱得越深心就会越痛 我只想飞 在我的天空飞 我知道你会在我身边 回忆的画面 记录的语言 爱始终是 ...

  3. 设置MYECLIPSE的自动补全

    http://jingyan.baidu.com/article/d169e1869caf1e436611d8db.html

  4. iframe跨域cookie问题

    今天在项目里面遇到了iframe跨域不能写cookie的问题.应用场景是这样的:有A和B两个业务,A要通过iframe的方式嵌入B,但是在ie下A不能通过写cookie的方式记录信息,在firefox ...

  5. 自己写的 限制文本框TEdit中只能输入数字

    procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char); begin , #]) then begin Key := #; end ...

  6. iOS图片加载到内存中占用内存情况

    我的测试结果: 图片占用内存   图片尺寸           .png文件大小 1MB              512*512          316KB 4MB              10 ...

  7. UIViewController中addChildViewController的作用

    当在一个ViewController中添加一个子ViewController时,UI部分可以直接通过addSubView的方法添加,例如: 在一个ViewControllerA中添加ViewContr ...

  8. ruby 简介

    Ruby 是一个注重均衡的语言,它的发明者松本行弘 Yukihiro “Matz” Matsumoto,混合了他喜欢的语言(Perl. Smalltalk. Eiffel. Ada 和 Lisp ) ...

  9. DOM元素querySelectorAll可能让你意外的特性表现

    一.时间紧急,废话少说 本文所在的页面藏匿了下面这些代码: <img id="outside"> <div id="my-id"> &l ...

  10. gridview填充剩下的空间

    设置不要在控间中滑动: public class DeliverGridView extends GridView { public DeliverGridView(Context context, ...