四级数据库_15_备份与恢复

第15章 备份和恢复数据库

四级数据库 返回到 『四级数据库』

15.1 备份数据库

15.1.1 概述

1、备份数据库的作用

  • 备份数据库就是将数据库数据和与数据库的正常运行有关的信息保存起来,以备恢复数据库时使用,其主要目的是为了防止数据的丢失。
  • 另一作用是作为数据转移的一种方式;

2、备份时间

  • 对于系统数据库应进行了修改后立即备份
  • 对于用户数据库一般采用定期备份
  • 备份数据库要选在数据库操作少的时间进行,这样可减少对备份以及数据操作性能的影响。

15.1.2 备份设备

  • SQL Server将备份数据库的场所称为备份设备,它支持将数据库备份到磁带或磁盘上;

  • 备份方式有两种

  • 先创建备份设备,然后将数据库备份到备份设备上(永久备份设备);
  • 直接将数据库备份到物理文件上(临时备份设备)。

15.1.3 创建备份设备

   备份设备在操作系统一级实际上是物理文件,

只是备份设备必须要先创建好,然后才能使用

  • 用企业管理器创建备份设备
  • 使用系统存储过程创建备份设备

  sp_addumpdevice[@devtype=]’device_type’,[@logicalname=]’logical_name’,

[@physicalname=]’physical_name’


其中:

(1)[@devtype=]’device_type’:为备份设备的类型,可选下列之一:

  • Disk:使用磁盘文件作为备份设备;
  • Pipe:使用命名管道作为备份设备;
  • Tape:使用磁带设备。

(2)[@logicalname=]’logical_name’:备份设备的逻辑名称,该逻辑名称用在BACKUPRESTORE语句中;


2、用Transact-SQL语句恢复数据库

RESTORE DATABASE 数据库名

FROM 备份设备名

[WITH FILE=文件号[,]NORECOVERY[,]RECOVERY]

其中:

(1)    FILE=文件号:标识要还原的备份集,文件号为1表示备份设备上的第一个备份集,文件号为2表示备份设备上的第二个备份集;

(2)    NORECOVERY:表明对数据库的恢复还没有完成,使用此项恢复的数据库是不可用的,但可以继续恢复后续的备份;

(3)    RECOVERY:表明对数据库的恢复已完成,一般是在恢复数据库的最后一个备份时使用此项,此时恢复的数据库是可用的。

恢复日志的语法:

   RESTORE LOG 数据库名 FROM 备份设备名 [WITH FILE=文件号[,]NORECOVERY[,]RECOVERY]补充

 


15.1.4 备份类型

  • 完全备份

是将数据库中的全部信息进行备份,它是恢复的基线,在进行完全备份时,不但备份数据库的数据文件、日志文件,而且还备份文件的存储位置信息以及数据库中的全部对象及相关信息;

备份数据库是要消耗时间的,在进行备份数据库时,用户可以访问数据库,它将不影响数据库的备份,并且还可以将备份过程中发生的活动全部备份下来。

   2、差异备份   是备份从最近的完全备份之后对数据库所作的修改,它以完全备份为基点,备份变化了的数据文件和日志文件以及数据库中其他被修改的内容,在差异备份过程中,也允许用户访问数据库和对其操作,且在备份过程中的活动也一起备份下来;
3、事务日志备份

(1)    是备份从上次备份之后的日志记录,在默认情况下,事务日志备份完成后,要截断日志。

(2)    事务日志记录了用户对数据库进行的修改操作,为了避免记录越来越多,必须定期地将日志记录中不需要的部分清除掉,这种过程叫截断日志,备份日志是截断日志的一种方法;

(3)    如果要进行事务日志备份,必须将数据库的故障还原模型设置为“完全”方式或“大容量日志记录的”方式,因为在默认情况下的“简单”方式,只能进行完全备份和差异备份,不能进行事务日志备份,因为在该模式下系统自动定期将事务日志中不活动的部分清除。

(4)    如要对数据库进行事务日志备份,则必须先设置数据库的故障还原模型,否则在恢复时就会出错。这是因为不同的还原模型对日志的记录和维护方式是不一样的。


15.1.5 备份策略(三种)

1、完全备份

完全备份策略适合于数据库数据不是很大,而且数据更改不是很频繁的情况。可以几天或几周进行一次;

2、完全备份+日志备份

如不允许丢失太多数据,且不希望经常进行完全备份;

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

该策略的好处是备份和恢复的速度都比较快,出现故障时丢失的数据也比较少;


15.1.6 实现备份

1、  使用企业管理器备份数据库

2、  使用Transact-SQL语句备份数据库

(1)    备份数据库的基本语法:

BACKUP DATABASE 数据库名

TO {<备份设备名>}|{DISK|TAPE}={‘物理备份文件名’}

[WITH [DIFFERENTIAL][[,]{INIT|NOINIT}]]

其中:

(A)<备份设备名>:将数据库备份到已创建好的备份设备名上;

(B)DISK|TAPE:将数据库备份到磁盘或磁带;

(A)    DIFFERENTIAL:进行差异备份;

(B)    INIT:本次备份数据库将重写备份设备,即覆盖掉本设备上以前进行的所有备份;

(C)    NOINIT:本次备份数据库将追加到备份设备上,即不覆盖。

(2)    备份数据库日志的基本语法:

