17、SQL Server 备份和还原
SQL Server 备份
恢复模式
SQL Server 数据恢复模式分为三种:完整恢复模式、大容量日志恢复模式、简单恢复模式。

完整恢复模式
默认的恢复模式,它会完整记录下操作数据库的每一个步骤,使用完整恢复模式可以将一个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间的事务。
大容量日志恢复模式
它是对完整恢复模式的补充,就是要对大容量操作进行最小日志记录,节省日志文件的空间。
比如说一次在数据库中插入几十万条记录时,如果是完整恢复模式会记录每一个插入动作,使日志文件变的非常大。在大容量日志恢复模式下,只记录必要操作,不记录所有日志,这样可以提高数据库性能。但是由于日志记录不完整,一旦出现问题,数据将可能无法恢复。
因此,一般只有在操作大量数据的时候才将恢复模式改为大容量日志恢复模式,在数据处理完毕后,马上将恢复模式改回完整数据库模式。
简单恢复模式
简单恢复模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有日志备份,所以不能恢复到失败的时间点。通常,这个模式只用于对数据库安全要求不太高的数据库。并且数据库只能做完整和差异备份,无法使用事务日志备份。
数据库备份
SQL Server 提供了四种备份模式:完整备份,差异备份,事务日志备份,文件和文件组备份。

完整备份
备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据库时,也只要还原一个备份文件即可。
如:2015年1月1日 8点进行了完整备份,那么恢复数据的时候就是恢复到2015年1月1日 8点的数据。
差异备份
差异备份是完整备份的补充,只备份上次完整备份后更改的数据。相对于完整备份来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。因此,差异备份通常座位常用的备份方式。在还原数据时,要先还原前一次的完整备份,然后还原最后一次所做的差异备份。
如:2015年1月1日 8点进行了完整备份,在1月2日 和1月3日又分别进行了差异备份,那么1月2日记录的是1-2的数据,1月3日则是1-3的数据。因此在还原时,如果想回到3日的状态,需要先恢复完整备份,然后还原1月3日的差异备份即可。
事务日志备份
事务日志备份只备份事务日志里的内容,事务日志记录了上一次完整备份或事务日志备份后数据库的所有变动过程。事务日志记录的是某一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要进行完整备份。与差异备份类似,事务日志备份生成的文件娇小、占用时间较短,但是在还原数据库时,除了要线还原完整备份外,还要依次还原每个事务日志备份,而不是还原最后一个。
如:2015年1月1日 8点进行了完整备份,此时对数据库做的所有改动都会按照时间分批存储在事务日志备份中,这样可以还原到某个时间点,使用SSMS可以自动完整相关时间链。
文件和文件组备份
如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该方式。使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大时非常有效,由于每次备份一个或几个文件,可以分多次来备份数据库,避免大型数据库备份的时间过长。另外,当某个文件损坏时,可以只还原损坏的文件或文件组部分。
进行完整备份





备份完成后,去选择的目录中查看文件。

--完整备份
select count(*) from news
--
此时插入测试数据,并执行差异备份
--插入测试数据
declare @index int = 1
while (@index <100)
begin
insert into news (title,content,datetime) values ('title' + cast(@index as varchar),'content',getdate())
set @index = @index +1
end select count(*) from news
--

查看目录,文件已经变大了。

继续插入测试数据,并执行事务日志备份
--插入测试数据
declare @index int = 1
while (@index <100)
begin
insert into news (title,content,datetime) values ('title' + cast(@index as varchar),'content',getdate())
set @index = @index +1
end select count(*) from news
--

目录下的文件又变大了,我就不截图了。
此时删除所有数据
--删除数据
delete news
--
SQL Server 还原
还原数据库时,如果必须还原一个完整备份、一个差异备份以及一个事务日志备份,则必须按照这个顺序来还原。
在还原数据库时,数据库处于一个不可用的状态,如此就可以添加后续的差异和事务日志备份了。
使用SSMS工具恢复,可以自动识别一个完整的备份链,从而根据指定的内容还原全部备份,还原后数据库就可用了。








select count(*) from news
--
执行sql语句,数据还原到最后一次有效的事务日志备份了。
关于备份还有一个小东西,备份设置,可以设置好物理路径,存个逻辑名,备份的时候选择这个名字,不用去找路径。




