经过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的定时备份。其操作界面如图:
Oracle数据库备份深入浅出_AnyBackup
 
爱数备份软件能够轻松恢复由用户误删除、病毒感染、磁盘损坏等原因丢失的数据。它支持数据库、控制文件、表空间的恢复,自动回滚归档日志等功能。恢复界面如下图:
Oracle数据库备份深入浅出_爱数_02
 
爱数备份软件提供了一套专业的灾难备份的解决方案,可以防止数据库服务器因火灾或磁盘损坏等重大原因导致数据完全丢失的情况。整个方案可由三个备份任务组成:
 
1.      备份oracle操作系统,对操作系统做每月备份。
2.      备份oracle程序目录,对程序目录做每月备份。
3.      备份oracle数据库,每周末对数据库做完全备份,每天晚上对数据库做增量备份,每三个小时(也可以更短)对归档日志做备份。
 这三个任务可以把整个数据库环境保护起来,也可以恢复oracle数据库到任一具有相同物理环境的服务器上。
另外,这款软件还支持文件备份、邮件服务器以及其他各种数据库的备份与恢复,比较适合于企业的信息的整体的统一的管理。企业在选择数据备份工具的时候应该结合企业自身情况,从企业的软硬件环境出发,比如服务器数量、有哪些关键应用、文件类型、数据量以及其增长速度等等综合考虑,来选择合适的产品。