如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638    QQ号:47079569    邮箱:service@parnassusdata.com

 

RMAN 备份、复原和恢复非归档日志数据库

正如在之前章节提到的那样, Oracle 强烈推荐在归档日志模式下运行数据库,如果不在归档日志模式下运行数据库, 由于缺少归档重做日志文件,你将不能恢复数据库,不能更改应用到恢复的数据文件。

RMAN你不能在数据库打开时备份数据库,如果你尝试, 会产生下列错误:

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 10/21/2009 11:00:45

ORA-19602: cannot backup or copy active file in noarchivelog mode RMAN>

但是, 从安装阶段备份数据库,甚至应用增量备份并将其恢复到具体的时间点是可能的。在下面的情景中, 我们将执行下列步骤,以理解如何复原和恢复非归档日志数据库备份 。

  • 备份在no archivelog模式下运行的数据库
  • 对数据库做一些更改,并进行增量备份
  • 重命名包含数据库的所有物理文件的文件夹
  • 复原备份并恢复

以下是详细步骤

  • 备份数据库,备份之前,请确保您已经配置了RMAN执行控制文件的自动备份,这将会帮助我们容易地复原控制文件。
  • 连接到RMAN,运行下列命令:

RMAN> shutdown immediate RMAN> startup mount RMAN> configure controlfile autobackup on; RMAN> backup database; RMAN> startup; database is already started database opened

创建一个表,并插入一行,然后,采用数据库的级别1增量备份:

SQL> create table test (str varchar2(10)); Table created. SQL> insert into test values('test'); 1 row created. SQL> commit; Commit complete. SQL> select * from test; STR ---------- TEST SQL> shutdown immediate SQL> startup mount RMAN> backup incremental level 1 database; RMAN> shutdown immediate;

重命名oradata 文件夹,创建一个空的oradata 文件夹,用于存储复原的数据文件,在 nomount模式下打开数据库,从自动备份中复原控制文件,然后切换到mount 模式,复原所有的数据文件,然后,然后,使用noredo关键字执行恢复,为了不寻找那些应该应用到数据文件的重做日志文件。

RMAN> startup nomount; RMAN> restore controlfile from autobackup; RMAN> alter database mount; RMAN> restore database; RMAN> recover database; RMAN-03002: failure of recover command at 10/21/2009 12:26:19 RMAN-06054: media recovery requesting unknown log: thread 1 seq 2 lowscn 549157 #As you see, RMAN looks for redo log files to be applied. Thus, we use NOREDO keyword to bypass redo log files as weve lost them all RMAN> recover database noredo; RMAN> alter database open resetlogs;

现在, 查询完全和增量备份之间创建的表测试:

SQL> select * from test; STR ----- TEST

如显示的那样, RMAN复原了备份数据文件,并应用了一个增量备份,即便数据库在noarchivelog 模式下运行。