SQL Server 2008下日志清理方法

(2011-07-14 10:30:45)

标签:

it

 

每次看到暴涨的数据库日志就有些头大,于是乱搜一通找个办法把日志干掉,下次又头大,又搜半天,于是还是写篇blog,不用乱找了。

1.将数据库设置成 简单 模式

选择要收缩的数据库,点右键 属性->选项,选择 简单模式

2.选择任务->收缩->文件

3.选择日志

或者用如下语句

代码

USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE
GO
USE DNName 
GO
DBCC SHRINKFILE (N'LogFileName' , 0,TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL
GO
 
 
 
 
 

SQL Server 2000要清理日志使用的是dump语句,但是在SQL Server2008里,这个语句不管用了,如果日志文件很大,比如超过1G,就需要截断一下日志文件以加快sqlserver的运行速度,在SQL Server2008里,方法改为:

有数据库 xxdb 在 SQL Server 2008 下,日志文件已经超过1G。

以往使用BACKUP语句-BACKUP LOG xxdb WITH NO_LOG 已经失效,在查阅 MSDN 之后发现 MS 提供的标准截断日志语句已经变为了 “BACKUP LOG 语句不指定 WITH COPY_ONLY”

使用语句 BACKUP LOG xxdb to disk='x:\work\1.bak' 成功将日志文件备份,并截断日志文件。这里x:代表你想要备份文件的盘符。

然后使用 DBCC SHRINKFILE (xxdb_log,10) 收缩日志文件到 10M

总结:

完整的收缩日志文件的 T-SQL 语句:

BACKUP LOG xxdb to disk='x:\work\1.bak'
DBCC SHRINKFILE (xxdb_log,10)
GO

--

BACKUP LOG <db_name> to disk=<'backupfilename'>
DBCC SHRINKFILE (<log_filename>,10)
GO

里面的x:\work是随意设置的。当然也可以收缩到比如5M或1M。

数据库的数据是极其宝贵的,作为管理员的一项主要工作就是对数据库按计划进行备份,从而在性能和数据安全找个平衡。换句话说备份的目的就是防范可能的硬件故障,自然灾害或数据被非法篡改。
备份可以分为完整备份,差异备份和事物日志备份。
完整备份备份整个数据库,包含数据库文件,这些文件的地址及事物日志中的从备份开始时记录的日志顺序号到备份结束时的日志顺序号。完整备份是其他备份的基础,没有完整备份将无法进行差异备份和事物日志备份。
步骤:打开SQL Server Management Studio,展开服务器文件夹下的数据库文件夹
右击要备份的数据库,选择“属性”选项
把“选项”页面上的“恢复模式”改为“完整”,这步操作主要是为了保留日志,为接下来的事物日志备份做准备。
右击需要做备份的数据库,选择“任务”、“备份”,在“备份数据库”对话框中选择“备份类型”为“完整”。
选择备份设备
在“选项”页面上选择“覆盖所有的现有备份集”,从而初始化崭新的设备或覆盖现有的设备
建议选取“完成后验证备份”来核对实际数据库与备份副本以保证一致性
单击“确定”开始备份
备份完成后可以查看一下,打开SQL Server Management Studio下的“对象资源管理器”,展开“服务器对象”下的“备份设备”,右击设备选择“属性”选项,在“媒体内容”页面上看到我们作的备份
差异备份记录自上一个完整备份后数据库发生的所有变化,与事物日志备份的区别就是差异备份始终以上一个完整备份为起点,而事物日志备份是以上一次备份为起点的。当执行差异备份时SQL Server读取上一次完整备份的最后日志顺序号,并找出自上次完整备份后发生变化的页面,并对发生变化所在页面的整个盘区(Extent)进行备份。
步骤:打开SQL Server Management Studio,展开服务器文件夹下的数据库文件夹
右击需要做备份的数据库,选择“任务”、“备份”,在“备份数据库”对话框中选择“备份类型”为“差异”。
选择备份设备
在“选项”页面上选择“追加到现有备份集”,不覆盖现有的完整备份,不要选择“覆盖所有的现有备份集”从而避免覆盖现有的完整备份。
建议选取“完成后验证备份”来核对实际数据库与备份副本以保证一致性
单击“确定”开始备份
最后一种是事物日志备份,事物日志备份依赖于完整备份但并不备份数据库本身,只备份事物日志中自上一个事物日志备份以来发生变化的部分。
关于事物日志再多提一点,在数据库使用完全或批量日志恢复模型时,事物日志备份是唯一能从事物日志中清除旧事物日志的方式,当数据库使用简单恢复模型时完整备份与差异备份才能清除事物日志。
步骤:打开SQL Server Management Studio,展开服务器文件夹下的数据库文件夹
右击需要做备份的数据库,选择“任务”、“备份”,在“备份数据库”对话框中选择“备份类型”为“事物日志”。
选择备份设备
在“选项”页面上选择“追加到现有备份集”,不覆盖现有的完整备份,不要选择“覆盖所有的现有备份集”从而避免覆盖现有的完整备份。
建议选取“完成后验证备份”来核对实际数据库与备份副本以保证一致性
单击“确定”开始备份
常见的备份主要是以上三种,除此以外,在大型数据库中还有一种选择:文件组备份,每次只从数据库中备份一小部分,在本文不对文件组备份作讨论。
备份策略的设计
相比较几种备份方式,用一句话形容就是存在即合理,每种备份方式都有其优缺点和适应范围,要根据实际工作具体考虑
纯完整备份优点是恢复过程是所有策略中最快的,相对的,它的备份过程也是所有策略中最慢的,另外,纯完整备份无法清除事物日志(使用完全或批量恢复模型且保留时间点恢复功能),作为补充可以使用TRUNCATE_ONLY从句执行一个事物日志备份,仅清空而不备份事物日志。
完整&差异备份优点是恢复过程是所有策略中较快的,同时它的备份过程也不是所有策略中最慢的,此外,完整&差异备份同样无法清除事物日志(使用完全或批量恢复模型且保留时间点恢复功能),可以使用TRUNCATE_ONLY从句执行一个事物日志备份,仅清空而不备份事物日志。
完整&事物日志备份优点是备份过程比完整&差异备份快但它的恢复是最麻烦的,完整&事物日志备份能够清除事物日志,是任何一种数据库备份策略所必不可缺的。

SQL Server 2008下日志清理方法 2的更多相关文章

  1. SQL Server 2008下日志清理方法

    1.将数据库设置成 简单 模式 选择要收缩的数据库,点右键 属性->选项,选择 简单模式 2.选择任务->收缩->文件 3.选择日志

  2. SQL Server 2008 收缩日志 清空删除大日志文件 转载

    SQL Server 2008 收缩日志 清空删除大日志文件 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:(SQL2005)Ba ...

  3. SQL Server 2008收缩日志文件--dbcc shrinkfile参数说明

    原文:SQL Server 2008收缩日志文件--dbcc shrinkfile参数说明 DBCC SHRINKFILE 收缩相关数据库的指定数据文件或日志文件大小. 语法 DBCC SHRINKF ...

  4. 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程

    一.回顾早期的SQL SERVER版本:早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大.到SQL Server 2005时代,代码高亮.SQL优化等功能逐渐加强, ...

  5. SQL Server 2008无日志文件附加数据库

    1.新建一个同名数据库. 2.停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间.) 3.启动 ...

  6. SQL Server 2008 收缩日志

    如果SQL SERVER 日志过大,比如,达到了几十个G,想一次性收缩的,直接执行下面命令即可: USE DATABASENAME; GO – Truncate the log by changing ...

  7. 清理SharePoint 2010的SQL Server 2008 R2日志数据库的方法!

    //来源:http://www.cnblogs.com/nbpowerboy/p/3380079.html 公司用SharePoint 2010已有三年多的时间了,上BPM项目也有2年多的时间,之前供 ...

  8. 清理SharePoint 2010的SQL Server 2008 R2日志数据库的方法

    最近发现Sharepoint的数据库磁盘经常满,导致无法保存数据,经检查发现数据磁盘的所有日志文件远远大于数据文件,因此需要收缩日志文件,一开始利用图形化的收缩文件方式,只有收缩数据文件的大小,对于日 ...

  9. 备份数据库SQL Server 2008下实测

    下面的存储过程适用: 1.一次想备份多个数据库. 2.只需要一步操作,在有存储过程的条件下. 3.可以根据自己的需要修改存储过程. /*----------------------------- De ...

随机推荐

  1. openfire + spark 展示组织机构(客户端)

    在spark 加一个插件用于展示组织机构, 参考了好多人的代码 插件主类增加一个 TAB用于展示机构树 package com.salesoa.orgtree; import java.net.URL ...

  2. Ubuntu 10.04下如何查看分区的UUID

    Ubuntu 10.04通过UUID来区分各个磁盘分区,在/etc/fstab配置文件中就是通过UUID来挂载分区的.UUID,英文全称为:Universally Unique Identifier. ...

  3. java测试Unicode编码以及数组的运用(初学篇)

    /*第二章第四小题*/ /* * (1)编写一个应用程序,给出汉字“你” ,“我”,“他”在Unicode 表中的位置 * (2)编写一个java应用程序,输出全部的希腊字母 */ public cl ...

  4. 【C++】const成员函数

    形式: 在成员函数后面加上const限定词,表示不会修改对象内容. 例如Circle类: class Circle { double r; public: Circle(double newr) { ...

  5. Linux下发布javaWeb项目,配置环境变量,tomcat,和安装mysql数据库

    如果不懂,可以联系微博本人:QQ:3111901846 (原创) 1.配置java中jdk 注意一切操作,都是在root这个目录下进行的,不要选择其他目录,不然会出现一些小问题的 第一步: 你需要一个 ...

  6. $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别

    当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,会发生 ready 事件.ready() 函数仅能用于当前文档,因此无需选择器.所以document选择器可以不要,那么就可以 ...

  7. python selenium +autoit实现文件上传 --实践

    upload.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...

  8. Android: ListView数据的分批加载 以及 Handle 总结

    这是效果图: activity_main.xml 01 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ ...

  9. [转] 禁止ultraedit自动检查更新的方法

    菜单栏: 高级->配置->应用程序布局->其他 取消勾选“自动检查更新”   (原文地址:http://blog.csdn.net/redeyerabbit/article/deta ...

  10. 《Effective Java》读书笔记三(类和接口)

    No13 使类和成员的可访问性最小化 要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.模块之间只通过它们的API进行通信,一个 ...