计算机三级数据库技术 第12章 备份与恢复数据库

计算机三级数据库技术 专栏收录该内容
15 篇文章 0 订阅

12.1 备份与恢复的概念

12.1.1 备份数据库

数据备份的原因:

  • 防止数据丢失(存储介质故障、用户的操作错误、服务器故障、病毒侵害、自然灾害),一旦出现问题,能够根据备份进行恢复。
  • 是数据转移的一种方式。(将数据库从一台服务器复制到另一台服务器、 设置数据库镜像、文件归档和灾难恢复)

12.1.2 恢复数据库

恢复数据库指数据库系统出现故障时,利用备份副本将数据库恢复到某个正确、一致的状态的过程。

两种类型:介质故障恢复、非介质故障恢复


12.2 SQL Server的备份与恢复机制

12.2.1 恢复模式

恢复模式是一个数据库属性,它用于控制数据库备份和还原操作的基本行为。

恢复模式决定备份类型和还原方案。备份类型决定数据库备份的内容。

三种恢复模式:简单恢复模式、完整恢复模式、大容量日志恢复模式

简单恢复模式:

        此模式简略地记录大多数事务,不备份事务日志。所记录的信息只是为了确保在系统崩溃或还原数据备份之后数据库的一致性。

完整恢复模式:

        此模式完整地记录了所有的事务,并保留所有的事务日志记录,直到将它们备份

大容量日志恢复模式:

        此模式简略地记录大多数大容量操作(例如索引创建和大容量加载), 完整地记录其他事务。大容量日志恢复模式提高了大容量操作的性能,常用作完整恢复模式的补充。

12.2.2 备份内容及时间

备份内容:

  • 用户数据库
  • 系统数据库
  • 备份时间

系统数据库:修改之后进行备份

用户数据库:周期性备份

进行下列操作后,立刻进行备份:

  • 创建数据库之后,或批量加载数据之后。
  • 创建索引之后。
  • 执行清理事务日志的操作之后。
  • 执行大容量数据操作之后。

12.2.3 SQL Server的备份机制

(1)备份设备

SQL Server将备份数据库的场所称为备份设备。

支持将数据库备份到磁带或磁盘上。

备份设备类型:

        永久备份设备:在备份之前需要先建立。

        临时备份设备:不需要预先建立,在备份时将数据库直接备份到物理文件上。

使用系统存储过程创建备份设备

sp_addumpdevice 
[ @devtype = ] 'device_ type', 
[ @logicalname = ] 'logical name', 
[ @physicalname = ] 'physical name'

其中,device_type表示设备类型,其值可为disk和tape。logical_name表示设备的逻辑名称。physical_name表示设备的实际名称。

例:创建一个名为MYDISKDUMP的磁盘备份设备,其物理名称为D:\Dump1.bak。

EXEC sp_addumpdevice 'disk', 'mydiskdump', 'D:\dump1 bak'

(2)备份类型

1)数据库备份

  • 完整数据库备份
  • 差异数据库备份

2)文件备份

  • 文件备份
  • 差异文件备份

3)事务日志备份

完整数据库备份(也称完全转储)

        完整备份将备份整个数据库,包括事务日志部分(以便可以恢复整个备份)。完整备份代表备份完成时的数据库。

        是恢复的基线

        备份数据文件、数据库对象和数据的信息

        备份备份过程中发生的活动

        备份末提交的事务到日志

差异数据库备份(也称差异转储)

        备份从上次完整备份之后数据的改变

        备份差异备份过程中发生的活动

        备份未提交的事务到日志

        比完整备份节约时间

        以前次完整备份为基准点(成为差异基准)。

        在还原差异备份前,应先还原最新的完整备份,再还原基于该完整备份的最新差异备份。

文件备份

        可以分别备份和还原数据库中的文件。使用文件备份使用户可以仅还原已损坏的文件,而不必还原数据库的其余部分,从而提高恢复速度

差异文件备份

        创建文件或文件组的完整备份后,可以基于该完整备份创建一系列的差异备份。

        差异文件备份只捕获自上一次文件备份以来更改的数据。

事务日志备份

        备份从上次日志备份之后的日志记录备份完成后要截断日志

        事务日志备份仅用于完整恢复模式或大容量日志恢复模式

        三种类型的事务日志备份:纯日志备份,大容量操作日志备份,结尾日志备份。

(3)常用备份策略

完整备份

完整备份+日志备份

完整备份+差异备份+日志备份

完整备份

        适合于数据库数据不是很大,而且数据更改不是很频繁的情况。

        完整备份一般可以几天进行次或几周进行一次。

        当对数据库数据的修改次数不是很频繁,而且允许一定量的数据丢失时,可以选择只用完整备份策略。

        完整备份包括了对数据和日志的备份。

完全备份+日志备份

        如果不允许丢失太多的数据,而且又不希望经常地进行完全备份(因为完全备份进行的时间比较长),则可以在完全备份中间加些日志备份。

