第16章 如何利用RMAN对数据库进行备份与恢复
RMAN是Oracle提供的一个功能强大的备份/恢复工具,利用这个工具不仅可以对数据库进行备份与恢复,而且可以在不同平台的数据库之间移植数据。许多第三方的存储管理工具也提供了RMAN的接口,利用RMAN的功能对数据库进行备份与恢复。
与传统的备份与恢复方法相比,RMAN有很多的优点。首先,在RMAN中可以对整个数据库、单个表空间,或者单个数据文件进行完全备份和增量备份。其次,所有的备份与恢复都通过RMAN中的命令或者脚本完成,管理员不需要到操作系统中复制文件。再次,RMAN支持主流的磁带机设备,可以把备份产生的文件直接写入磁带。最后,利用RMAN可以对数据文件中的坏块进行恢复。
总之,RMAN是一个非常实用而且功能强大的工具。管理员需要做的工作包括:制定合理的备份策略,编写备份脚本,并与操作系统的任务调度结合起来,实现备份的自动化。
RMAN是Oracle软件的一部分,数据库管理员无需安装额外的软件。RMAN可以通过EM和命令行两种方式使用,在本章仅介绍命令行的用法。
16.1 RMAN的基本结构
RMAN虽然功能强大,但是它的结构是比较复杂的。为了更好地使用RMAN,需要了解它的结构。接下来将对RMAN的重要组成部分进行详细的介绍。
1.目标数据库
目标数据库就是我们要进行备份的数据库,也就是要重点保护的数据库。利用RMAN可以对数据库进行冷备份和热备份,如果数据库处于归档日志模式,可以针对整个数据库,针对某个表空间,针对某个数据文件进行完全备份和增量备份。
2.恢复目录
为了对目标数据库进行备份,RMAN需要了解目标数据库的结构信息,即在目标数据库中有哪些表空间,哪些数据文件等,同时还需要了解以前所做的备份的情况。这些信息称为恢复目录。恢复目录可以存储在目标数据库的控制文件中,也可以存储在另外一个数据库中。Oracle建议把恢复目录存储在另外一个数据库中,而且把两个数据库分开在两个不同的计算机中运行。这么做的目的是在最大程度上保证数据库的安全。
如果把恢复目录存储在目标数据库的控制文件中,一旦计算机硬件出现故障,数据库和控制文件可能同时损坏,这时候即使管理员手头有完整的备份文件,也无法对数据进行恢复。如果把恢复目录存储在另外一个数据库中,即使目标数据库所在的计算机发生故障,管理员利用备份文件和恢复目录的内容可以对数据库进行完全恢复。
3.RMAN客户端
RMAN客户端是Oracle软件的一部分,就是用来连接目标数据库,并对其进行备份与恢复的部分。管理员可以通过EM和命令行两种方式使用RMAN。命令行的好处是可以编写复杂的脚本,把RMAN和操作系统的任务调度结合起来,可以实现备份的自动化。
4.通道
实际上,RMAN客户端并没有备份与恢复的功能。当RMAN连接目标数据库时,在数据库实例中将启动一个服务器进程,RMAN客户端的有关备份与恢复的命令都发送给服务器进程并由它负责执行。通道代表到备份设备的一个数据流,并对应一个服务器进程。通道将数据读到服务器进程的PGA中,并对数据进行处理,然后把数据写入备份设备。图16.1表示RMAN客户端、通道和目标数据库的关系。
RMAN客户端支持两种类型的通道,即磁盘通道和SBT(system backup to tape)通道,SBT设备包括磁带机和带库两种设备,通常由设备厂家提供的介质管理器进行控制。Oracle软件集成了主流SBT设备的驱动程序,在备份与恢复时,可以直接对SBT设备进行读写。
图 16.1 RMAN客户端、通道和目标数据库的关系
每次在对数据库进行备份或恢复时,都需要分配一个或多个通道,如果希望把数据库备份到磁带上,就分配SBT通道,如果希望备份到磁盘上,则分配磁盘通道。通道的分配有两种方法,即自动分配和手工分配。
5.备份集
利用RMAN工具,将数据库中的一个或多个数据文件、控制文件、重做日志文件等备份到一个称为“备份集”的逻辑结构中,备份集的格式是特定的,只能由RMAN来创建和访问。一个备份集包含一个或多个特定格式的二进制文件,每个文件称为一个备份片。假如要备份10个数据文件,将产生一个备份集,这个备份集中可能只包含一个备份片,即一个文件。如果备份集的大小超过了文件系统对文件大小的限制,这时将产生多个备份片,每个备份片的大小不超过文件系统对单个文件大小的限制。
在对数据进行备份时,也可以指定备份片的大小,以适应存储设备的容量。例如,假设一个备份集的大小大约为80GB,而一盘磁带的容量为20GB,我们可以指定备份片的大小为20GB,那么这个备份集将包含4个备份片,正好使用4盘磁带。
利用RMAN,还可以对数据库中的文件进行“映像复制”式备份,这种备份相当于在操作系统中对文件进行的复制,备份产生的文件不是RMAN特定的格式。