首页 > 数据库 >SQLServer数据库三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式介绍

SQLServer数据库三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式介绍

时间:2023-10-06 21:05:18浏览次数:34  
标签:log Simple SQLServer 恢复模式 logged 模式 日志

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每天都会定时备份全库)。

如果需要压缩数据库日志(Shrink语句),将数据库模式切换到简单恢复模式后压缩率才是最高的,如果你的数据库在完整恢复模式或大容量日志回复模式下采用日志压缩,压缩后的日志大小并不会很理想。

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模式。

 

原文地址:https://www.php1.cn/detail/SQLServer_ShuJuK_6ff64369.html

标签:log,Simple,SQLServer,恢复模式,logged,模式,日志
From: https://www.cnblogs.com/songjuntao/p/17744985.html

相关文章

  • Sql server 使用DBCC Shrinkfile 收缩日志文件
    ​磁盘空间有限,需要收缩日志文件释放空间。数据库名称上右击属性->文件,逻辑名称日志文件默认名称为“_log”结尾。 ​编辑 alterdatabase数据库setrecoverysimpledbccshrinkfile('XXX_log',2,truncateonly)alterdatabase数据库setrecoveryfull​......
  • MSSQLSERVER执行计划详解
    转自:https://www.cnblogs.com/knowledgesea/p/5005163.html1.序言本篇主要目的有二:看懂t-sql的执行计划,明白执行计划中的一些常识。能够分析执行计划,找到优化sql性能的思路或方案。如果你对sql查询优化的理解或常识不是很深入,那么推荐几篇博文给你:SqlServer性能检测和优化......
  • 日志级别
    log输出级别分为五种:DEBUG、INFO、WARN、ERROR、FATAL(从小到大)。DEBUG(调试)输出细粒度信息,对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。输出一些系统信息日志以及SQL执行的更加详细日志,一般是开发的程序员前期开发调试中使用,在正式环境中不应该显示。INFO......
  • 10-06_工作日志
    C214sike-sz.com、easypro-tech.com原因:需要企业邮箱注册B221kuchungkejiao.cn原因:自备主域,没有拉群,联系不到客户A22211maximumluxury.com原因:自备主域,我这边登录不了godaddy,主机还没解析A225byteglory.com原因:没有拉群,没有购买域名C223无原因:没有拉群,没有域名......
  • WIN11 安装 SQL Server 2019,SQLSERVER2022, MYSQL 8.0 ,Docker,Mongodb失败故障分析
    最近研究数据库性能调优遇到各种数据库各种装不上,不知道熬了多少根软白沙,熬了多少颗张三疯,问了多少AI,查了多少网页,熬了两天,终于搞明白了一件事:那就是WIN11ONARM(因为拿的是MACPROM2做.NET平台开发安装)SQLSERVER2019,SQLSERVER2022,MYSQL8.0,Docker,Mongodb失败故障分析,最终极......
  • 手工升级ACCESS到SQLSERVER
    1、必须先安装MicrosoftOfficeAccess2003,和SQLServer2000。 2、把旧的数据库备份,备份完成后,用Access2003打开MDB数据库,在打开时会出现一个警告,不要理会它(安全警告),按打开键,打开后按工具栏——数据库实用工具——转换数据库——转换为2002-2003格式,把数据库转换成2003格式......
  • tomcat/logs几种清空catalina.out日志方式
    查看文件大小[root@hblogs]#du-hcatalina.out重定向清空文件[root@hblogs]#>catalina.out重定向true命令清空文件[root@hblogs]#true>catalina.out使用cat/cp/dd命令及/dev/null来清空文件[root@hblogs]#cat/dev/null>catalina.out[root@hblogs]#cp/......
  • go语言ent教程:使用zerolog定制ent日志
    背景:ent开始debug模式后,可以输出日志,但是我们想为ent接入zerolog,该怎么做呢? 一、引入zerologgoget-ugithub.com/rs/zerolog 二、自定义zerolog配置customLog:=func(args...any){str:=fmt.Sprintf("%v",args)fmt.Println(str)......
  • SQL SERVER 存储过程执行日志记录方法(有案例)
    查询历史执行总体情况SELECTTOP100db_name(d.database_id)asDBName,s.nameas存储名称,s.type_descas存储类型,d.cached_timeasSP添加到缓存的时间,d.last_execution_timeas上次执行SP的时间,d.last_elapsed_timeas[上次执行SP所用的时间(μs)],......
  • 什么是Mysql的日志
    Mysql日志体系1错误日志​ -默认开启​ 错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。可通过下面命令查看错误日志的存储位置:s......