您的位置:首页 > 数据库 > Oracle

Linux下Oracle9i RMAN备份及恢复步骤介

2009-06-13 17:01 609 查看
[align=left]1、切换服务设置归档模式,如果已经是归档模式可跳过此步:[/align]
[align=left]  %sqlplus /nolog (启动sqlplus)[/align]
[align=left]  SQL> conn / as sysdba (以DBA身份连接数据库)[/align]
[align=left]  SQL> shutdown immediate; (立即关闭数据库)[/align]
[align=left]  SQL> startup mount (启动实例并加载数据库,但不打开)[/align]
[align=left]  SQL> alter database archivelog; (更改数据库为归档模式)[/align]
[align=left]  SQL> alter database open; (打开数据库)[/align]
[align=left]  SQL> alter system archive log start; (启用自动归档)[/align]
[align=left]  SQL> exit (退出)[/align]
[align=left]2、连接:[/align]
[align=left]  %rman target=sys/password@mydb (启动恢复管理器)[/align]
[align=left]3、基本设置:[/align]
[align=left]  RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)[/align]
[align=left]  RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)[/align]
[align=left]  RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U';
(设置备份的文件格式,只适用于磁盘设备)[/align]
[align=left]RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U';
(设置备份的文件格式,只适用于磁盘设备)[/align]
[align=left]  RMAN> configure controlfile autobackup on;
(打开控制文件与服务器参数文件的自动备份)[/align]
[align=left]  RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F';
(设置控制文件与服务器参数文件自动备份的文件格式)[/align]
[align=left]4、查看所有设置:[/align]
[align=left]  RMAN> show all[/align]
[align=left]5、查看数据库方案报表:[/align]
[align=left]  RMAN> report schema;[/align]
[align=left]6、备份全库:[/align]
[align=left]  RMAN> backup database plus archivelog delete input;
(备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)[/align]
[align=left]7、备份表空间:[/align]
[align=left]RMAN> backup tablespace system plus archivelog delete input;
(备份指定表空间及归档的重做日志,并删除旧的归档日志)[/align]
[align=left]8、备份归档日志:[/align]
[align=left]  RMAN> backup archivelog all delete input;[/align]
[align=left]9、复制数据文件:[/align]
[align=left]  RMAN> copy datafile 1 to '/oracle/dbs/system.copy';[/align]
[align=left]10、查看备份和文件复本:[/align]
[align=left]  RMAN> list backup;[/align]
[align=left]11、验证备份:[/align]
[align=left]  RMAN> validate backupset 3;[/align]
[align=left]12、从自动备份中恢复服务器参数文件:[/align]
[align=left]  RMAN> shutdown immediate; (立即关闭数据库)[/align]
[align=left]  RMAN> startup nomount; (启动实例)[/align]
[align=left]  RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup;
(从自动备份中恢复服务器参数文件)[/align]
[align=left]13、从自动备份中恢复控制文件:[/align]
[align=left]  RMAN> shutdown immediate; (立即关闭数据库)[/align]
[align=left]  RMAN> startup nomount; (启动实例)[/align]
[align=left] RMAN> restore controlfile to '/backup1' from autobackup;
(从自动备份中恢复控制文件)[/align]
[align=left]14、恢复和复原全数据库:[/align]
[align=left] RMAN> shutdown immediate;(立即关闭数据库)[/align]
[align=left] RMAN> exit(退出)[/align]
[align=left] %mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak(将数据文件重命名)[/align]
[align=left] %mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak(将数据文件重命名)[/align]
[align=left] %mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak(将数据文件重命名)[/align]
[align=left] %mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak(将数据文件重命名)[/align]
[align=left] %rman target=rman/rman@mydb(启动恢复管理器)[/align]
[align=left] RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
(指定初始化参数文件启动数据库)[/align]
[align=left] RMAN> restore database;(还原数据库)[/align]
[align=left] RMAN> recover database;(恢复数据库)[/align]
[align=left] RMAN> alter database open;(打开数据库)[/align]
[align=left]15、恢复和复原表空间:[/align]
[align=left] RMAN> sql 'alter tablespace users offline immediate';(将表空间脱机)[/align]
[align=left] RMAN> exit(退出恢复管理器)[/align]
[align=left] %mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak(将表空间重命名)[/align]
[align=left] %rman target=rman/rman@mydb(启动恢复管理器)[/align]
[align=left] RMAN> restore tablespace users;(还原表空间)[/align]
[align=left] RMAN> recover tablespace users;(恢复表空间)[/align]
[align=left] RMAN> sql 'alter tablespace users online';(将表空间联机)[/align]
[align=left]16、增量备份与恢复:[/align]
[align=left] 第一天的增量基本备份:[/align]
[align=left] RMAN> backup incremental level=0 database plus archivelog delete input;[/align]
[align=left] 第二天的增量差异备份:[/align]
[align=left] RMAN> backup incremental level=2 database plus archivelog delete input;[/align]
[align=left] 第三天的增量差异备份:[/align]
[align=left] RMAN> backup incremental level=2 database plus archivelog delete input;[/align]
[align=left] 第四天的增量差异备份:[/align]
[align=left] RMAN> backup incremental level=1 database plus archivelog delete input;[/align]
[align=left] 第五天的增量差异备份:[/align]
[align=left] RMAN> backup incremental level=2 database plus archivelog delete input;[/align]
[align=left] 第六天的增量差异备份:[/align]
[align=left] RMAN> backup incremental level=2 database plus archivelog delete input;[/align]
[align=left] 第七天的增量差异备份:[/align]
[align=left] RMAN> backup incremental level=0 database plus archivelog delete input;[/align]
[align=left] 增量恢复:[/align]
[align=left] RMAN> shutdown immediate;[/align]
[align=left] RMAN> exit[/align]
[align=left] %mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak[/align]
[align=left] %mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak[/align]
[align=left] %mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak[/align]
[align=left] %mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak[/align]
[align=left] %rman target=rman/rman@mydb[/align]
[align=left] RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora[/align]
[align=left] RMAN> restore database;[/align]
[align=left] RMAN> recover database;[/align]
[align=left] RMAN> alter database open.(e129)on.htm[/align]
[align=left] simulator/doc/license_keys.htm[/align]
[align=left] simulator/doc/sdk.style.css[/align]
[align=left] simulator/doc/davehitzforeword.htm[/align]
[align=left] simulator/doc/faq.htm[/align]
[align=left] simulator/doc/troubleshooting.htm[/align]
[align=left] simulator/license.htm[/align]
[align=left] simulator/readme.htm[/align]
[align=left] simulator/runsim.sh[/align]
[align=left] simulator/setup.sh[/align]
[align=left] simulator/sim.tgz[/align]
[align=left]采用Oracle Archive Log模式和非Archive Log模式对备份恢复的影响

