图书馆Oracle数据库的备份与恢复方式
2011-08-15王作先
蓝 斌,王作先
北京航空航天大学北海学院,广西 北海 536000
随着计算机技术的普及,图书馆自动化得到突飞猛进的发展。而高校图书馆担负着为学校的教学和科学研究提供切实有效的文献信息保障。我校图书馆采用广州图创计算机软件开发公司的Inter1ib集群图书馆管理系统,此系统采用Orac1e数据库作为后台存储。在正常情况下Orac1e数据库能够保证数据的安全和系统的稳定,但由于计算机系统存在的安全问题而引起用户错误或介质故障,都会影响到数据库中数据的正确性和安全性,甚至会导致系统瘫痪。为了防止种种故障可能造成的数据损失,Orac1e提供了不同的手段来进行数据备份,通过制定完善的备份策略可以最小化数据损失。
1 数据库的备份与恢复
Orac1e数据库的备份主要是对数据库中重要的数据进行复制,存放到其他介质上。当数据库发生故障时使用已经备份的数据库信息还原到数据库中,使数据库恢复到发生故障前的状态。按照备份的方式不同,Orac1e数据库的备份主要有物理备份和逻辑备份两种策略。物理备份是指通过拷贝重要的物理文件的方式对数据库信息进行备份,以免物理故障造成损失。根据数据库的工作模式,物理备份又可以分为非归档模式和归档模式,即冷备份(非归档模式)和热备份(归档模式)。冷备份是在数据库关闭的情况下,利用操作系统的拷贝功能将数据库中的所有文件进行复制,也叫脱机备份。如果数据库需要不间断工作或者数据库可以关闭的时间不足以完成冷备份,那么我们需要联机备份,即热备份。热备份的条件是数据库必需在打开并且运行在归档模式的状态下。使用热备份的好处在于当一个数据文件或一个表空间处于备份状态时,用户仍然可以访问其他部分。因为热备份备份数据文件和归档日志等文件,数据库恢复可以一直进行到最后一个归档日志,实现无数据损失恢复,称为完全恢复。当然热备份的恢复也可以进行到某一时刻就停止恢复,称为不完全恢复。如果要对Orac1e的版本进行升级或更换数据库运行的环境,则可以使用Orac1e Export程序将数据从数据库中抽取出来存放在一个二进制文件中,也就是逻辑备份。逻辑备份的数据只能基于备份时刻进行数据转储,所以恢复时也只能恢复到备份时保存的数据。
2 备份与恢复方法
2.1 冷备份与恢复
冷备份是指关闭数据库的备份,又称脱机备份或一致性备份,在冷备份开始之前数据库必须彻底关闭。关闭操作必须用带有norma1、Transaction、immediate选项的shutdown来执行。备份具体步骤:
1)启动SQL*P1us,以SYSDBA身份登录数据库。
SQL>connect sys/sys @orac1e as sysdba;
2)关闭数据库
SQL>shutdown immediate;
3)复制以下文件到相应的磁盘:所有数据文件(DATA FILE)、所有控制文件(CONTROL FILE)、所有联机重做日志文件(REDO LOG)
4)启动数据库
SQL>startup;
恢复具体步骤:
1)关闭数据库
SQL>shutdown immediate;
2)将备份的数据还原到原来所在的位置。
3)启动数据库
SQL>startup;
冷备份的优点是容易归档, 备份与恢复迅速容易维护,安全性高。它的不足是单独使用时只能提供到某一时间点上的恢复,不能表或用户恢复且必需关闭数据库。若备份到外部存储设备速度会很慢。
2.2 热备份与恢复
由于冷备份需要关闭数据库,所以很多馆都选择热备份。在进行热备份之前要确保数据库已经处于归档模式。
首先以SYSDBA身份链接数据库,然后执行ARCHIVE LOG LIST命令,查看当前数据库是否处于归档模式。如果没有处于归档模式,需要先将数据库转换为归档模式。
将数据库的日志操作模式设置成归档模式并将归档方式设置成自动的。具体步骤如下:
1)关闭数据库,并修改参数文件。
Sq1>shutdown immediate
Log_archive_start=true
Log_archive_dest=f\ orac1e\ arch1
Log_archive_format=%r-%t-%s.dat
Log_archive_format=-f:\ orac1e\ arch2
2)启动数据库到装载状态
Sq1>startup mount
3)修改数据库的运行方式
Sq1>a1ter database archive1og
4)打开数据库。
Sq1>a1ter database open
5)设置自动恢复选项。
Sq1>set autorecovery on
热备份的具体步骤:
1)将数据库的某个表空间(以exa表空间为例)设置为热备份状态。
SQL>a1ter tab1espace exa begin backup;
2)在操作系统中将该表空间对应的所有数据文件备份。
3)结束表空间备份状态。
SQL>a1ter tab1espace exa end backup;
4)备份控制文件。
SQL>a1ter database backup contro1fi1e to ‘D:orac1eacku.bkp’;
热备份恢复的具体步骤:
1)将表空间设置为脱机状态。
SQL>a1ter database datafi1e ‘D:orac1eoradataorc1exa.dbf’ off1ine;
2)将备份的数据文件复制到原来的目录,并覆盖原来的文件。
3)使用RECOVER命令进行介质恢复。
SQL>recover datafi1e ‘d:orac1eoradataorc1exa.dbf’;
4)介质恢复完成后,将表空间恢复为联机状态。
SQL>a1ter database datafi1e ‘d:orac1eoradataorc1exa.dbf’ on1ine;
5)将数据库修改为打开状态。
SQL>a1ter database open;
如果数据库库正常打开,说明已经恢复成功。热备份的优点是不需要关闭数据库备份恢复精确度高,根据日志可以恢复某一时间点上(精确到秒)。它的不足是过程复杂,存放归档文件需要相当多的空间,操作不允许失误,若备份不成功,所得结果不可用于时间点的恢复。
2.3 逻辑备份与恢复(exp/imp)
导入/导出(IMP/EXP)是Orac1e最古老的两个命令行工具,导出是通过EXPORT工具读取数据库并输出到一个二进制文件,可以选择导出整个数据库或指定用户或指定表。EXP备份只能由IMP实用程序实现恢复。IMPORT工具会读取由EXPORT工具生成的二进制文件并执行文件中的命令,可以导入全部或部分数据。
使用EXP和IMP命令进行数据库的逻辑备份与恢复有3种操作方式:交互式、命令行模式和参数模式。交互式模式就是跟计算机进行交流。执行EXP(或IMP)命令后,接着系统会提示输入用户名和口令,按提示一步一步完成即可。参数模式其实是将命令行后面所带的参数写在一个后缀名为parfi1e的参数文件中,执行EXP(或IMP)命令时调用此参数文件即可。下面我们以命令行模式为例:
Exp user/password fi1e=d: est.dmp
此时导出的全库数据,也可以导出某个用户(U)或某个表格(T)的数据。
导出备份又可以分为3种类别:
1)完全导出(Comp1ete Export)。这种方式将把整个数据库文件导出备份。
exp user/password inctype=comp1ete fi1e=20100725.dmp
2)增量型导出(Incrementa1 Export)。这种方式将只会备份上一次备份后改变的结果。
exp user/password inctype=incrementa1 fi1e=20100725.dmp
3)累积型导出(Cumu1ative Export)。这种方式是导出自上次完全导出后数据库变化的信息。
exp user/password inctype=cumu1ative fi1e=20100725.dmp
逻辑恢复是逻辑备份的一个逆过程,需要重建数据库结构,然后执行IMP即可。
逻辑备份与恢复的优点是能够针对行对象进行备份,能够跨平台实施备份操作并迁移数据库,数据库可以不关闭。导出方式并不能保护介质失效,它仅仅是逻辑上的备份,这是它的缺陷。
3 结论
根据冷备份、热备份和逻辑备份各自的优缺点,可以制定一个比较完整的备份策略。根据我校的情况,我馆以逻辑备份为主,脱机备份为辅,在多个不同的物理磁盘上存有备份文件,并做远程备份。为了方便,备份文件应以日期命名,根据备份的内容和日期将文件归类同一编号。不管采用何种策略,目的都是在不影响或很少影响数据库可用性的情况下尽量提高备份操作的效率。
[1]孙风栋,等编著.Oracle数据库基础教程[M].北京:电子工业出版社,2003.
[2]盖国强著.Oracle数据库管理、优化与备份恢复[M].北京:人民邮电出版社,2007,9.
[3]Sam R.Alapati著,Oracle 10g数据库管理艺术[M].钟鸣等译.北京:人民邮电出版社,2007,9.
[4]姚世军.Oracle数据库原理与应用[M].北京:中国铁道出版社,2010,4.