唯一一点作用就是可以看里面详细的备份信息
17、SQL Server 备份和还原的更多相关文章
- SQL Server 备份和还原
SQL Server 备份和还原 SQL Server 备份 恢复模式 SQL Server 数据恢复模式分为三种:完整恢复模式.大容量日志恢复模式.简单恢复模式. 完整恢复模式 默认的恢复模式, ...
- SQL Server 备份和还原全攻略
原文:SQL Server 备份和还原全攻略 一.知识点 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件.(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份, ...
- [Windows Server 2012] SQL Server 备份和还原方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:SQL S ...
- SQL Server 备份和还原数据库
备份: --完整备份 ) set @db_name = 'WSS_Content_Test'; ) set @db_location = 'D:\spbr0002\0000000B.bak'; --保 ...
- Sql server 备份及还原
--最常用的几种备份方法: --数据备份----------------------- --数据库级:完整数据库备份 差异数据库备份 --文件级: 完整文件备份 差异文件备份 --日志备份------ ...
- sql server备份与还原 sql语句
USE master DECLARE tb CURSOR LOCAL FOR SELECT 'Kill '+ CAST(Spid AS VARCHAR) FROM master.dbo.sysproc ...
- sql server备份和还原
官方文档:http://msdn.microsoft.com/zh-cn/library/ms187048%28v=sql.90%29.aspx
- SQL点滴12—SQL Server备份还原数据库中的小把戏
原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support 1 media families, ...
- C#.NET SQL数据库备份与还原解决方案
C#.NET SQL数据库备份与还原解决方案http://www.csframework.com/archive/1/arc-1-20110924-1841.htm 开发框架V2.2(快速开发版)系统 ...
随机推荐
- 对Gearman中client,worker,jobserver的理解
在gearman的官网http://gearman.org/有以下的一段说明 A Gearman powered application consists of three parts: a clie ...
- 修改表增加字段默认值default
对个生产库的表增加1个字段.字段类型是INT型, 表数据有2千万条, alter table table_name add xxoo number(4) default 0 ; 因此 不仅要修改字典 ...
- poj2954
水题,先用叉积求三角形面积然后求三边上的点(由公约数上点)a然后用pick定理S=a+b/2-1就可以求出内部的点数了 var x,y,xx,yy,a1,a2,a3,x1,x2,x3,y1,y2,y3 ...
- 关于下拉刷新你是否真的非常理解还是只会搬砖?附 Android 实例子源代码文件下载地址380个合集
1,推荐几篇非常有用的博文 原创写的真的非常好 主要讲解原理,整体布局三部分组成以及设置padding等等作用, 下拉的具体实现 滑动到底部具体加载以及判断手势事件,再次推荐作者的 详细讲解 建议先看 ...
- git bash【初级入门篇】
最近公司打算使用git代替之前的svn版本控制工具,趁此机会打算好好学学git,这个号称当今世界最牛的分布式版本控制工具. 一.[git和svn的主要区别] 1.去中心化 svn以及微软的TFS均采用 ...
- Poj 3468-A Simple Problem with Integers 线段树,树状数组
题目:http://poj.org/problem?id=3468 A Simple Problem with Integers Time Limit: 5000MS Memory Limit ...
- 《University Calculus》-chape6-定积分的应用-平面曲线长度
平面曲线的长度: 积分的重要作用体现在处理曲线和曲面. 在这里我们讨论平面中一条用参数形式表达的曲线:x=f(t),y=g(t),a≤t≤b. 如图. y=f(x)形式的弧长计算: 之前我们讨论过平面 ...
- IOS性能调优系列:使用Instruments动态分析内存泄漏
硬广:<IOS性能调优系列>第二篇,持续更新,欢迎关注. 第一篇介绍了Analyze对App做静态分析,可以发现应用中的内存泄漏问题,对于有些内存泄漏情况通过静态分析无法解决的,可以通过动 ...
- CSS3新特性(阴影、动画、渐变、变形、伪元素等)
CSS3与页面布局学习总结(六)--CSS3新特性(阴影.动画.渐变.变形.伪元素等) 目录 一.阴影 1.1.文字阴影 1.2.盒子阴影 二.背景 2.1.背景图像尺寸 2.2.背景图像显示的原 ...
- 【设计模式 - 19】之观察者模式(Observer)
1 模式简介 观察者模式的介绍: 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象的状态发生改变时,它的所有依赖者都会收到通知并自动更新. 发布者(被观察者) + 订阅者(观察者) ...