经过 30 年的发展 Oracle 数据已经占据了数据库市场上的半壁江山,其表现出来的优秀的查询性能以及稳定性适用于构建于各种大型的数据库, Oracle 数据库也成为越来越多的企业的第一选择。随着企业信息化建设的步伐,数据已经成为企业正常运作中最重要的一部分,数据的意外丢失或损坏将会给企业带来毁灭性的打击。因此,做好企业关键数据的备份工作刻不容缓。

 

Oracle 数据库提供了多种备份恢复方式,我们可以把它们分为逻辑备份恢复与物理备份恢复两种类型。逻辑备份和恢复即用 Oracle 提供的导入导出( IMP/EXP )工具将数据库中的逻辑数据(数据表、索引等)导出到指定的备份集或从指定的备份集将数据导入到数据库。逻辑备份产生的备份集小,大大节省了存储空 间,但是这种方式在恢复时容易出现数据库的不一致性问题,所以这种方式一般只适用于像测试数据库等那些要的数据库的备份。物理备份与恢复是以物理数据块为 单位的,这种方式的备份产生的备份集相对逻辑备份较大,但它完全避免了数据库一致性的问题,所以这种方式一般适用于像生产数据库等那些重要的数据库的备 份。

 

Recovery Manager ,简称 RMAN ,是 Oracle 提供的一种用于备份、还原、恢复的命令行工具,适用于 Oracle 8i 及更高的版本。它提供了一组用于实现物理备份的 SQL 命令,通过这些命令,可以实现 Oracle 数据库的完全、增量、差异备份,归档日志、单独表空间的备份以及根据已有的备份集恢复到出错前的任意时间点的功能。相比以前基于用户方式的复杂而烦琐的备份与恢复命令, RMAN 的出现大大节省了 Oracle DBA 管理数据库的时间。

 

RMAN 对数据库执行增量 0 级备份命令如下:
Connect target system/manager@orcl;        
Run {
 Allocate channel d1 device type disk;            
Backup incremental level 0 format ‘c:\backup\db_%d_%s_%p_%t’ database tag ‘20080610’ include current controlfile;                       
Release channel d1;
}

 

首先通过 connect 命令连接需要备份的 oracle 数据库,此处我们是通过控制文件替代恢复目录的方式备份的,所以不需要连接恢复目录。连接成功后,给我们的备份任务分配一个通道,然后运用 backup 命令对数据库进行备份,备份级别为增量 0 级,备份目的地为 c:\backup ,备份的标记为 20080610 ,此标记可用于数据库恢复,备份时用 include 包含控制文件,使得控制文件也一并备份。待备份完成后,调用 release 命令删除通道。这样,对数据库的备份就完成了。

 

RMAN 对单个表空间执行备份命令如下:
Connect target system/manager@orcl;        
Run {
 Allocate channel d1 device type disk;
 Backup incremental level 0 tablespace ‘SYSTEM’ format ‘c:\backup\tabl_%d_%s_%p_%t’ tag ‘20080610001’;                                                                     
 Release channel d1;
}

 

RMAN 对归档日志执行备份命令如下:
Connect target system/manager@orcl;
Run{
 Sql ‘alter system archive log current’;
 Allocate channel d1 device type dis;
 Backup archivelog all format ‘c:\backup\arch_%d_%s_%p_%t’ not backed up 2 times;
 Release channel d1;
}

 

上面的归档日志的备份命令表示备份所有还没有备份过 2 次的归档日志。我们也可以通过 delete input 命令来达到备份这些归档日志后立即删除这些归档日志。由于归档日志的归档目的地的空间是有限的,当归档日志目的地被归档日志填满后, oracle 数据库会因为无法继续归档而暂时终止运行,所以 delete input 就很有用了,备份完成后就把备份过的归档日志删除以保持空间的循环利用。另外,我们也可以定时手动删除已经备份过的归档日志,具体命令如下:

 

Allocate channel for maintenance device type disk;
Delete archivelog until time ‘sysdate-7’ backed up 2 times to disk;

 

这两行命令的作用是删除那些 7 天前的并且已经备份过 2 次的归档日志。

 

这里有一点要指出的是, RMAN 只能备份数据到本地服务器,如果要把 oracle 数据备份到远程服务器上去,只能是通过迁移工具将 RMAN 备份后的数据迁移或直接通过第三方备份软件

 

对于专业的 Oracle 数据库管理员来说, RMAN 的出现确实大大的提高了他们的工作效率,但是如果要达到对 Oracle 数据库智能备份以及防止重大事故导致数据丢失的灾难备份, RMAN 还是有些力不从心。并且根据调查,目前还有很多使用了 Oracle 数据库的企业没有配备专业的 Oracle 数据库管理员,这也就导致了他们不能充分的利用 RMAN 强大功能来实现对数据库的保护。

 

针对于这些情况,企业可以选择专业的备份厂商提供的第三方备份工具,比如上海爱数软件有限公司( www.eisoo.com )提供的基于 B/S 模式的爱数备份软件 2.0 企业版,集成的 Oracle 数据库的备份,支持 Oracle 数据库的完全、增量备份,归档日志、单独或多个表空间的备份,以及数据的加密压缩,计划、循环等功能,大大简化了用户的操作,即使没有 Oracle 管理经验的管理员也能非常容易的对 Oracle 数据库做备份或恢复操作。通过封装 RMAN 中大部分的命令以及与介质管理库的结合,使得 Oracle 数据可以备份到网络中的任何地方。专业的灾难备份与恢复方案使得用户在遇到硬件损坏、火灾等重大事故时能够快速恢复数据,让企业在最短的时间内恢复正常运作。

 

爱数备份软件的备份操作非常简单,用户在配置好爱数备份服务器以及在 Oracle 服务器上安装上客户端后,只需新建一个 Oracle 备份任务,就可实现对 Oracle 数据库的备份。用户可以通过对其选项中的任务计划进行设置,实现 Oracle 的定时备份。其操作界面如图:
73322_2010061220034011m0m.thumb.jpg

 

爱数备份软件能够轻松恢复由用户误删除、病毒感染、磁盘损坏等原因丢失的数据。它支持数据库、控制文件、表空间的恢复,自动回滚归档日志等功能。恢复界面如下图:
73322_2010061220035214uDj.thumb.jpg

 

爱数备份软件提供了一套专业的灾难备份的解决方案,可以防止数据库服务器因火灾或磁盘损坏等重大原因导致数据完全丢失的情况。整个方案可由三个备份任务组成:

 

1.       备份 oracle 操作系统,对操作系统做每月备份。
2.       备份 oracle 程序目录,对程序目录做每月备份。
3.       备份 oracle 数据库,每周末对数据库做完全备份,每天晚上对数据库做增量备份,每三个小时(也可以更短)对归档日志做备份。

 

这三个任务可以把整个数据库环境保护起来,也可以恢复 oracle 数据库到任一具有相同物理环境的服务器上。


另外,这款软件还支持文件备份、邮件服务器以及其他各种数据库的备份与恢复,比较适合于企业的信息的整体的统一的管理。企业在选择数据备份工具的时候应该结合企业自身情况,从企业的软硬件环境出发,比如服务器数量、有哪些关键应用、文件类型、数据量以及其增长速度等等综合考虑,来选择合适的产品。