SQL Server数据库备份和恢复数据库的全过程


Posted in SQL Server onJune 14, 2022

1. 概述

在一些对数据可靠性要求很高的行业,若发生意外停机或数据丢失,其损失是十分惨重的;

数据库管理员应针对具体的业务要求指定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进行严格测试,只有这样才能保证数据的高可用性;

数据库的备份是一个长期过程,而恢复只在发生事故后才能进行,恢复后可看做是备份数据库的逆过程,恢复程度的好坏很大程度上依赖于备份的情况;

数据库管理员在恢复时采取的步骤正确与否也会直接影响最终的恢复结果;

2. 备份类型

备份数据库是指对数据库或事务日志进行复制,当系统,磁盘或数据库文件损坏时,能使用备份文件进行恢复,防止数据丢失;
SQL Server 数据库备份支持以下几种类型,分别应用于不同的场合:

仅复制备份

独立于正常 SQL Server 备份序列的特殊用途备份;

数据备份

完整数据库的数据备份(数据库备份)、部分数据库的数据备份(部分备份)或一组数据文件或文件组的备份(文件备份);

数据库备份

数据库的备份,完整数据库备份表示备份完成时的整个数据库;差异数据库备份植保会自最近完整备份以来对数据库所做的更改;

差异备份

基于完成数据库或部分数据库以及一组数据文件或文件组的最新完整备份的数据备份(“差异基准”),仅包含自差异基准以来发生了更改数据区;部分差异备份仅记录自上一次部分备份(称为“差异基准”)以来文件组中发证更改的数据区;

完整备份

一种数据备份,包含特定数据库或者一组特定的文件组或文件中的所有数据,以及能恢复这些数据的足够的日志;

日志备份

包括以前日志备份中未备份的所有日志记录的事务日志备份,完整恢复模式;

文件备份

一个或多个数据库文件或文件组的备份;

部分备份

仅包含数据库中部分文件组的数据(包含主要文件组、每个读/写文件组以及任何可选指定的只读文件中的数据);

3. 恢复模式

恢复模式在控制事务日志维护,提供给用户选择;SQL Server 数据库中有3中恢复模式:简单恢复模式、完全恢复模式、大容量日志恢复模式;
通常,数据库使用完全恢复模式或简单恢复模式;

3.1 简单恢复模式

简单恢复模式能最大限度地减少事务日志的管理开销,因为它不备份事务日志;若数据库损坏,则简单恢复模式将面临极大的工作丢失风险,数据只能恢复到已丢失数据的最新备份

所以,在简单恢复模式下,备份间隔应尽可能短,以防止大量丢失数据,但,间隔的长度应该足以避免备份开销影响生产工作;在备份策略中加入差异备份有助于减少开销;

对于用户数据库,简单恢复模式用于测试和开发数据库,或用于主要包含只读数据的数据库(如数据仓库);简单恢复模式并不适用生产系统,因为对于生产系统来说,丢失最新的更改是无法接受的,在这种情况下建议使用完全恢复模式;

3.2 完全恢复模式和大容量日志恢复模式

相对于简单恢复模式,完全恢复模式和大容量日志恢复模式提供了更强的数据保护功能;这些恢复模式基于备份事务日志来提供完整的可恢复性及在最大范围的故障情形内防止丢失工作;

完全恢复模式

完全恢复模式需要日志备份;此模式完整记录所有事务,并将事务日志记录保留到对其备份完毕为止;若能够在出现故障后备份日志尾部,就能使用完全恢复模式将数据库恢复到故障点;完全恢复模式也支持还原单个数据页;

大容量日志恢复模式

大容量日志记录大多数大容量操作,他只用在完全恢复模式的附加模式;对于某些大规模大容量操作(如大容量导入或索引创建),暂时切换到大容量日志恢复模式可提供性能并减少日志空间使用量;与完全恢复模式相同,大容量日志恢复模式也能将事务日志记录保留到对其备份完毕为止;

注意: 由于大容量日志恢复模式不支持时点恢复,所以必须在增大日志备份与增加工作丢失风险之间进行权衡;

4. 备份数据库

为了方便用户,SQL Server 数据库支持用户在数据库在线并正在使用时进行备份;

但,存在以下限制:

无法备份脱机数据; 隐式或显式引用脱机数据的任何备份操作都会失败;即使一个或多个数据文件不可以,日志备份也能成功;

注意: 若某个文件包含大容量日志恢复模式下所作的大容量日志更改,则所有文件都必须处于联机状态才能成功备份;

