数据库备份checksum选项你会用么?
SQL SERVER有好多好多功能,选项也一大堆,很多功能选项并不常用。但是如果真有这种需求的时候又想不起来~
本篇我们就来聊聊备份里的选项checksum,这是个啥玩意?听都没听过?来看下图:
就是这个选项!不知道各位看官是否知道是干什么的?怎么用? 我询问了几个群友都没用过,正好手头有环境,那么我就用例子给大家演示一下吧!
--------------博客地址---------------------------------------------------------------------------------------
Expert 诊断优化系列 http://www.cnblogs.com/double-K/
废话不多说,直接开整-----------------------------------------------------------------------------------------
首先我们看一下微软官方文档给的说明:
错误管理选项
使用这些选项可以确定是否为备份操作启用了备份校验和,以及备份操作是否将在遇到错误时停止。
{ NO_CHECKSUM | CHECKSUM }
控制是否启用备份校验和。
NO_CHECKSUM
显式禁用备份校验和的生成(以及页校验和的验证)。 这是默认行为。
CHECKSUM
如果此选项已启用并且可用,则指定备份操作将验证每页的校验和及页残缺,并生成整个备份的校验和。
使用备份校验和可能会影响工作负荷以及备份吞吐量。
这也许是大多数人的了解“启用了备份校验和,备份操作将在遇到错误时停止”,因为看过官方文档知道怎么用,手头正好有坏库,正好做个示范~
我们先看一下DBCC CHECKDB的结果 ,目的只是告诉你这是一个有坏页的数据库!
好了,那我们做一下备份看看!
正常的备份,不加 checksum 成功备份!
加上checksum备份,失败!
好像果然和微软文档说的一样!看到这有些看官会想,这不和我做CHECKDB差不多了么?
博主别的不多就是坏库多! 我们再拿一个库试一下!
我们先看一下DBCC CHECKDB的结果 ,目的只是告诉你也这是一个有坏页的数据库!
我们用checksum 备份一下
哦??成功了???这是啥意思??
我们先来看一下 backupset的结果 :
那么损坏的页没check出来?我们再看一下 suspect_pages
suspect_pages里只查出了Test 库的坏页,那我XB28_3库的坏页哪里去了?
突然想到 suspect_pages 里面的数据只是 823 错误或 824 错误而失败的页!
而且使用checksum系统表会被漏掉,本文中XB28_3库的坏页就是一个object_id = 60的 系统表!
而且并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP ... WITH CHECKSUM就有可能导致一些损坏页不被发现。
这也说明备份时使用checksum不能完全取代DBCC checkDB的作用,这和Paul Randal大神的文章一致 : A SQL Server DBA myth a day: (27/30) use BACKUP WITH CHECKSUM to replace DBCC CHECKDB
--------------博客地址---------------------------------------------------------------------------------------
Expert 诊断优化系列 http://www.cnblogs.com/double-K/
-----------------------------------------------------------------------------------------------------
总结 :备份的checksum 选项可以用来发现数据库是否损坏,但不是所有类型的坏页都可以发现。
看官们的疑问:backup with checksum 可以用来取代DBCC checkDB。
这个观点是不正确的,一些逻辑一致性错误checksum是没法发现的!
数据库损坏不是很常见,很多DBA工作好多年都没有遇到,但是做好CHECKDB检查还是很必要的!万一出现你没有发现就比较悲剧了!
PS : 差异备份也可以使用checksum,但只会校验差异部分~
----------------------------------------------------------------------------------------------------
注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
若您觉得这篇文章还不错请点击下右下角的推荐,非常感谢!
转载于:https://www.cnblogs.com/double-K/p/5611811.html
数据库备份checksum选项你会用么?相关推荐
- 系统损坏sql数据库备份_如何识别损坏SQL备份文件
系统损坏sql数据库备份 A Database administrator's key task is to keep the database healthy and available for t ...
- sql还原数据库备份数据库_有关数据库备份,还原和恢复SQL面试问题–第一部分
sql还原数据库备份数据库 So far, we've discussed a lot about database backup-and-restore process. The backup da ...
- sql还原数据库备份数据库_有关数据库备份,还原和恢复SQL面试问题–第二部分
sql还原数据库备份数据库 In this article, we'll walk through, some of the refined list of SQL Server backup-and ...
- 数据库备份恢复策略_如何根据备份策略选择和检查正确的数据库恢复模型
数据库备份恢复策略 介绍 (Introduction) Following best practices, we should apply principles like segregation of ...
- SQL Server 数据库备份
SQL Server 数据库备份 原文 http://www.cnblogs.com/ynbt/archive/2013/04/04/2999642.html 备份数据库是指对数据库或事务日志进行复制 ...
- Asp.net 不使用SQLDMO实现数据库备份和还原
今天需要做一个历史数据库,备份还原的程序,就是在sql服务器兴建一个数据库的历史版本的复.手工操作很方便,但是程序来实现我还没做过.上网找资料发现都调用了 SQLDMO 的 SQL COM 来实现. ...
- mysql数据库备份方案_MySQL平台数据库备份方案详细说明
在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.有时,正是MySQL管理员造成破坏.管理员已经知道表已破坏,用 ...
- Linux系统mongdb还原数据库,linux下mongodb数据库备份与还原
MongoDb数据库备份还原 数据库迁移,可视化工具NoSQLBooster for MongoDB 付费版才具有数据导入功能.代价过高,索性采起命令行web 数据备份 备份命令mongodb mon ...
- mysql数据库备份总结_mysql中mysqlhotcopy备份数据库总结
mysqlhotcopy是mysql数据库中一个备份工具,相对于mysqldump是一个快速文件意义上的COPY,mysqlhotcopy是一个数据库端的SQL语句集合. mysqlhotcopy用法 ...
最新文章
- 第三章GIT使用入门
- CVPR 2021 | 不需要标注了?看自监督学习框架如何助力自动驾驶
- Oracle 11G for redhat 自启动脚本
- 计网 - TCP 的封包格式:TCP 为什么要粘包和拆包?
- 协方差矩阵的概念,算法以及自己的一些理解
- java http2_java的okhttp3库中,客户端如何开启http2协议支持
- node.js 使用----相关常用命令总结
- 2017年计算机组成原理1254,2018年7月试卷号1254计算机组成原理A.pdf
- 【电商系统】—项目梳理(一)
- 智能一代云平台(九):EclipseLink返回Object转为实体的分析
- Spring Boot 学习系列(01)—从0到1,只需两分钟
- 我的css reset
- linux内核编译指定驱动,linux内核编译,配置本机驱动
- 音乐播放器之QQ音乐最新api,亲测可用
- 港科夜闻|香港科大商学院举办在线网络研讨会
- SKCTF Writeup
- 关于iPhone改变的一切,这也许是史上最详细的盘点
- excel查找空值快捷键_CTRL+G,EXCEL中你必须要学会的快捷键
- 人性歪曲的心理调适 一【抑郁心理、烦恼心理、懊悔心理、焦虑心理、恐惧心理】...
- 基于单片机的电子秤(计价时钟播报)系统设计(#0444)