摘 要:
关键词:
ORACLE数据库的备份分为物理备份和逻辑备份两种。物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。可以使用 Oracle 的恢复管理器(Recovery Manager,RMAN)或操作系统命令进行数据库的物理备份。逻辑备份是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。Oracle提供 的逻辑备份工具是 EXP。
数据库逻辑备份是物理备份的补充。
根据在物理备份时数据库的状态,可以将备份分为一致性备份(consistent backup)和不一致性备份(inconsistent backup)两种:
一致性备份:一致性备份是当数据库的所有可读写的数据 库文件和控制文件具有相同的系统改变号(SCN),并且数据文件不包含当前 SCN 之外的任何改变。在做数据库检查点时,Oracle 使所有的控制文件和数据文件一致。对于只读表空间和脱机的表空间,Oracle 也认为它们是一致的。使数据库处于一致状态的唯一方法是数据库正常关闭(用shutdown normal 或 shutdown immediate 命令关闭)。因此,只有在以下条件下的备份是一致性备份:
不一致性备份:不一致备份是当数据库的可读写的数据库文件和控制文件的系统改变号(SCN)在不一致条件下的备份。对于一个 7*24 工作的数据库来说,由于不可能关机,而数据库数据是不断改变的,因此只能进行不一致备份。在 SCN 号不一致的条件下,数据库必须通过应用重做日志使 SCN 一致的情况下才能启动。因此,如果进行不一致备份,数据库必须设为归档状态,并对重做日志归档才有意义。在以下条件下的备份是不一致性备份:
数据库处于打开状态。
ORACLE数据库有三种标准的备份。导出/导入(EXPORT/IMPORT) 、冷备份、热备份。
导出备份是一种逻辑备份,这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。
这种备份方法是一致性备份,但是属于逻辑备份,不能做到数据的无丢失,只能是算作物理备份的一种补充.逻辑备份是通过exp工具完成的:
导出/导入(EXPORT/IMPORT)
EXPORT/IMPORT是用来将ORACLE中数据移出/移入数据库。
1、EXPORT将数据库中数据备份成一个二进制系统文件称为“导出转储文件”(EXPORT DUMP FILE),并将重新生成数据库写入文件中。
它有三种模式:
a.用户模式:导出用户所有对象以及对象中的数据;
b.表模式:导出用户所有表或者指定的表;
c.整个数据库:导出数据库中所有对象。
它的备份有三种类型:
a.完全型(COMPLETE EXPORT):备份整个数据库;
b.积累型(COMULATIVE ERPORT):备份上一次积累型备份所改变的数据;
c.增量型(INCREAMENTAL EXPORT):备份上一次备份后改变的数据。
EXPORT 的命令可以交互式进行,各参数的具体含义见附录。
在进行导出备份时我们要考虑一点问题,那就是导出的一致性,在导出过程 中导出每读一次就读取一个表,因而尽管导出是在一个特点时自己开始的,但不同的表读取的时间不同,因此,导出开始读一个表时,此时表中的数据才是导出的数据,这样当大多数表按内部关键字和外部关键字相互联系时,在导出过程中这些相关联表的改变就会导致导出的不一致性,要避开这个,我们可以将导出过程安排在不对表操作的时候进行。另外,当ORACLE中RESTRICTEP CONSISTENT 选项就可以保证导出数据一致性。
1热备份(RMAN)
RMAN(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据库。RMAN可以用来备份和恢复数据库文件、归档日志和控制文件,也可以 用来执行完全或不完全的数据库恢复,但是RMAN不能用于备份数据库初始化参数文件和口令文件。RMAN备份是数据库处于工作状态下的备份方式,不影响客 户端的使用,备份过程稳定,恢复数据库步骤简单。
1.1 RMAN备份的构建
首先使数据库运行在归档模式下。本文采用的RMAN备份方式采 用了恢复目录。恢复目录(The recovery catalog)是由RMAN使用、维护用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作,不使用恢复目录将会 对备份恢复操作有限制。
1.2下面介绍备份与恢复方法,以9i为例:
配置rman为自动备份控制文件,每次执行backup时就自动备份一个控制文件,默认保存在/opt/ora9/product/9.2.0.4/dbs/ 也可更改备份位置。
启动控制文件自动备份configure controlfile autobackup on;
设置自动备份控制文件格式configure controlfile autobackup format for device type disk
to '/backup/cf_%F'
设置备份优化configure backup optimization on;
自动备份控制文件默认保存路径/opt/ora9/product/9.2.0.4/dbs/
连连接数据库
rman>connect target / 或 rman target /
备份数据库
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/tmp/hotbak/bak'
5> database;
6> release channel dev1;
7> }
备份表空间
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/tmp/hotbak/tablespace_users'
5> tablespace users;
6> release channel dev1;
7> }
恢复表空间
rman target / nocatalog
RMAN> startup mount
RMAN> restore tablespace users;
RMAN> recover tablespace users;
RMAN> exit
Datafile recovery 数据文件恢复
RMAN> run {
2> allocate channel dev1 type disk;
3> sql ""alter tablespace users offline immediate"";
4> restore datafile 4;
5> recover datafile 4;
6> sql ""alter tablespace users online"";
7> release channel dev1;
8> }
恢复数据库
RMAN> restore database;
RMAN> recover database;
RMAN>alter database open resetlogs;
恢复完毕。