当前位置:首页 > 技术与方案 > 数据库技术相关

Oracle数据库的备份

(2012-09-04 19:32:51)

一、引言
目前,Oracle数据库已经发展成为主流大型数据库之一,其存储级别可以达到TB级,从而也在更广泛的范围运用开来,那么如何保证数据库的安全性和可靠性就更至关重要了。现在,就平常的实际使用,和大家谈谈关于Oracle数据库的备份方法及备份策略。

二、分类
对于不同的项目和应用,Oracle数据库提供了多种丰富的备份方法用以达到不同的功能。
1. 从总体上可分为物理备份和逻辑备份。
* 物理备份是实际物理数据库文件从一处复制到另一处(通常从磁盘到磁带)的备份,并在备份过程中对物理文件实施压缩、校验等相关操作。
* 逻辑备份则是利用SQL从数据库中导出数据并存入二进制文件。这些数据可以重新装载到原数据库或其他数据库。逻辑备份通常为物理备份的补充方式。
2. 按备份时的数据库状态可分为联机备份(又叫热备份)和脱机备份(又叫冷备份)。
* 热备份是指不需要关闭数据库进行的备份,在备份的同时可以进行正常的数据库的各种操作,满足了7*24的系统需要。
* 冷备份是指关闭数据库之后进行备份,所以备份时数据库将不能被访问。
3. 按数据库运行时的存档状态可分为存档方式下的备份(ARCHIVELOG)和非存档方式下的备份(NOARCHIVELOG)。
* 存档方式是指在online redo log文件满后转到存档目录下形成存档文件之后,再循环使用online redo log文件。这种方式的目的是当数据库发生故障时最大限度恢复所有已提交的事物。
* 非存档方式指在联机存档文件满后直接循环覆盖联机存档组中的联机存档文件。
* 通常,我们根据用户对数据库的高可用性的要求和可以忍受数据丢失的程度,来考虑让数据库工作在哪一种模式下,例如,把生产机上的(正式运行的)数据库放置在存档方式(ARCHIVELOG)下运行;而一般的开发机上的(用于开发和调试)数据库采用不存档方式(NOARCHIVELOG)。
4. 按实现的手段和工具可分为逻辑输出/输入、RECOVER MANAGER(RMAN)方式、SQL和操作系统方式、Oracle Enterprise Manager的GUI方式等。
5. 按备份的增量概念可以分为全数据库备份、增量备份和累计增量备份。
* 物理备份和逻辑备份均支持增量备份的概念,RMAN方式备份在数据块级上支持增量备份,而逻辑备份只在表级上支持增量备份。
下面,我们主要讨论一下冷备份、热备份和逻辑备份:

三、物理备份的实现之冷备份
冷备份就是在做备份的时候,数据库必须是通过Shutdown Normal正常关闭(只有这个状态是数据库完全关闭状态)。在操作系统下,利用操作系统的复制工具,把Oracle数据库所对应的数据文件、控制文件、联机日志文件、存档文件及参数文件复制出来。关闭数据库之前,通常需要确定和查看上述文件的名称、位置等信息。
因为冷备份是在数据库关闭时实现的,因此对数据系统运行的状态是毫无必要的。数据库可以运行在存档或非存档两种方式下。如果数据库是运行在非存档方式下, 仅仅需要在正常关闭数据库后,备份数据库的所有组成文件、控制文件、数据文件、联机日志文件及参数文件。基于这种备份的恢复, 需要使用备份的所有文件,并将其恢复到原来同样的目录结构, 然后重新启动数据库,此时数据库将恢复到备份的时间点。显然你的一部分数据(从备份点到数据库失败)将会丢失, 故如果采用这种方法, 为了减少数据的丢失,就需要经常做备份,同时也可以结合逻辑备份来备份一些经常变化的并且比较重要的数据。     
1. 找出并记录下来所有需要备份的数据文件、控制文件、存档日志文件、参数文件、联机日志文件(1)以Oracle用户的身份进入操作系统,并键入如下命令连接数据库:
$ sqlplus /nolog
SQL> connect / as sysdba
$ exp sys/password ile=sidfull0701.dmp Full=y      —— rows确省为Y
把整个数据库备份的sidfull0701.dmp文件至数据库中:
$ imp sys/password file=sidfull0701.dmp ignore=y full=y—— rows确省为Y
注意:导入/导出是最彻底的减少磁盘碎片的方法。

$ sqlplus sys/manager
SQL> select * from NLS_DATABASE
_PARAMETERS;
PARAMETER                   VALUE
------------------------- -----------------------------
NLS_LANGUAGE               AMERICAN
NLS_TERRITORY              AMERICA
NLS_CHARACTERSET           UTF8
环境变量应设置
$ export NLS_LANG=American_
america.UTF8
Export/Import支持的增量和累计备份实际上是表级的,即上一次备份之后变化的表将全表卸载,而不是变化的记录。因此,在以OLTP应用为主的数据库中,由于保存主要业务数据的表处于频繁的录入和更新之中,增量和累计卸载并不能显著提高备份的效率。
在做整个数据库Import时,缺省状态下以一个Table为一个Transaction,所以如果存在一些表的数据量很大, 建议使用commit=y并且要提供一个较大的buffer值,同时建立一个临时Rollback segment ,它的default storage参数initial 和 next要设置大一些,并要将这个Rollback Segment Online,同时offline 其他小的rollback segments。确保一个Table能完整import 。因为在做import时, 数据库将自动创建索引,及完整性约束, 为了加快数据加载的速度及一次成功的概率,可以考虑在export之前首先disable所有的完整性约束, 在import之后在enable所有的完整性约束。而对索引,可以考虑单独export索引。通过使用命令 “imp indexfile=……”  在import数据之后来单独创建索引。
如果希望在export数据库时,直接将产生的dmp文件写到外设上, 你可以使用 “ exp file=设备名… Volsize=设备的容量”。
由于export出来的文件可能较大,而某些操作系统(如Linux)对文件大小有限制,如不能大于2G。因此可将dmp文件设置为指定大小的若干文件。如:
$ exp sys/manager buffer=4096000 file=(full1.dmp,full2.dmp,full3.dmp,full4.dmp) filesize=2G Full=y inctype=complete log=full.log
至此,所有关于Oracle数据库备份策略的介绍就给大家讲完了。
 

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号