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. SVN——Jenkins自动发布

    最近公司项目处于开发阶段,很多功能开发完后就需要发布到测试环境等待测试去验收,这个时候如果手动更新网站的话,是很费时费力的. 于是乎,我们做成了自动发布,这样我们只管提交代码到SVN就行了,发布由软件 ...

  2. Centos7 minimal 系列之Redis(五)

    一.Redis安装 1.1 .进入/usr/local 创建redis文件夹(mkdir)方便统一管理 1.2.下载redis $ wget http://download.redis.io/rele ...

  3. Vue运行npm run dev 时修改端口

    进入项目文件的config文件夹E:\myapp\myproject\config,找到index.js,修改里面的8080端口,改成8088(确定不被别的程序使用的都可以)

  4. Hibernate框架学习(四)——事务

    一.回顾事务的概念http://www.cnblogs.com/cxq1126/p/8313600.html 1.特性ACID:原子性.一致性.隔离性.持久性 2.并发问题:脏读.不可重复读.幻|虚读 ...

  5. 初学C#,总结一下.sln和.csproj的区别

    1.sln:solusion 解决方案 csproj:c sharp project C#项目 csproj文件大家应该不会陌生,那就是C#项目文件的扩展名,它是“C Sharp Project”的缩 ...

  6. 新物理AI将可能成为量子计算革命的关键

    新物理AI将可能成为量子计算革命的关键 据外媒报道,量子计算无疑是现在最令人兴奋的技术之一,但它的量子物理基础却让它成为了一个令人讨厌的概念理解甚至很难再展开其他事情.然而,最近物理学研究的一项突破可 ...

  7. hdu2614 Beat

    题意: 有n个问题. 给出你解决完第i个问题之后解决j问题所花的时间,花的时间越多表示难度越大,每次只能解决难度大于或等于上个题难度的问题.问你最多能解决多少问题. 他妈的,第一次做想半天想不出来如何 ...

  8. set 集合————两个数组的交集

    class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int& ...

  9. node——REFL介绍

    看视频笔记 REFL全称:Read-Eval-Loop(交互式解释器) R 读取 -读取用户输入,解析输入了javascript数据结构并存储在内存中 E 执行 -执行输入的数据结构 P 打印 -输出 ...

  10. Django中模块的加载原理

    Django中的module的加载是通过反射来完成的,借助importlib中的import_module函数来实现的动态加载.import_module的内部通过使用了递归和线程锁,字符串的切割,实 ...