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. 高并发之后端优化(PHP)

    页面静态化 使用模板引擎 可以使用Smarty的缓存机制生成静态HTML缓存文件 $smarty->cachedir=$ROOT·"/cache"://缓存目录 $smart ...

  2. sql server 启用数据库的 Service Broker

    使用SqlDependency时要开启Service Broker ,那么SqlDependency是什么 https://www.cnblogs.com/zhaoyihao/p/5663258.ht ...

  3. js判断传入时间和当前时间大小

    //判断时间是否过期 function judgeTime(time){ var strtime = time.replace("/-/g", "/");//时 ...

  4. 硅谷最有名的帮派:如果你不知道PayPal黑帮

    paypal 你知道Tesla Motors,LinkedIn,SpaceX,Yelp,Yammer这几家公司的共同点吗?除了他们的市值都超过10亿美金之外,他们的创办人都是Paypal黑帮(Payp ...

  5. 路飞学城Python-Day37

    36-多表查询练习 37-权限管理 1.创建账号 本地账号 create user 'panda' @ 'loacalhost' inentified by'123' 远程账号 create user ...

  6. HDU 6149 Valley Numer II (状压DP 易错题)

    题目大意:给你一个无向连通图(n<=30),点分为高点和低点,高点数量<=15,如果两个高点和低点都直接连边,那么我们称这三个点形成一个valley,每个点最多作为一个valley的组成部 ...

  7. Swoole 源码分析——进程管理 Swoole_Process

    前言 swoole-1.7.2 增加了一个进程管理模块,用来替代 PHP 的 pcntl 扩展. PHP自带的pcntl,存在很多不足,如 pcntl 没有提供进程间通信的功能 pcntl 不支持重定 ...

  8. Vue生命周期函数的应用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 前端和后台对接时对sign加密方法

    前端和后台对接时对sign加密方法 /*后台php对接进行sign标签加密 1 获取向后台请求的数据data(key/value方式),可以是个对象(obj),也可以是数组(arr); 2 将数据的k ...

  10. COGS——T 438. 烦人的幻灯片

    http://www.cogs.pro/cogs/problem/problem.php?pid=438 ★☆   输入文件:slides.in   输出文件:slides.out   简单对比时间限 ...