备份的目的在于,当系统或数据库出现问题时,能够快速将数据库进行恢复。对于Oracle数据库,一般有两种备份方式:“物理备份”和“逻辑备份”。“物理备份”指的是以copy数据文件方式进行备份;“逻辑备份”指的是用export等方式将数据从数据库中抽取出来。物理备份又可以分为冷备份和热备份。以下是各种备份的说明及前提条件。
- Cold Backup(冷备份)主要指在关闭数据库的状态下进行的数据库完全备份,备份内容包括所有数据文件、控制文件、联机日志文件、ini文件。
- Hot Backup(热备份)指在数据库处于运行状态下,对数据文件和控制文件进行备份,要使用热备份必须将数据库运行在(Archive Log)归档方式下。
- Export(逻辑备份)这是最简单的备份方法,可按数据库中某个表、某个用户或整个数据库来导出,并且支持全部、累计、增量三种方式。使用这种方法,数据库必须处于打开状态,而且如果数据库不是在restrict状态将不能保证导出数据的一致性。

“物理备份”方式以相当于copy数据文件的方式进行备份,恢复时可以快速以相当于copy的方式将备份的数据copy回来,所以备份速度特别是恢复速度非常快。

如果不采用Archive Log模式运行Oracle数据库,只有两种可用的备份方法:冷备份或export逻辑备份。根据关键业务服务器的特点,停下数据库进行冷备份是根本不可能的,因此如果不采用Archive Log,只能进行逻辑备份。

如果仅采用“逻辑备份”方式,恢复时会有以下两个主要问题:
1.无法恢复到最近时间点的数据。只能恢复到上一次export时的数据状态,当天的数据将丢失。Archive Log模式下的物理备份可以用数据文件备份及Archive Log备份,将数据库恢复到数据库失败前的时间点,不会丢失数据。
2.完成恢复可能需要很长时间。恢复只能用import方法进行,所以需要的时间包括:
a. create database及所有的tablespace:以每2分钟初始化一个2G的数据文件来计算,建立一个400G的Oracle数据库需要约6.7个小时。
b. import。时间较难确定,但保守估计应在10个小时以上(如果import过程中出现问题,恢复时间将延长)
3.恢复时步骤较多,易出现人为故障。

由于这些原因,一般备份/恢复时都把export/import的方式做为辅助备份/恢复方式,对一些重要的表进行二级保护。这种备份方式也称为“逻辑备份”方式,当某些重要的表被意外删除时可进行逻辑import恢复。

而对于整个数据库的日常备份/恢复,需要采用“物理备份”方式,即以相当于copy数据文件的方式进行备份,恢复时可以快速以相当于copy的方式将备份的数据copy回来。一般物理备份/恢复都采用Oracle RMAN工具来进行。

下面是“逻辑备份”与“物理备份”在数据库故障时的恢复比较:

1. Oracle逻辑错误造成无法启动
逻辑恢复:重新create database及各tablespace,import。可恢复到上次export的数据
物理恢复:将所有datafile copy回来,并利用archivelog将数据库recover到故障前的状态

2.某一个datafile故障或丢失
逻辑恢复:重新create database及各tablespace,import。可恢复到上次export的数据
物理恢复:将该datafile copy回来

3.某一个tablespace故障
逻辑恢复:重新create database及各tablespace,import。可恢复到上次export的数据
物理恢复:将该tablespace copy回来

4.意外drop table
逻辑恢复: Import该table
物理恢复:将备份恢复到另一服务器上,export该table,在原数据库中 [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: