没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第 10 章 数据库备份与恢复
保护好数据,防止数据丢失是数据库管理员需要面临的最关键的问题之一。
虽然系统中采取了各种措施来保障数据库的完整性和安全性,但是各种软硬件故
障、病毒和误操作等事件的发生,仍会影响甚至破坏数据库,造成数据丢失。数
据库管理系统提供了数据库备份和恢复的功能可以将数据库从错误的状态恢复到
某一种正确的状态。
为了保证数据的安全,需要定期对数据进行备份。备份的方式有很多种,效
果也不一样。关于备份需要遵循两个简单规则:一是尽早并且经常备份;另一条
规则就是,不要只备份到相同磁盘的一个文件中,应该确保在完全分离的位置
(最好是远离工作场所)还有一个副本,以确保备份安全。在进行数据库的备份
与恢复过程中,就要涉及到数据库之间的数据导入与导出。
本章我们就来学习,有关数据的备份、数据还原以及数据导入、导出的相关
知识和操作技巧。
本章学习目标:
了解备份的概念
了解备份所需要的常用设备
掌握备份数据的操作方法
掌握恢复数据的操作方法
熟悉复制数据库的操作技巧
掌握数据的导入与导出
10.1 备份和恢复概述
用户使用数据库是因为要利用数据库来管理和操作数据,数据对于用户来说
是非常宝贵的资产。数据存放在计算机上,但是即使是最可靠的硬件和软件也会
出现系统故障或产品故障。所以,应该在意外发生之前做好充分的准备工作,以
便在意外发生之后有相应的措施能快速地恢复数据库的运行,并使丢失的数据量
减少到最小。
10.1.1 数据库的备份操作和对象
数据库备份就是创建完整数据库的副本,并将所有的数据项都复制到备份集 ,
以便在数据库遭到破坏时能够恢复数据库。
对于计算机用户来说,对一些重要文件、资料定期进行备份是一种良好的习
惯。如果出现突发情况,比如系统崩溃、系统遭受病毒攻击等,使得原先的文件
遭到破坏以至于全部丢失,启动文件备份,就可以节省大量的时间和精力。
在备份数据库的时候,SQL Server 会执行如下操作。
将数据库所有的数据页写到备份介质上。
记录最早的事务日志记录的序列号。
把所有的错误日志记录写到备份介质上。
在 SQL Server 系统中,只有获得许可的角色才可以备份数据,分别是以下
几种。
固定的服务器角色 sysadmin。
固定的数据库角色 db_owner。
固定的数据库角色 db_backupoperator。
当然,管理员也可以授权某些用户来执行备份工作。
10.1.2 备份体系结构
SQL Server 2008 提供了高性能的备份和恢复功能,用户可以根据需求设计自
己的备份策略,以保护存储在 SQL Server 2008 数据库中的关键数据。
SQL Server 2008 提供了 4 种数据库备份类型:
完整数据库备份
完整数据库备份就是备份整个数据库。他备份数据库文件、这些文件的地址
以及事务日志的某些部分(从备份开始时所记录的日志顺序号到备份结束时的日
志顺序号)。这是任何备份策略中都要求完成的第一种备份类型,因为其他所有
备份类型都依赖于完整备份。换句话说,如果没有执行完整备份,就无法执行差
异备份和事务日志备份。
虽然从单独一个完全数据库备份就可以恢复数据库,但是完全数据库与差异
备份和日志备份相比,在备份的过程中需要花费更多的空间和时间,所以完全数
据库备份不需要频繁的进行,如果只使用完全数据库备份,那么进行数据恢复时
只能恢复到最后一次完全数据库备份时的状态,该状态之后的所有改变都将丢失。
差异数据库备份
差异备份是指将从最近一次完全数据库备份以后发生改变的数据。如果在完
整备份后将某个文件添加至数据库,则下一个差异备份会包括该新文件。这样可
以方便地备份数据库,而无须了解各个文件。例如,如果在星期一执行了完整备
份,并在星期二执行了差异备份,那么该差异备份将记录自星期一的完整备份以
来已发生的所有修改。而星期三的另一个差异备份将记录自星期一的完整备份以
来已发生的所有修改。差异备份每做一次就会变得更大一些,但仍然比完整备份
小,因此差异备份比完整备份快。
事务日志备份
尽管事务日志备份依赖于完整备份,但他并不备份数据库本身。这种类型的
备份只记录事务日志的适当部分,明确地说,自从上一个事务以来已经发生了变
化的部分。事务日志备份比完整数据库节省时间和空间,而且利用事务日志进行
恢复时,可以指定恢复到某一个事务,比如可以将其恢复到某个破坏性操作执行
的前一个事务,完整备份和差异备份则不能做到。但是与完整数据库备份和差异
备份相比,用日志备份恢复数据库要花费较长的时间,这是因为日志备份仅仅存
放日志信息,恢复时需要按照日志重新插入、修改或删除数据。所以,通常情况
下,事务日志备份经常与完整备份和差异备份结合使用,比如,每周进行一次完
整备份,每天进行一次差异备份,每小时进行一次日志备份。这样,最多只会丢
失一个小时的数据。
文件组备份
当一个数据库很大时,对整个数据库进行备份可能会花很多的时间,这时可
以采用文件和文件组备份,即对数据库中的部分文件或文件组进行备份。
文件组是一种将数据库存放在多个文件上的方法,并允许控制数据库对象
(比如表或视图)存储到这些文件当中的哪些文件上。这样,数据库就不会受到
只存储在单个硬盘上的限制,而是可以分散到许多硬盘上,因而可以变得非常大 。
利用文件组备份,每次可以备份这些文件当中的一个或多个文件,而不是同时备
份整个数据库。
文件组还可以用来加快数据访问的速度,因为文件组允许将表存放在一个文
件上,而将对应的索引存放在另一个文件上。尽管这么做可以加快数据访问的速
度,但也会减慢备份过程,因为必须将表和索引作为一个单元来备份。
为了使恢复的文件与数据库的其余部分保持一致,执行文件和文件组备份之后,必
须执行事务日志备份。
10.1.3 恢复体系结构
SQL Server 2008 包括 3 种恢复模型,其中每种恢复模型都能够在数据库发生
故障的时候恢复相关的数据。不同的恢复模型在 SQL Server 备份、恢复的方式和
性能方面存在差异,而且,采用不同的恢复模型对于避免数据损失的程度也不同。
每个数据库必须选择三种恢复模型中的一种以确定备份数据库的备份方式。
简单恢复模型
对于小型数据库不经常更新数据的数据库,一般使用简单恢复模型。使用简
单恢复模型可以将数据库恢复到上一次的备份。简单还原模型的优点在于日志的
存储空间较小,能够提高磁盘的可用空间,而且也是最容易实现的模型。但是,
使用简单恢复模型无法将数据库还原到故障点或特定的即时点。如果要还原到这
些即时点,则必须使用完全恢复模型或大容量日志记录恢复模型。
完全恢复模型
当从被损坏的媒体中完全恢复数据有着最高优先级时,可以使用完全恢复模
型。该模型使用数据库的复制和所有日志信息来还原数据库。SQL Server 可以记录
数据库的所有更改,包括大容量操作和创建索引。如果日志文件本身没有损坏,
则除了发生故障时正在进行的事务,SQL Server 可以还原所有的数据。
在完全恢复模型中,所有的事务都被记录下来,所以可以将数据库还原到任
意时间点。SQL Server 2005 支持将命名标记插入到事务日志中的功能,可以将数
据库还原到这个特定的标记。
记录事务标记要占用日志空间,所以应该只对那些在数据库恢复策略中扮演
重要角色的事务使用事务标记。该模型的主要问题是日志文件较大以及由此产生
的较大的从存储量和性能开销。
大容量日志记录恢复模型
与完全恢复模型相似,大容量日志记录恢复模型使用数据库和日志备份来恢
复 数 据 库 。 该 模 型 对 某 些 大 规 模 或 者 大 容 量 数 据 操 作 ( 比 如 INSERT
INTO、CREATE INDEX、大批量装载数据、处理大批量数据)时提供最佳性能和
最少的日志使用空间。在这种模型下,日志只记录多个操作的最终结果,而并非
存储操作的过程细节,所以日志尺寸更小,大批量操作的速度也更快。如果事务
日志没有受到破坏,除了故障期间发生的事务以外,SQL Server 能够还原全部数据,
但是,由于使用最小日志的方式记录事务,所以不能恢复数据库到特定即时点。
在大容量日志恢复模式下,备份包含大容量日志操作的日志需要访问数据库中的
所有数据文件。如果数据文件不可访问,则无法备份最后的事务日志,而且该日
志中所有已提交的操作都会丢失。
10.2 备份设备
备份存放在物理备份介质上,备份介质可以是磁带驱动器或者硬盘驱动器
(位于本地或者网络上)。SQL Server 并不知道连接到服务器的各种介质形式,因
此必须通知 SQL Server 将备份存储在那里。
10.2.1 备份设备的分类
备份设备就是用来存储数据库、事务日志或文件和文件组备份的存储介质。
常见的备份设备可以分为 3 种类型:磁盘备份设备、磁带备份设备和物理设备和逻
辑设备。
1.磁盘备份设备
磁盘备份设备就是存储在硬盘或其他磁盘媒体上的文件,与常规操作系统文
件一样。引用磁盘备份设备与引用任何其他操作系统文件一样。可以在服务器的
本地磁盘上或共享网络资源的远程磁盘上定义磁盘备份设备,磁盘备份设备根据
需要可大可小。最大的文件大小相当于磁盘上可用的闲置空间。如果磁盘备份设
备定义在网络的远程设备上,则应该使用统一命名方式(UNC)来引用该文件,
以\\Servername\Sharename\Path\File 格式指定文件的位置。在网络上备份数据可能
受到网络错误的影响。因此,在完成备份后应该验证备份操作的有效性。
建议不要将数据库事务日志备份到数据库所在的同一物理磁盘上的文件中。如果包
含数据库的磁盘设备发生故障,由于备份位于同一发生故障的磁盘上,因此无法恢
复数据库。
2.磁带备份设备
磁带备份设备的用法与磁盘设备相同,不过磁带设备必须物理连接到运行
SQL Server 2008 实例的计算机上。如果磁带备份设备在备份操作过程中已满,但
还需要写入一些数据,SQL Server 2008 将提示更换新磁带并继续备份操作。
若要将 SQL Server 2008 数据备份到磁带,那么需要使用磁带备份设备或者
Microsoft Windows 平台支持的磁带驱动器。另外,对于特殊的磁带驱动器,就仅
使用驱动器制造商推荐的磁带。在使用磁带驱动器时,备份操作可能会写满一个
磁带,并继续在另一个磁带上进行。所使用的第一个媒体称为“起始磁带”, 该磁带
含有媒体标头,每个后续磁带称为“延续磁带”, 其媒体序列号比前一磁带的媒体序
剩余37页未读,继续阅读
资源评论
w275768518
- 粉丝: 5
- 资源: 87
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python大作业:音乐播放软件(爬虫+可视化+数据分析+数据库)
- 课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告
- 软件和信息技术服务行业投资与前景预测.pptx
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功