例如,可以每天0:00点进行一次完全备份 ,然后每隔几小时进行次日志备份。

        完全备份+差异备份+日志备份

        完全备份加差异备份和日志备份的策略,即在完全备份中间加一些差异备份,在差异备份中间加一些日志备份。

        比如每周周日0:00进行次完全备份,然后每天0:00进行次差异备份,然后再在两次差异备份之间增加一些日志备份。

        这种策略的好处是备份和恢复的速度都比较快,而且当系统出现故障时,丢失的数据也比较少。

(4)实现备份

  • 使用SQL Server管理平台
  • 使用T-SQL语句

示例1:对“Students”理数据库进行一次完全备份,并备份到MyBK_1备份设备上(假设此备份设备已创建好)。

BACKUP DATABASE students TO MyBK_1

示例2:对"pubs"数据库进行一次完全备份,备份到MyBK_1备份设备上,并覆盖掉该备份设备上已有的内容。

BACKUP DATABASE pubs 
TO MyBK_1 WITH INIT

示例3:对“pubs”进行次事务日志备份,并以追加的方式备份到MyBKLog1备份设备上。

BACKUP LOG pubs 
TO MyBKLog1

12.2.4 SQL Server的恢复机制

SQL Server支持在以下级别恢复(还原)数据:

        数据库(数据库完整还原)

        数据文件(文件还原)

还原的顺序

  • 恢复最近的完全备份;
  • 恢复最近的差异备份(如有);
  • 恢复自差异备份之后的所有日志备份(按备份的先后顺序)。
  • 恢复数据库。

实现还原

  • 使用SQL Server管理平台
  • 使用T-SQL语句

示例:假设已对pubs数据库进行了完全备份,并备份到MyBK_1备份设备上,假设此备份设备只含有对pubs数据库的完全备份。则恢复pubs数据库的语句为:

RESTORE DATABASE pubs 
FROM MyBK_1 
RESTORE DATABASE Students 
FROM MyBK_2 
WITH FILE=1, 
NORECOVERY RESTORE DATABASE Students 
FROM MyBK_2 WITH FILE=2, 
NORECOVERY RESTORE LOG Students 
FROM MyBKLog1


12.3 Oracle的备份与恢复机制

12.3.1 Oracle数据库逻辑备份与恢复

Oracle数据库常见的故障类型:

内部恢复机制自动处理:

  • SQL语句错误
  • 进程失效
  • 实例失效
  • 网络失效

利用备份数据恢复:

  • 用户错误
  • 介质失效

逻辑备份:

        指通过T具将数据库中的数据转换成专用或通用格式的文件,保存在文件系统中。

工具:

  • EXP/IMP
  • EXPDP/IMPDP

12.3.2 Oracle数据库物理备份与恢复

物理备份:

        指对数据物理文件所实施的备份。

物理备份管理方式:

  • 用户管理的备份
  • Recover Manager(RMAN)备份
  • 第三方备份软件

恢复数据库两个过程:

  • Restore:从备份数据中找到完整备份文件,恢复完整文件的过程。
  • Recover:将日志和增量备份的改变应用到数据文件,使数据文件恢复到指定时间点上的过程。


章末测试

一、选择题

1、事务日志用于保存( )

A. 程序运行过程

B. 程序的执行结果

C. 对数据的更新操作

D. 数据操作

答案:C

2、现有SQL Server 2008数据库服务器,其中的一个数据库占用80GB空间,另有一台用于备份的计算机,该机器上有4个大小均为50GB的硬盘分区。若要将此数据库完全备份到该计算机上,则( )

A. 不能实现,因为每个分区上的空间都不够80GB

B. 可以先建立一个备份设备,这个设备分别在4个分区上各占用20GB空间,然后再用此设备备份数据库

C. 可以先在每个分区上分别建立一个备份设备,指定每个设备的大小均为20GB,并建立一个包含这4个备份设备的备份媒体集,最后再用此备份媒体集备份数据库

D. 可以先在每个分区上分别建立一个不用指定大小的备份

设备,然后将数据库同时备份到这4个备份设备上

答案:C

3、在SQL Server 2008中,设某日上午10点对DB1数据库进行了一次完整备份,在上午11点时DB1数据库突然因硬件故障造成部分数据损坏,但该数据库的日志文件没有遭到破坏。为了尽可能减少数据丢失,下列操作中最可行的是( )

A. 首先对DB1进行次完整备份,然后再恢复数据库

B. 首先对DB1进行一次差异备份,然后再恢复数据库

C. 首先对DB1进行次结尾日志备份,然后再恢复数打

D. 首先清空日志文件内容,然后再恢复数据库

答案:C

5、在SQL Server 2008中,master是一 个非常重要的系统数据库,如果master损坏将会对系统造成严重后果,因此系统管理员应该对master进行备份。SQL Server 2008对数据库提供的备份有( )

I . 完全备份

II . 差异备份

III. 日志备份

A. 仅I

B. 仅I和III

C. 仅I和II

D. 全部

答案:C

6、下列关于 日志备份的说法中,错误的是( )

A. 日志备份仅备份日志,不备份数据

B. 日志备份的执行效率通常比差异备份和完整备份高

C. 第一次对数据库进行的备份可以是日志备份

D. 日志备份的时间间隔通常比差异备份短

答案:C

二、填空

1、( )只记录自上次完整数据库备份后发生更改的数据。

答案:差异备份

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值