oracle备份、恢复(6)

2019-03-05 22:29

备份从 sequence 1 开始的归档:

RMAN> backup archivelog from sequence 1[to sequence =’n]; 备份没有三次备份的归档:

RMAN> backup archivelog not backed up 3 times; 备份所有归档,然后删除归档:

RMAN> backup archivelog all delete input; 恢复:

显示恢复目录中的归档日志:

RMAN> list backupset of archivelog all;

一般情况下,在 RMAN 的普通恢复过程中,不必恢复归档的重做日志。不过偶尔也需 要恢复重做日志,例如我们用 Log Miner 来从归档中查找一些东西。 RMAN命令举例:

RMAN> RESTORE ARCHIVELOG ALL;

RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1UNTIL LOGSEQ=20; RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1;

可以用 SET命令来指定归档日志的还原位置,例如: RMAN> run{

set archivelog destination to \restore archivelog all; }

需要注意的是,即使新的归档日志目录不同于默认的归档日志目录,如果 Oracle 判定

日志已存在,也不会恢复该归档日志文件。 4.4.4.5 联机日志的备份

联机日志不能用 RMAN 来备份,可以先将其归档,再备份。为了实现这点,必须在 RMAN

中执行归档命令语句: RMAN> run {

2> allocate channel dev1 type disk; 3> sql \

4> backup (archivelog from time \5> \6> release channel dev1; 7> }

上面的脚本可以在执行完一个完整的联机数据库备份后执行,确保所有的重做日志可以

将数据库恢复到一个一致性的状态。

当然,也可以在全库备份时使用 plus archvielog 选项,将自动完成联机日志的备份。

4.4.4.6 控制文件和服务器参数文件的备份与恢复备份: // 设置文件名格式

RMAN> set controlfile autobackup format for device t ype disk to 'ctl_%F'; 1. RMAN> configure controlfile autobackup on; // backup database 时将自动备份

2. RMAN> backup current controlfile; 3. RMAN> backup .... include control file;

4. RMAN> backup file 1; // system datafile 自动备份 恢复SPFILE:

SPFILE(PFILE)的丢失/损坏,对数据库不会产生致命影响,可以从其他方式恢复。 不过既然 RMAN 的备份计划中包括了 SPFILE 的备份,那么就可以使用 RMAN 来还原 SPFILE了。

$ rman target / catalog \

RMAN> set dbid=153910023 // SET DBID 这个步骤是不能省略的,否则会报错。

RMAN> restore spfile from autobackup [MAXDAYS 100]; // 或者 restore spfile;

RMAN> startup force 或者从某个备份集恢复:

RMAN> restore spfile from backupset bs_num 命令。 使用 dbms_backup_restore 包恢复服务器参数文件:

在一些不常见的情况下,我们可能需要直接使用 dbms_backup_restore 包来恢复 spfile。当然这个包也可以用来恢复其它数据,是常规办法都没有用的时候的一个利器。 这个 包 可 以在数据库 NOMOUNT 状态 下 使用。 假 设我 们 有一 个自 动 备份文 件

C-2600315304-20060829-02,我们需要从这里恢复数据,那么可以通过执行下面的脚本 来完成: SQL> DECLARE

DEVTYPE VARCHAR2(256); DONE BOOLEAN; BEGIN

DEVTYPE:=DBMS_BACKUP_RESTORE.deviceallocate(NULL); DBMS_BACKUP_RESTORE.restoresetdatafile;

DBMS_BACKUP_RESTORE.restorespfileto('/back/SPFILE.ORA'); DBMS_BACKUP_RESTORE.restorebackuppiece(

'/back/C-2600315304-20060829-02',DONE=>done); DBMS_BACKUP_RESTORE.devicedeallocate(NULL); END;

恢复控制文件:

RMAN> startup nomount; RMAN> set dbid=153910023 RMAN> restore controlfile from autobackup 或

RMAN> restore controlfile from'/arch/ct_c-2347671489-20060630-00'; 联机状态:目标数据库 MOUNT 或 OPEN

RMAN> restore controlfile to 'd:\\temp\\control01.ctl'; 然后再执行恢复数据库的其他步骤: RMAN> restore database; RMAN> recover database;

RMAN> alter database open resetlogs; 使用 dbms_backup_restore 包恢复控制文件: SQL> DECLARE

DEVTYPE VARCHAR2(256); DONE BOOLEAN; BEGIN

DEVTYPE:=DBMS_BACKUP_RESTORE.deviceallocate(NULL); DBMS_BACKUP_RESTORE.restoresetdatafile;

DBMS_BACKUP_RESTORE.restorecontrolfileto('/back/CONTROL01.CTL'); DBMS_BACKUP_RESTORE.restorebackuppiece

('/back/C-2600315304-20060829-00',DONE=>done); DBMS_BACKUP_RESTORE.devicedeallocate(NULL); END; /

4.4.4.7 备份集的备份的备份与恢复 备份:

备份所有备份集:

RMAN> backup backupset all; 备份指定备份集:

RMAN> backup backupset bs_num;

恢复:(这种备份只是增加一个镜像,不用恢复)

主要用于改变备份集的位置,或者创建多个镜像备份,比如将备份集从硬盘备份到磁

带。如果要详细了解,见我在 ITPUB上发的帖子:

http://www.itpub.net/viewthread.php?tid=1007747&page=1&extra= 4.4.5 归档模式下的不完全恢复

不完全恢复就意味着有数据的丢失。引起不完全恢复的原因有很多,如丢失了联机日志 或某个归档日志。另外如果出现了严重损害数据库的用户错误,比如某用户错误的删除了某 个重要的数据,那么数据库也要恢复到这个错误操作之前。 不完全恢复会影响整个数据库,需要在 MOUNT 状态下进行。在不完全恢复完成之后, 通常需要使用 resetlogs 选项来打开数据库。resetlogs 表示一个数据库逻辑生存期的结束和 另一个数据库逻辑生存期的开始。数据库的逻辑生存期也被称为一个对应物(incarnation)。 每次使用 resetlogs 选项来打开数据库后都会创建一个新的数据库对应物,这对于恢复操作 来说非常重要。每次使用 resetlogs 后,SCN计数器不会被重置,但是 Oracle会重置联机日 志序列号,同时还会重置联机重做日志内容。因此执行了 resetlogs 之后,应该立即重新备 份整个数据库,否则恢复起来相当麻烦。 (注:Oracle 10g 中已经可以在 resetlogs 之后不备 份数据库,恢复的时候能够穿越 resetlogs)


oracle备份、恢复(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:西方财政思想史考试大纲

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: