SQLSERVER2008R2数据库日志文件太大,如何进行清理

数据库日志文件太大,有200多G,磁盘空间只有7.34M。

清理方法是:

1、将恢复模式改成简单

2、右键选择收缩,选中文件,然后选择日志文件,再点确定。

3、将恢复模式改成完全

注:

SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。

  1. Simple 简单恢复模式,

    Simple模式的旧称叫”Checkpoint with truncate log“,其实这个名字更形象,在Simple模式下,SQL Server会在每次checkpoint或backup之后自动截断log,也就是丢弃所有的inactive log records,仅保留用于实例启动时自动发生的instance recovery所需的少量log,这样做的好处是log文件非常小,不需要DBA去维护、备份log,但坏处也是显而易见的,就是一旦数据库出现异常,需要恢复时,最多只能恢复到上一次的备份,无法恢复到最近可用状态,因为log丢失了。
    Simple模式主要用于非critical的业务,比如开发库和测试库,但是道富这边的SQL Server(即使是生产库)大都采用Simple模式,是因为这边的SQL Server大都用于非critical的业务(critical的数据库大都采用Oracle和DB2),可以忍受少于1天的数据丢失(我们的job每天都会定时备份全库)。

  2. Full 完整恢复模式,

    和Simple模式相反,Full模式的旧称叫”Checkpoint without truncate log“,也就是SQL Server不主动截断log,只有备份log之后,才可以截断log,否则log文件会一直增大,直到撑爆硬盘,因此需要部署一个job定时备份log。Full的好处是可以做point-in-time恢复,最大限度的保证数据不丢失,一般用于critical的业务环境里。缺点就是DBA需要维护log,增加人员成本(其实也就是多了定时备份log这项工作而已)。

  3. Bulk-logged 大容量日志恢复

    Bulk-logged模式和full模式类似,唯一的不同是针对以下Bulk操作,会产生尽量少的log:
    1) Bulk load operations (bcp and BULK INSERT).
    2) SELECT INTO.
    3) Create/drop/rebuild index
    众所周知,通常bulk操作会产生大量的log,对SQL Server的性能有较大影响,bulk-logged模式的作用就在于降低这种性能影响,并防止log文件过分增长,但是它的问题是无法point-in-time恢复到包含bulk-logged record的这段时间。
    Bulk-logged模式的最佳实践方案是在做bulk操作之前切换到bulk-logged,在bulk操作结束之后马上切换回full模式。

数据库的数据是极其宝贵的,作为管理员的一项主要工作就是对数据库按计划进行备份,从而在性能和数据安全找个平衡。换句话说备份的目的就是防范可能的硬件故障,自然灾害或数据被非法篡改。

备份可以分为完整备份,差异备份和事物日志备份。

完整备份备份整个数据库,包含数据库文件,这些文件的地址及事物日志中的从备份开始时记录的日志顺序号到备份结束时的日志顺序号。完整备份是其他备份的基础,没有完整备份将无法进行差异备份和事物日志备份。

步骤:打开SQL Server Management Studio,展开服务器文件夹下的数据库文件夹

右击要备份的数据库,选择“属性”选项

把“选项”页面上的“恢复模式”改为“完整”,这步操作主要是为了保留日志,为接下来的事物日志备份做准备。

右击需要做备份的数据库,选择“任务”、“备份”,在“备份数据库”对话框中选择“备份类型”为“完整”。

选择备份设备

在“选项”页面上选择“覆盖所有的现有备份集”,从而初始化崭新的设备或覆盖现有的设备

建议选取“完成后验证备份”来核对实际数据库与备份副本以保证一致性

单击“确定”开始备份

备份完成后可以查看一下,打开SQL Server Management Studio下的“对象资源管理器”,展开“服务器对象”下的“备份设备”,右击设备选择“属性”选项,在“媒体内容”页面上看到我们作的备份