备份过程中的并发限制; 数据库仍在使用时,SQL Server 能使用联机备份过程来备份数据库;在备份过程中,能进行多个操作;但,若正在创建或删除数据库文件时尝试启动备份操作,则备份文件将等待,直到创建或删除完成或备份超时;

若备份操作与文件管理操作或收缩操作重叠,就会发生冲突;无论哪个冲突操作首先开始,第二个操作总会等待第一个操作设置的锁超时(超时期限由会发超时设置控制);若在超市期限内释放锁,第二个操作将继续执行;若锁超时,则第二个操作失败;

使用 SSMS 继续备份的过程如下:

右击要备份的数据库,任务备份

SQL Server数据库备份和恢复数据库的全过程

先删除,再添加;

SQL Server数据库备份和恢复数据库的全过程

SQL Server数据库备份和恢复数据库的全过程

在弹出的选择备份目标对话框汇总,选择好备份的路径;文件类型选择备份文件文件名 填写需要备份的数据库的名称,最好在备份的数据库的名称后加上日期,方便以后查找,再连续单击确定,即可完成备份;

SQL Server数据库备份和恢复数据库的全过程

SQL Server数据库备份和恢复数据库的全过程

SQL Server数据库备份和恢复数据库的全过程

5. 恢复数据库

数据库完整还原的目的还是还原整个数据库,真个数据库在还处于脱机状态

在数据库的任何部分变成联机之前,必须将所有数据恢复之前,必须将所哟数据恢复到同一点,即数据库的所有部分都处于同一时间点并不存在未提交的事务;

简单恢复模式下,数据库不能还原到特定备份中的特定时间点;

完整恢复模式下,还原备份数据库之后,必须还原所有后续的事务日志备份,再恢复数据库,能将数据库还原到这些日志备份之一的特定恢复点;恢复点可以是特定的日期和时间、标记的事务或日志序列号,还原数据库时,特别是在完整恢复模式大容量日志恢复模式下,应使用一个还原顺序;

注意: 还原顺序由通过一个或多个还原阶段来移动数据的一个或多个还原操作组成;

用 SSMS 对象管理资源管理器恢复数据库,操作步骤如下:

展开数据库,根据具体的数据库选择一个用户数据库,或展开系统数据库并选择一个系统数据库;右击数据库,单击还原数据库

SQL Server数据库备份和恢复数据库的全过程

常规,使用部分指定要还原的备份集和位置;在目标部分,数据库文本框自动填充要还原的数据库的名称;

若要更改数据库名称,可在数据库文本框中输入新名称;

还原到框中,保留默认选项至最近一次进行的备份,或单击时间线访问备份时间线,以手动选择要停止恢复的时间点;

SQL Server数据库备份和恢复数据库的全过程

SQL Server数据库备份和恢复数据库的全过程

SQL Server数据库备份和恢复数据库的全过程

总结 

到此这篇关于SQL Server数据库备份和恢复数据库的文章就介绍到这了,更多相关SQLServer数据库备份恢复内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
Sql-Server数据库单表查询 4.3实验课
Apr 05 SQL Server
SQLServer2008提示评估期已过解决方案
Apr 12 SQL Server
如何有效防止sql注入的方法
May 25 SQL Server
sql中mod()函数取余数的用法
May 29 SQL Server
数据库之SQL技巧整理案例
Jul 07 SQL Server
SQLServer中exists和except用法介绍
Dec 04 SQL Server
sql server 累计求和实现代码
Feb 28 SQL Server
Sql Server之数据类型详解
Feb 28 SQL Server
SQL Server表分区降低运维和维护成本
Apr 08 SQL Server
SQL Server 忘记密码以及重新添加新账号
Apr 26 SQL Server
SQL Server使用T-SQL语句批处理
May 20 SQL Server
SQL解决未能删除约束问题drop constraint
May 30 SQL Server
一次SQL查询优化原理分析(900W+数据从17s到300ms)
Jun 10 #SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
SQL Server携程核心系统无感迁移到MySQL实战
SQL解决未能删除约束问题drop constraint
May 30 #SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 #SQL Server
SQL Server中的逻辑函数介绍
May 25 #SQL Server
SQL Server删除表中的重复数据
May 25 #SQL Server
You might like
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
关于尾递归的使用详解
2013/05/02 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
Sea.JS知识总结
2016/05/05 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
JS中call和apply函数用法实例分析
2018/06/20 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
百丽国际旗下购物网站:优购
2017/02/28 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
反邪教警示教育方案
2014/05/13 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
开学第一周值周总结
2015/07/16 职场文书