你真的会使用SQL Server的备份还原功能吗?之二:主要备份类型
假设在下面几个时间段中,一个数据库积累插入了如下数据:

1.完整数据库备份
故名思意,完整数据库备份包括完整的数据库信息。它包括数据库的数据文件和备份结尾的部份活动事务日志。

完整备份基本语法如下:
BACKUP DATABASE AdventureWorks TO DISK = 'g:/backups/AdventureWorks.bak'
2.差异性数据库备份
差异性数据库备份包括自从上一次完整性备份以来所有改变的数据页,以及备份结尾的部份活动事务日志。

差异备份和完整备份的语法很相似,唯一不同的是加上了DIFFERENTIAL选项,如下:
BACKUP DATABASE AdventureWorks TO DISK = 'g:/backups/AdventureWorks.bak' WITH DIFFERENTIAL
3.事务日志备份
事务日志备份的内容是从还未被备份的事务日志开始,直到备份结尾的最后一个事务日志为止。需要注意的是执行事务日志的前提是你的数据库恢复模型必须是完整恢复模型或是批量日志恢复模型(恢复模型)

通常情况下大家会以为完整性备份会截断事务日志,以便下一次备份日志时不再重复备份,但这是错误的。完整备份不会截断事务日志。

事务日志备份的语法和完整备份相似,唯一不同的是第二个关键字,把database换成log,如下:
BACKUP LOG AdventureWorks TO DISK = 'g:/backups/AdventureWorks.bak'
4.你应该选择哪种备份类型呢?
答案取决于你本身,取决你的备灾恢复需求,取决于你可以接受的丢失数据量的多少,取决于你日常数据库的备份操作,取决于数据库从灾难中恢复过来的时间。
假如你的环境允许丢失5分钟的数据,那么你必须每5分钟执行一次某种备份。对于上述的几种备份来说,每5分钟执行一次完整备份的规则显得过于频繁且 影响其他用户的操作。对于差异备份来说,如果一次完整备份后,数据库又进行了大量的修改,那么差异备份同样不适合。所以,上述情况用事务日志备份应该是最 合适的,因为它仅备份从最后一次事务日志备份后所产生的新事务。
然而,当你从事务日志恢复数据库时,你需要还原所有相关的备份,包括从起始的数据库备份点到最后一个事务日志。假如还原点是很久以前的时间点,那么要还原的事务日志也许会很多很多。

你可以使用差异备份来提前事务日志备份的起始还原点。但是,对于一个行动的数据来说,差异备份会比事务日志备份占用更长的时间,影响更多的数据库操作和消耗更多的磁盘空间。

当你考虑使用哪种备份方案时,你可以参考下面这几点:
- 你能接受丢失多少数据?
- 备份会影响数据库日常操作吗?
- 是否有一个高可用的维护计划来执行备份操作?
- 你能接受的恢复时间是多少?
- 是否需要具有恢复某一时间点的功能?这种情况下,事务日志备份是必须的。
- 是否有足够的存储空间来保存备份文件?
- 是否有一套高可用性的解决来完成备灾恢复计划?比如:群集, loggshipping, 数据库镜像等等
你真的会使用SQL Server的备份还原功能吗?之二:主要备份类型的更多相关文章
- SQL Server in Docker - 还原数据库
SQL Server in Docker 还原数据库 上一会演示了如果在Docker环境下安装SQL Server,这次我们来演示下如何还原一个数据库备份文件到数据库实例上. 使用winscp上传ba ...
- SQL SERVER 2008 R2 还原数据库3154错误
1.SQL SERVER 2008 在还原数据库时,会报错. 提示错误:"备份集中的数据库备份与现有的 '***' 数据库不同.RESTORE DATABASE 正在异常终止. (Micro ...
- SQL Server 2008 R2 性能计数器详细列表(二)
原文:SQL Server 2008 R2 性能计数器详细列表(二) SQL Server Buffer Partition 对象: 提供计数器来监视 SQL Server 如何使用可用页 SQL S ...
- 在SQL SERVER 2005中还原数据库时出现错误:system.data.sqlclient.sqlerror 媒体集有 2 个媒体簇 但只提供了 1 个。必须提供所有成员。 (microsoft.sqlserver.smo)
问题:在SQL SERVER 2005中还原数据库时出现错误:system.data.sqlclient.sqlerror 媒体集有 2 个媒体簇 但只提供了 1 个.必须提供所有成员. (micro ...
- SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移
SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...
- SQL Server数据库中还原孤立用户的方法集合
虽然SQL Server现在搬迁的技术越来越多,自带的方法也越来越高级. 但是我们的SQL Server在搬迁的会出现很多孤立用户,微软没有自动的处理. 因为我们的数据库权限表都不会在应用数据库中,但 ...
- Python和SQL Server 2017的强大功能
Python和SQL Server 2017的强大功能 摘要: 源:https://www.red-gate.com/simple-talk/sql/sql-development/power-pyt ...
- c#直接调用ssis包实现Sql Server的数据导入功能
调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...
- MySQL数据库备份还原(基于binlog的增量备份)
MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份 增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...
- 你真的会使用SQL Server的备份还原功能吗?之一:恢复模型
在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模型: Simple(简单), full(完整), bulk-logged(批量日志). 下面这条语句可以显示出所 ...
随机推荐
- 30+简约时尚的Macbook贴花
当Macbooks Pro电脑在他们的设计之下仍然漂亮.独一无二时,我想说,他们已经成为相当的主流了.有时候如果你回忆过去的很美好的日子,当人们偷偷欣赏你的技术装备 的时候,大概是为你的外表增加亮点的 ...
- Warning: $HADOOP_HOME is deprecated.解决方法
方式1(不推荐):注释hadoop-config.sh中的 if [ "$HADOOP_HOME_WARN_SUPPRESS" = "" ] && ...
- html5页面中拨打电话的方式
<a href="tel:18688888888">拨号</a> <a href="sms:18688888888">发短信 ...
- 第二百二十九天 how can I 坚持
百度-让人更容易的获取信息,腾讯-让人更方便的交流,阿里-让人更方便的消费,每个公司都有自己的使命,每个公司的使命都是围绕着人. 创新-其实应该是在每个人的内心深处都或多或少有一些新的想法,但是什么是 ...
- mysql语句收藏
1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...
- java反射工具类
package com.yingchao.kgou.core; import java.lang.reflect.Field; import java.lang.reflect.InvocationT ...
- GC: 垃圾回收算法
标记-清除算法标记-清除(Mark-Sweep)算法是最基础的算法,就如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象.之所以说 ...
- JSP文件下载时文件名在ie和firefox下面文件名不一致极其超链接中文乱码的问题的改进
response.setContentType("application/octet-stream;charset=UTF-8"); fileName=java.net.URLEn ...
- <!DOCTYPE> 标签的深度剖析以及使用选择
前言: 今天被问道“有没有仔细了解过<!DOCTYPE>标签?”,愣了一下,因为一开始在W3cschool上看到过建议使用XHTML Transitional DTD,之后就很听话地把Dr ...
- Expression<Func<T,TResult>>和Func<T,TResult> 与AOP与WCF
1>>Expression<Func<T,TResult>>和Func<T,TResult>http://www.cnblogs.com/xcsn/p/ ...