技术开发 频道

浅谈DB2数据库的备份与恢复

【IT168技术文档】所谓数据备份,就是保留一套备用系统,当运行系统出现故障时,能够以最小的时间恢复原来的数据。数据库的备份,可以是整个数据库的拷贝,也可以是其中一部分数据的拷贝(一个或多个表空间)。数据备份一般有两个层次:

硬件级备份:用冗余的硬件来保证系统的连续运行,比如双机容错、硬盘镜像等方式。如果主硬件损坏,后备硬件能够立刻接替其工作。

软件级备份:将系统数据保存到其他可以移动的介质上,如磁带、软盘、光盘等。当系统出现故障后,可以将系统恢复到备份时的状态。本文主要讨论的是数据库的软件级备份。

IBM的DB2数据库早已在世界范围赢得非常好的信誉,是受到广大用户青睐的数据库系统之一。本文讨论的是 DB2 5.5 for AIX 数据库系统的备份与恢复。

一、DB2数据库的备份

DB2数据库可以备份整个数据库,也可以备份其中的一个或多个表空间;可以在应用连接到数据库时和事务正在处理时进行备份(这称为联机备份),也可以在没有任何应用连接到数据库时进行备份(这称为脱机备份)。(见表一)

DB2数据库使用命令BACKUP来备份。BACKUP命令需要SYSADM,SYSCTRL或SYSMAINT的权限,其命令语法为:

BACKUP DATABASE 数据库别名 TO 介质名

或者

BACKUP DATABASE 数据库别名 TABLESPACE 表空间名 [ONLINE} TO 介质名

其中介质名一般指定为介质的绝对路径,在 AIX 中不回转的磁带机设备名为 /dev/rmt0,回转的磁带机设备名为 /dev/rmt0.n 。也可将数据备份在硬盘上,介质名即为其绝对路径。BACKUP命令在指定的介质上生成一个或多个备份文件,以下显示了在 AIX 4.3 for RS/6000 上生成的文件名结构:  

以下是 BACKUP 命令的一些例子:

(1)此例子是在指定的服务器目录 /backup/mydb 下给 mydb 数据库创建一个完整的备份:

BACKUP DATABASE mydb TO /backup/mydb

(2)此例子是给 mydb 数据库中指定的表空间 myspace1 进行联机备份,在进行备份时,应用可继续更新数据库:

BACKUP DATABASE mydb TABLESPACE myspace1 ONLINE TO /backup/mydb

表一 数据库能否进行向前恢复带来的影响

如果不允许进行向前恢复 如果允许进行向前恢复
在发生失败后,可以把数据库恢复到失败前与最后一次事务一致的状态。
 同样,也支持恢复到与最后一次事务一致的状态。
 
可以把数据库恢复到任何有效的备份状态,但是不能重新执行发生在备份之后的事务。
 可以把数据库恢复到任何有效的备份状态,并且可以重新执行从发生失败到当前为止提交的事务。
 
只能在没有任何应用连接到数据库时进行备份(这称为脱机备份)。
 可以在应用连接到数据库时和事务正在处理时进行备份(这称为联机备份)。同样支持脱机备份。
 
每一个备份都必须包含整个数据库的当前状态。
 一个备份可能包含整个数据库的当前状态,或者是一个或多个表空间。数据库的表空间可以单独地备份和恢复。

0
相关文章