差异备份记录自上一个完整备份后数据库发生的所有变化,与事物日志备份的区别就是差异备份始终以上一个完整备份为起点,而事物日志备份是以上一次备份为起点的。当执行差异备份时SQL Server读取上一次完整备份的最后日志顺序号,并找出自上次完整备份后发生变化的页面,并对发生变化所在页面的整个盘区(Extent)进行备份。

步骤:打开SQL Server Management Studio,展开服务器文件夹下的数据库文件夹

右击需要做备份的数据库,选择“任务”、“备份”,在“备份数据库”对话框中选择“备份类型”为“差异”。

选择备份设备

在“选项”页面上选择“追加到现有备份集”,不覆盖现有的完整备份,不要选择“覆盖所有的现有备份集”从而避免覆盖现有的完整备份。

建议选取“完成后验证备份”来核对实际数据库与备份副本以保证一致性

单击“确定”开始备份

最后一种是事物日志备份,事物日志备份依赖于完整备份但并不备份数据库本身,只备份事物日志中自上一个事物日志备份以来发生变化的部分。

关于事物日志再多提一点,在数据库使用完全或批量日志恢复模型时,事物日志备份是唯一能从事物日志中清除旧事物日志的方式,当数据库使用简单恢复模型时完整备份与差异备份才能清除事物日志。

步骤:打开SQL Server Management Studio,展开服务器文件夹下的数据库文件夹

右击需要做备份的数据库,选择“任务”、“备份”,在“备份数据库”对话框中选择“备份类型”为“事物日志”。

选择备份设备

在“选项”页面上选择“追加到现有备份集”,不覆盖现有的完整备份,不要选择“覆盖所有的现有备份集”从而避免覆盖现有的完整备份。

建议选取“完成后验证备份”来核对实际数据库与备份副本以保证一致性

单击“确定”开始备份

常见的备份主要是以上三种,除此以外,在大型数据库中还有一种选择:文件组备份,每次只从数据库中备份一小部分,在本文不对文件组备份作讨论。

备份策略的设计

相比较几种备份方式,用一句话形容就是存在即合理,每种备份方式都有其优缺点和适应范围,要根据实际工作具体考虑

纯完整备份优点是恢复过程是所有策略中最快的,相对的,它的备份过程也是所有策略中最慢的,另外,纯完整备份无法清除事物日志(使用完全或批量恢复模型且保留时间点恢复功能),作为补充可以使用TRUNCATE_ONLY从句执行一个事物日志备份,仅清空而不备份事物日志。

完整&差异备份优点是恢复过程是所有策略中较快的,同时它的备份过程也不是所有策略中最慢的,此外,完整&差异备份同样无法清除事物日志(使用完全或批量恢复模型且保留时间点恢复功能),可以使用TRUNCATE_ONLY从句执行一个事物日志备份,仅清空而不备份事物日志。

完整&事物日志备份优点是备份过程比完整&差异备份快但它的恢复是最麻烦的,完整&事物日志备份能够清除事物日志,是任何一种数据库备份策略所必不可缺的。

