用rman恢复数据库一例

原创 2005年05月16日 13:00:00

1、  数据库启动时报错:

jm_db1$sqlplus "/ as sysdba"

SQL> startup

ORACLE instance started.


Total System Global Area 3417017632 bytes

Fixed Size                   732448 bytes

Variable Size             956301312 bytes

Database Buffers         2457600000 bytes

Redo Buffers                2383872 bytes

Database mounted.

ORA-01113: file 1 needs media recovery

ORA-01110: data file 1: '/opt/oracle/db02/oradata/ORCL/system01.dbf'

尝试恢复这个文件

SQL> recover datafile '/opt/oracle/db02/oradata/ORCL/system01.dbf';

ORA-00279: change 6611207127608 generated at 04/13/2005 15:29:43 needed for

thread 1

ORA-00289: suggestion : /opt/oracle/arch/ORCLarch_1_91724.arc

ORA-00280: change 6611207127608 for thread 1 is in sequence #91724

 

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

回车(自动恢复)

ORA-00308: cannot open archived log '/opt/oracle/arch/ORCLarch_1_91724.arc'

ORA-27037: unable to obtain file status

SVR4 Error: 2: No such file or directory

Additional information: 3

2、根据结果显示,需要从91724(很久以前)号归档日志开始恢复。检查归档日志情况

$ cd /opt/oracle/arch

$ ls -l

./ORCLarch_1_94162.arc: No such device or address

./ORCLarch_1_94163.arc: No such device or address

./ORCLarch_1_94164.arc: No such device or address

。。。。。。。

./ORCLarch_1_94159.arc: No such device or address

./ORCLarch_1_94160.arc: No such device or address

./ORCLarch_1_94161.arc: No such device or address

total 20480

-rw------T   0 root     other    10485760 Apr 26 04:01 ORCLarch_1_94141.arc

文件名能看到,内容没了,而且不全,归档日志都被破坏了。
因为T3升级前曾经对数据库做了一个0级备份,考虑以此作不完全恢复源:

通过rman 的catalog库,找到最后备份的log sequence:

Jm_backup$sqlplus rman/rman

SQL> select max(sequence#) from RC_LOG_HISTORY;

MAX(SEQUENCE#)

--------------

         94303

3、恢复:

恢复需要数据库处于mount状态。

jm_db1$sqlplus "/ as sysdba"

SQL>startup mount

恢复到94303时的数据库内容。

jm_db1$rman target / rcvcat rman/rman@cata

run {

allocate channel c2 type 'SBT_TAPE'

parms 'ENV=(NSR_SERVER=jm_backup,

NSR_CLIENT=ipasdb,

NSR_DATA_VOLUME_POOL=orapool)';

allocate channel c3 type 'SBT_TAPE'

parms 'ENV=(NSR_SERVER=jm_backup,

NSR_CLIENT=ipasdb,

NSR_DATA_VOLUME_POOL=orapool)';

 set until logseq 94303 thread 1;

restore database;

recover database;

RELEASE CHANNEL c3;

RELEASE CHANNEL c2;

}

(客户用的脚本做的是完全恢复,当然不成功,我只加了一句set until logseq 94303 thread 1;)

此时,系统将之前0级备份的内容重新写到T3上,连同归档日志文件。

 
这个过程比较慢,最后会提示:

media recovery complete

Finished recover at 26-APR-05

released channel: c3

released channel: c2

RMAN> exit

jm_db1$sqlplus "/ as sysdba"

SQL>alter database open resetlog;

恢复完成。不完全恢复需要resetlog,log的sequence又从1开始了,此时要再做一次全备份。 因为log到了94303后没有什么大的操作,之后又没有启动成功,所以数据库虽然丢失了一些数据,但不是很多,而且archivelog不全肯定要做不完全恢复。

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用Rman备份片信息远程恢复数据库一例

1、挂载备份服务器的备份目录 1、建立备份片存放目录,这里没有使用catalog,所以需要和生产库备份目录路径相同 mkdir /prod/backup/ 2、挂载备份服务器备份目录 show...

控制文件损坏或者丢失的Oracle 10g数据库恢复控制文件一例

如果控制文件丢失或者损坏了,如何解决这个问题? 查看参数文件中的设置: SQL> show parameter CONTROL_FILES ; NAME                     ...

直接删除undo及temp表空间文件后的数据库恢复一例

前几天,某用户研发找到我,说他们的研发库坏了,问我能恢复不?我问他们做了什么操作,一个小男孩儿说,看到空间满了,清除了点儿数据,我说是不是连数据库的文件也清除了,他说没有,他清除的是ORACLE_HO...
  • LHDZ_BJ
  • LHDZ_BJ
  • 2013年06月08日 17:41
  • 887

Rman数据库恢复实例

  • 2010年03月31日 13:33
  • 33KB
  • 下载

RMAN-20207报错,使用list incarnation解决一例。

RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time错误的解决办法。 可以使用list incarnation 命令查...

RMAN恢复数据库表

  • 2013年09月23日 15:10
  • 183KB
  • 下载

通过RMAN备份恢复数据库到其他服务器

本节演示如何通过RMAN创建的备份集,将数据库恢复到其他服务器。本小节执行的操作较多,一定要有一个清醒的大脑,因此赶紧把脑袋里那堆乱七八糟的东西清除清除,要不你一定会看晕的。设定环境如下:源库192....
  • hproc
  • hproc
  • 2011年03月30日 15:50
  • 3448

用RMAN备份和恢复数据库

  • 2017年11月30日 14:45
  • 980KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用rman恢复数据库一例
举报原因:
原因补充:

(最多只允许输入30个字)