recovery simple

循环日志,空间自动回收,不可备份日志,恢复时仅能恢复到数据库备份时间点;
用于落地数据或测试环境或OLAP,不推荐用于生产OLTP
有时候distribution过大也可置为simple
 
recovery bulk_logged
常规操作日志正常记录,特定操作时仅记录少量日志;
恢复时特定操作将做回滚处理,其他操作正常恢复到当前
 
特定操作:
1、select * into test2 from test1 where 1=1
2、DTS数据导入
3、bulk into
 
注意:特定操作不等于大数据操作,例如:
insert into test2 select * from test1
delete  from test2 where id<100000
将会记录全部日志 
 
 
优化表复制
--1、改为bulk_logged恢复模式
--操作前日志使用率
dbcc sqlperf(logspace)
alter database testdb set recovery bulk_logged
 
--2、推荐将sql1替换sql2
sql1:select * into test2 from test1 where 1=1 
 
sql2:insert into test2 select * from test1
 
--操作后日志使用率,发现变化不大
dbcc sqlperf(logspace)
 
--3、重建索引
create index on test2
 
--4、重新改为full恢复模式
alter database testdb set recovery full
 
即优化了日志空间和插入速度,又优化了索引(大量数据插入,会引起大量索引碎片)
 
full recovery <--> BULK_LOGGED recovery
切换时不会造成日志链断裂,所以也不用担心日志不能备份
 
 
recovery full
通过事务日志将数据库还原到任意的时刻点,
full模式下的空间优化:
 
一、事务内进行大批量的数据删除、更新操作,引起的日志爆满
1.多次少量原则,每次写入一定量的日志
2.手工触发checkpoint,每次发生checkpoint时会自动截断事务日志
 
二、复制时引起的日志爆满
复制可以在simple恢复模式下进行
 
三、完整恢复模式下引起的日志爆满
1.配合备份策略,进行日志归档
2.定期删除历史日志归档文件
 
四、执行备份的时候,可以截断部分事务日志
 
五、大批量数据导入的时引起的日志爆满
将恢复模式暂时改为BULK_LOGGED(仅记录回滚所需日志,不记录插入日志),完成后及时改为full
 
 
六、使用警报,可以实现日志使用率超过一定量自动归档
 
七、查看日志空间使用率dbcc sqlperf(logspace)
 
 
 
各模式间切换时注意点
 
1、SIMPLE->FULL
完成切换后,需要立刻进行差异备份,恢复日志链
 
2、FULL->SIMPLE
先进行日志备份,因为切换会中断日志链
 
3、BULK_LOGGED<->full 自由切换
 
4、simple<->BULK_LOGGED 不常见

sqlserver 恢复模式及避免日志爆满的方法的更多相关文章

  1. SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理

    当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...

  2. SQL Server中的事务日志管理(5/9):完整恢复模式里的日志管理

    当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...

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

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

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

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

  5. SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理

    当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...

  6. Sqlserver CheckPoint 在三种恢复模式中的不同表现

    准备: 日志截断在下列情况下发生: 1.执行完 BACKUP LOG 语句时.2.在每次处理检查点时(如果数据库使用的是简单恢复模式).这包括 CHECKPOINT 语句所产生的显式检查点和系统生成的 ...

  7. 浅谈SQL Server中的事务日志(四)----在完整恢复模式下日志的角色

    简介 生产环境下的数据是如果可以写在资产负债表上的话,我想这个资产所占的数额一定不会小.而墨菲定律(事情如果有变坏的可能,无论这种可能性有多小,它总会发生)仿佛是给DBA量身定做的.在上篇文章介绍的简 ...

  8. 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色

    简介 在简单恢复模式下,日志文件的作用仅仅是保证了SQL Server事务的ACID属性.并不承担具体的恢复数据的角色.正如”简单”这个词的字面意思一样,数据的备份和恢复仅仅是依赖于手动备份和恢复.在 ...

  9. 转 一篇关于sql server 三种恢复模式的文章,从sql server 的机制上来写的,感觉很不错,转了

    简介 SQL Server中的事务日志无疑是SQL Server中最重要的部分之一.因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback).从而还部分确 ...

随机推荐

  1. Eclipse插件Lambok,实现自动生成Java代码

    1.下载Lombok.jar http://projectlombok.googlecode.com/files/lombok.jar 2.运行Lombok.jar: java -jar  D:\00 ...

  2. TP为什么这个if判断什么都不显示?

    既不显示aaa也不显示bbb这是为什么? <if condition="isset(session('name'))"> aaa <else /> bbb ...

  3. hdu1542 矩形面积并(线段树+离散化+扫描线)

    题意: 给你n个矩形,输入每个矩形的左上角坐标和右下角坐标. 然后求矩形的总面积.(矩形可能相交). 题解: 前言: 先说说做这道题的感受: 刚看到这道题顿时就懵逼了,几何 烂的渣渣.后来从网上搜题解 ...

  4. 如何打开DOS控制台及常见DOS命令作用

    如何打开DOS控制台? * A:xp下如何打开DOS控制台?     * a:开始--程序--附件--命令提示符     * b:开始--运行--cmd--回车     * c:win+r--cmd- ...

  5. day 06 数据类型的内置方法[数字类型,字符串类型]

    什么是可变还是不可变? 可变是值可以改变,但是ID不变,不可变是值变,ID也变. 1.数字类型 int 1.用途:年龄,号码,等级 2.定义:可以使用int()方法将纯数字的字符串转为十进制的整数 a ...

  6. easyUI在使用字符串拼接时样式不起作用,点击加号增加一行,点击减号删除一行效果。

    拼接的按钮没有样式,需要使用 var str = $("<a href='javascript:void(0)' class='easyui-linkbutton' onclick=' ...

  7. Jmeter--Timer设置等待时间

    一.Jmeter定时器的概念:1)定时器是在每个sampler(采样器)之前执行的,而不是之后:是的,你没有看错,不管这个定时器的位置放在sampler之后,还是之下,它都在sampler之前得到执行 ...

  8. CefSharp的简单应用,制作自动学习视频软件(基于Chromium)

    CefSharp在NuGet的简介是“The CefSharp Chromium-based browser component”,机翻的意思就是“基于Cefsharp Chromium的浏览器组件” ...

  9. HDU 5421 Victor and String (回文自动机)

    题目大意:让你维护一个字符串,支持在开头结尾插入字符,以及查询本质不同的回文串数量以及回文串总数量 开头结尾都维护一个$last$指针,如果插入新字符后,整个串是一个回文串,就把另一个$last$赋值 ...

  10. Django REST Framework 数码宝贝 - 3步进化 - 混合类 -->

    读了我这篇博客, 你会刷新对面对对象的认知, 之前的面对对象都是LJ~~~ 表结构 class Publisher(models.Model): name = models.CharField(max ...