更多相关文章
  • 1.SQL Server 2005 数据库日志文件过大的处理方法 (一)数据库日志文件的用作 SQL Server 使用各数据库的事务日志来恢复事务.事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录.事务日志记录每个事务的开始.它记录了在每个事务期间,对数据的更改及撤消所做更改(以 ...
  • 生产库监听日志文件太大(达到4G多),发现oracle停止写监听日志,检查参数log_file,log_directory,log_status 均正常,数据库运行也正常. 经确认确实为监听日志过大引起,将监听停止掉,重命名日志文件,重启监听服务,发现新建了日志,连接测试,OK. 日志路径在:$OR ...
  • 管理apache服务器有些年头,虽然最近几年被nginx抢了不少风头,但我依然钟爱apache. 喜欢它强劲的并发处理能力,以及forker与worker模式间自由选择的快感,哈哈. 熟悉linux下apache运维的朋友,多少都会遇到过apache日志文件太大的问题,网站刚上线时不会在意到这个问题 ...
  • 公司金蝶服务器由于sql日志文件过大,已经超过2G,当备份金蝶帐套时出现"由于日志文件过大超过2G,要继续备份时,备份的数据还原时可能会损失数据,请联系数据库管理员进行数据库日志收缩".解决方法一:进行收缩数据库日志文件后,问题依然存在:解决方法二:进入sql安装目录找到DATA ...
  • sql点滴39—解决数据库日志文件过大的问题
    随着数据库使用时间增长,日志文件也在不停的增大,这里介绍几种方法减小这个文件的方法. 1.直接删除log文件 分离数据库.分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离,如下图 将日志文件和数据文件复制粘贴到另外一个文件夹中以防万一.删除链接,如下图 直接删除日志文件,然 ...
  • 当SQL数据库日志文件已满,或者日志很大,就需要压缩日志及数据库文件: 1.清空日志  DUMP  TRANSACTION  库名  WITH  NO_LOG    2.截断事务日志:  BACKUP LOG 数据库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小  企 ...
  • 使用find命令查询大于2G文件$cd $ORACLE_BASE$find . -size +2097160192c./product/9.2.0.4/admin/SID/bdump/alert_SID.log./oradata/SID/SID_DATA01.DBFORACLE数据库的日志文件$OR ...
  • 数据库日志文件收缩
    项目所使用的数据库通过备份还原来的,导致日志文件很大,占用了很大的空间,在网上搜索了日志收缩的信息,整理了下. --清空日志 DUMP  TRANSACTION  EWABOQDB  WITH NO_LOG --截断事务日志 BACKUP LOG EWABOQDB WITH NO_LOG --收缩日 ...
一周排行
  • Hibernate工作原理及为什么要用?原理:1. 读取并解析配置文件2. 读取并解析映射信息,创建SessionFactory3. 打开Sesssion4. 创建事务Transation5. 持久化操作6. 提交事 ...
  • windows2008R2域环境下更改时钟源
    时钟服务对任何IT基础架构以及工业环境的自动化控制系统来说都很重要,时钟同步可以影响到交换 ...
  • http://madduck.net/blog/2012.10.19:configuration-management/http://madduck.net/blog/2012.10.19:configuration ...
  • 1.磁盘分区fdisk -cu /dev/sdan-p-1-+100M-w2.加密crypsetup luksFormat /dev/sda1YES   \\确认加密redhat \\输入密码redhat  \\重复 ...
  • LACP的静态和动态会聚,静态就是把几个接口筐起来,不让它像动态的那样可以变化组合.动态的只要波动就会组成新的组,超过了的才是UNSELETE.一般标志一个组用4元组组成,但存在单接口的情况,那就要配合端口ID一起标 ...
  • 转自这里http://www.51testing.com/html/32/3353439.html1. test_login (login.Login) ... ERRORWebDriverExcepti ...
  • SQL语句: update table_1 set x = (select x from table_2 where table_1.y = table_2.y); 如果括号中临时建立的表中元素的个数小于table_ ...
  • CCNP交换(1)VLAN基础
    1.VLAN Deployment VLAN部署End-to-End VLANs应用到本地 ...
  • 1.感染病毒 有些病毒发作时会占用大量内存空间,导致系统出现内存不足的问题.赶快去杀毒,升级病毒库,然后把防毒措施做好! 2.虚拟内存设置不当 虚拟内存设置不当也可能导致出现内存不足问题,一般情况下,虚拟内存大小为物 ...
  •             写码无绪,听,琴曲悠扬,满心感慨 !            随手点开了老婆和儿子的照片,一张张翻,一幕幕念想,突然有种无名愧疚,儿子一天天长大了,老婆却一天天消瘦了,发迹稀薄了,看到最后,偶尔 ...