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 数据库,sa用户被锁定的问题
Jun 11 SQL Server
sql字段解析器的实现示例
Jun 23 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQL SERVER触发器详解
Feb 24 SQL Server
Sql Server之数据类型详解
Feb 28 SQL Server
使用MybatisPlus打印sql语句
Apr 22 SQL Server
SQL Server中使用表变量和临时表
May 20 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
Jun 10 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 Http_Template_IT类库进行模板替换
2009/03/19 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
员工工作表扬信范文
2014/01/13 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
美容院经理岗位职责
2014/04/03 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
创业计划书之酒店
2019/08/30 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
MySQL8.0.18配置多主一从
2021/06/21 MySQL