Oracle数据库的备份与恢复

2016-02-24 08:07
铁路计算机应用 2016年3期
关键词:数据文件备份逻辑

徐 曼

(哈尔滨铁路局 信息技术所,哈尔滨 150001)

Oracle数据库的备份与恢复

徐 曼

(哈尔滨铁路局 信息技术所,哈尔滨 150001)

介绍Oracle数据库常用的3种备份方法,即:RMAN备份、逻辑备份和冷备份。RMAN备份以数据库文件存储,分别以采用文件系统方式和ASM自动磁盘管理方式的两个项目为例,介绍RMAN备份的不同写法。逻辑备份说明了expdp和impdp数据泵导入导出技术的使用和相关的角色权限。最后阐述了冷备份的优缺点。这3种备份方法在实际工作中应用广泛,给Oracle数据库的稳定运行提供了有力的保障。

数据库;备份;恢复

随着计算机技术的普及,数据库技术得到了广泛的应用,各种数据的安全性和重要程度也越来越被人们所重视。作为信息安全的一个重要内容,备份技术应运而生,系统备份如RAID技术,双机热备,集群技术等都是提高了系统的备份和高可用性,同时也一定程度地解决了数据库的备份问题,以几个项目为例,详细介绍Oracle数据库的备份与恢复。

1 RMAN备份

RMAN是指Oracle提供的实用程序Recovery Manager,即恢复管理器。RMAN是一个智能和自动化的备份恢复工具,使用RMAN可以轻松实现数据库的所有备份任务如备份整个数据库,备份特定的表空间或者数据文件,增量备份,备份文件的差错检验等。RMAN的架构如图1所示[1]。

图1 RMAN结构组成

RMAN备份根据数据库文件存储方式的不同有不同的写法,下面以铁路货运计划系统和哈尔滨铁路局电子公文系统为例,分别介绍数据库文件存储采用文件系统方式和ASM自动磁盘管理方式的不同的RMAN备份写法。

铁路货运计划系统采用小型机双机集群,数据库为双节点oracle9i RAC。在2号小型机上部署crontab定时任务,定时启用数据库备份脚本,数据库开启归档模式。数据库数据文件备份脚本如下:

控制文件和归档日志文件备份脚本如下:

哈尔滨铁路局电子公文系统采用小型机双机集群,数据库为Oracle11g 双节点并发 RAC,ASM自动存储管理,数据库开启归档模式。在2号小型机上部署crontab定时任务,定时启用数据库备份脚本。数据库数据文件备份脚本如下:

控制文件和归档日志文件备份脚本如下:

RMAN备份的文件自动保存在恢复目录下,实现数据恢复操作时,指令简洁,RMAN自动寻找需要的文件实现数据恢复。数据库在归档模式和非归档模式下均可进行恢复,可进行完全恢复,也可以进行控制文件、数据文件和重做日志文件的单独恢复。

2 逻辑备份

逻辑备份是指使用Oracle提供的数据迁移工具如EXPDP,EXP等,导出数据库对象的逻辑结构以及数据,并存入一个二进制转储文件(.dmp文件)中。EXP/IMP是Oracle比较传统地数据库逻辑备份工具实现全库或表空间的逻辑备份,但是它不支持用户的交互模式,即在备份过程中无法控制或切换备份进程,而Oracle11g及以上版本提供的数据泵技术可以很好的实现用户交互,支持网络操作以及重启失败的备份作业,所以Oracle建议使用数据泵技术来代替EXP和IMP实用程序。

数据泵工具可以从命令行实用程序expdp和impdp中调用,或者通过PL/SQL程序包DBMS_ DATAPUMP调用。

数据泵技术的特点:

(1)导入/导出的所有工作都由数据库实例完成。

(2)可以使用DBMS_DATAPUMP PL/SQL API建立、检测和调整数据泵任务。

(3)可以对IMPDP/EXPDP导入/导出任务进行重新启动(类似于网络下载的断点续传)

2.1 数据泵导出数据

使用数据泵导出时,如果不是直接导出到远程数据库中,应首先创建目录对象。

(1)创建目录对象的代码

Windows环境下:

Unix环境下:

(2)为目录对象授权

对具体的用户授予权限:

将目录对象设置为公共读写:

在dba_directories视图中可查看常见的目录对象:

expdp的导出方式如表1所示。

表1 expdp的导出方式

2.1.1 数据库导出方式

完整的数据库导出要求用户拥有EXP_FULL_ DATABASE角色权限。

示例:

2.1.2 用户模式导出方式

示例:

可以省略full=y参数,使用schemas=schema_ list参数来表示要导出的用户列表,如果有多个用户,则用户之间用逗号分隔。要想导出多个用户,必须具备EXP_FULL_DATABASE角色权限。

2.1.3 表导出方式

示例:

主要参数:

nologfile=y:表示不会将操作日志写入磁盘,不过仍然会在终端显示出来。

content=data_only:表示只导出表中的数据而不导出元数据;如果是content=medata_only,则表示只导出元数据而不导出表中的数据。如果不写这个参数,则二者全都导出。

2.1.4 表空间导出

示例:

expdp system/passwd directory=pbdir dumpfile =person_ts.dmp tablespaces=person

导出person表空间所有数据库对象及相依对象

主要参数:

tablespaces=tablespace_list:指定要导出表空间。

要求数据库用户拥有EXP_FULL_DATABASE角色权限。

2.2 数据泵导入数据

导入和导出的数据库对象可以是同一个数据库,也可以是不同的数据库。

数据泵导入程序impdp可以按照如下方式进行,如表2所示。

表2 impdp的导入模式

导入导出方式匹配如表3所示。

如果导入源是一个替代导出文件集的有效数据库或者要求EXP_FULL_DATABASE角色的导出会话,则需要用户具有IMP_FULL_DATABASE角色权限。

表3 数据泵导入导出方式比较

读取导出文件pb.dmp,并提取所有的DDL,将其放入到pb文件中。(不对操作日志进行写入磁盘的操作)

3 冷备份

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。

冷备份的优点是:

(1)是非常快速的备份方法(只需拷文件);

(2)容易归档(简单拷贝即可);

(3)容易恢复到某个时间点上(只需将文件再拷贝回去);

(4)能与归档方法相结合,做数据库“最佳状态”的恢复;

(5)低度维护,高度安全。

但冷备份也有如下不足:

(1)单独使用时,只能提供到“某一时间点上”的恢复。

(2)再实施备份的全过程中,数据库必须要做备份而不能做其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

(3)若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。

(4)不能按表或按用户恢复。

如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括: 所有数据文件 、所有控制文件 、所有联机REDO LOG文件 和Init.ora文件(可选) 。

4 结束语

本文以实际项目为例,详细介绍了Oracle数据库的3种常用备份与恢复的方法,RMAN备份与恢复、逻辑备份即数据泵导入导出技术和冷备份,以上3种备份方法在实际工作中应用广泛,给Oracle数据库的稳定运行提供了有力的保障。

[1]林树泽 ,历铁帅, 何会军.Oracle数据库管理之道[M].北京:清华大学出版社 ,2012.

[2]刘 伟.一种Oracle数据库异常迁移现象的解决方法[J].铁路计算机应用,2012,21(18).

[3]徐 卓.关于Oracle数据库设计、开发、应用的探索[J].铁路计算机应用, 2014,23(9).

责任编辑 徐侃春

U29∶TP39

A

2015-08-27

徐 曼,高级工程师。

1005-8451(2016)03-0046-04

猜你喜欢
数据文件备份逻辑
刑事印证证明准确达成的逻辑反思
VSAT卫星通信备份技术研究
逻辑
创新的逻辑
创建vSphere 备份任务
基于表空间和数据文件探讨MIS中数据库架构设计
女人买买买的神逻辑
旧瓶装新酒天宫二号从备份变实验室
基于网络环境的社区协同办公问题探讨(二)
基于3G的VPDN技术在高速公路备份链路中的应用