BACKUP LOG 数据库名

TO {<备份设备名>}|{DISK|TAPE}={‘物理备份文件名’}

[WITH [{INIT|NOINIT}] [{[,]NO_LOG|TRUNCATE_ONLY|NO_TRUNCATE}]]

其中:

(A)    NO_LOG和TRUNCATE_ONLY:表示备份完日志后要截断不活动的日志;

(B)    NO_TRUNCATE:表示备份完日志后不截断不活动的日志;

(C)    其他选项同备份数据库语句的选项。


15.1.7 备份媒体集

1、  当数据库很大时,有时一个备份设备的空间可能不能满足要求,这里就可以将数据库备份到多个不同的备份设备上,同时使用多个备份设备进行备份的为此设备就称为备份媒体集;

2、  使用媒体集与使用单一备份设备的方法一样,只需添加其他备份设备,系统会自动将这些设备作为一个备份媒体集使用;

3、  系统在使用备份媒体集时,基本是将备份所需的空间均衡地分担到每个备份设备上;

4、  如果以后要单独使用某个设备,则必须重新初始化备份媒体集,即删除不需要的设备后,重写并初始化即可,但注意的是,重新初始化后原备份媒体集上所备份的内容将全部丢失。


15.2 恢复数据库

15.2.1 恢复前的准备及恢复顺序

1、恢复前的准备

在恢复数据库前必须限制数据库的访问,一般选择“限制访问”中的“db_owner、dbcreator或sysadmin的成员”,说明只有以上角色才可访问数据库;

2、恢复的顺序

(1)  恢复最近的完全数据库备份;

(2)  恢复完全数据库备份之后最近的差异数据库备份;

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


15.2.2 实现恢复

1、用企业管理器恢复数据库


第19章 数据库新技术:

一、分布式数据库:

1、  分布式数据库概念:

分布式数据库系统(Def):物理上分散,逻辑上集中的数据库系统。

分布式数据库:分布式数据库系统上个场地上的数据库的逻辑集合。

2、  分布式数据库的目标:12个。

其中,最基本特征:本地自治,非集中式管理,高可用性。

     分布透明性: 位置独立性,数据分布独立性,数据复制独立性。

     带来一定复杂性:分布式查询,事务管理。

3、  数据分布策略:先数据分片,再数据分配。

数据分片:对某一个关系进行分片是将关系划分为多个片段,这些片段包括足够的信息可以使关系重构。(四种基本方法:水平,垂直,导出,混合)

数据分配:将数据片分到各个场地去。(方法:集中,分割,全复制,混合式)

4、  分布式数据库的参考模式结构:6种(p333)

5、  分布透明性:分片透明性(最高级别的);位置透明性;局部数据模型透明性。

6、  分布式DBMS:

组成:GDBMS(全局数据库):是分布式DBMS核心,提供终端分布透明性,协调全局事务在各个场地的执行,为全局提供应用支持。

     GDD(全局数据字典):

     LDBMS:提供场地自制能力。

     CM:通信管理,各个场地之间传送数据和场地。

7、  分布式数据库的相关技术

1、分布式查询:是用户与分布式DBS的接口。

考虑以下策略(3个):操作执行的顺序,操作执行的算法,不同场地间数据流动的顺序。

1、  分布式事务管理:恢复控制和并发控制。

恢复控制:两阶段协议(1,协同者询问所有参与者事务是否可以提交;2, 协同者根据参与者的回答决定事务的提交)协调者发生故障时导致阻塞。

并发控制:封锁协议。


二、对象数据库(OODB)

1、面向对象数据库的基本概念:对象与对象标识(OID)、封装(状态(属性)+ 行为(方法))、类、继承性、滞后联编(在运行时,根据具体环境选择相应的实现算法,而不是在编译时)、对象嵌套(一个对象的属性也是一个对象)

2、面向对象技术和数据库技术(2类)

   1、面向对象的数据库系统:在面向对象程序设计语言中引入数据库技术。如ObjectStore、O2等。

     1、持久程序化设计。(持久数据:创建这些数据的程序运行终止后,数据仍然存在于系统中。)

       1、嵌入式SQL语言在映射不同数据库的时候需要DBA将类型转换,而持久化程序设计语言中,查询语言是完全集成到宿主语言中,

       2、DBA直接操纵持久数据。

     2、持久语言的基本概念。

       1、对象持久化。(普通的,瞬态对象标识)

       2、对象标识和指针。(持久化指针)

       3、持久对象的存储和访问。(名字、标识、聚集形式存放,用循环寻找)

   2、对象-关系数据库:从关系数据库系统中自然的加入面向对象技术。如MS的SQL Server\Oracle的Oracle8i以及IBM的DB2 UDB等

     特点:扩充数据类型、支持复杂对象、支持继承(under)的概念、提供通用的规则系统。


三、并行数据库

   1、并行数据库共享结构(4种:共享内存,共享磁盘,无共享,层次)p343

   2、数据划分:

     一维数据划分:轮转法、散列法、范围划分。

     多维数据划分:BERD、CMD、MAGIC等

2、  并行算法(将算法任务分配到各个处理器上)

并行排序:非范围的,并行外排序归并

并行连接:划分连接,分片-复制连接

其他关系操作:选择,消除重复,投影,聚集。

(3)[@physicalname=]’physical_name’:备份设备的物理名称。