RMAN恢复数据库实战

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RMAN恢复数据库实战相关的知识,希望对你有一定的参考价值。

预设场景:

一般企业数据库的数据都用rman工具进行了全库备份,那么当数据库里面的控制文件,重做日志文件等全部丢失了之后怎么办呢?以下是解答思路:

1、利用全库备份的备份片恢复控制文件

2、恢复数据文件

3、挂载数据库

以下是详细步骤:

1 、先用rman restore备份的全库,找回控制文件:

RMAN>  restore controlfile from ‘/u01/app/oracle/flash_recovery_area/JIAGULUN/backupset/2016_02_01/o1_mf_ncsnf_TAG20160201T122728_cbxqp0go_.bkp‘;


Starting restore at 01-FEB-16

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=155 devtype=DISK


channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:03

output filename=/u01/app/oracle/oradata/jiagulun/control01.ctl

output filename=/u01/app/oracle/oradata/jiagulun/control02.ctl

output filename=/u01/app/oracle/oradata/jiagulun/control03.ctl

Finished restore at 01-FEB-16


RMAN> alter database mount;


database mounted

released channel: ORA_DISK_1

##########################################################################################################################################################################################################################################################################################################################################################################################

验证:

[[email protected] ~]$ cd /u01/app/oracle/oradata/jiagulun/

[[email protected] jiagulun]$ ll                             ----控制文件已找回

total 20688

-rw-r----- 1 oracle oinstall 7061504 Feb  1 12:32 control01.ctl

-rw-r----- 1 oracle oinstall 7061504 Feb  1 12:32 control02.ctl

-rw-r----- 1 oracle oinstall 7061504 Feb  1 12:32 control03.ctl

#############################################################################################################################################################################################

#############################################################################################################################################################################################

#############################################################################################################################################################################################

2、恢复数据文件

RMAN> restore database;


Starting restore at 01-FEB-16

Starting implicit crosscheck backup at 01-FEB-16

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=155 devtype=DISK

Crosschecked 1 objects

Finished implicit crosscheck backup at 01-FEB-16


Starting implicit crosscheck copy at 01-FEB-16

using channel ORA_DISK_1

Crosschecked 8 objects

Finished implicit crosscheck copy at 01-FEB-16


searching for all files in the recovery area

cataloging files...

cataloging done


List of Cataloged Files

=======================

File Name: /u01/app/oracle/flash_recovery_area/JIAGULUN/backupset/2016_02_01/o1_mf_ncsnf_TAG20160201T122728_cbxqp0go_.bkp


using channel ORA_DISK_1


channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /u01/app/oracle/oradata/jiagulun/system01.dbf

restoring datafile 00002 to /u01/app/oracle/oradata/jiagulun/undotbs01.dbf

restoring datafile 00003 to /u01/app/oracle/oradata/jiagulun/sysaux01.dbf

restoring datafile 00004 to /u01/app/oracle/oradata/jiagulun/users01.dbf

restoring datafile 00005 to /u01/app/oracle/oradata/jiagulun/example01.dbf

channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/JIAGULUN/backupset/2016_02_01/o1_mf_nnndf_TAG20160201T122728_cbxqok7r_.bkp

channel ORA_DISK_1: restored backup piece 1

piece handle=/u01/app/oracle/flash_recovery_area/JIAGULUN/backupset/2016_02_01/o1_mf_nnndf_TAG20160201T122728_cbxqok7r_.bkp tag=TAG20160201T122728

channel ORA_DISK_1: restore complete, elapsed time: 00:00:25

Finished restore at 01-FEB-16

##########################################################################################################################################################################################################################################################################################################################################################################################

验证:

[[email protected] ~]$ cd /u01/app/oracle/oradata/jiagulun/

[[email protected] jiagulun]$ ll

total 911612

-rw-r----- 1 oracle oinstall   7061504 Feb  1 12:40 control01.ctl

-rw-r----- 1 oracle oinstall   7061504 Feb  1 12:40 control02.ctl

-rw-r----- 1 oracle oinstall   7061504 Feb  1 12:40 control03.ctl

-rw-r----- 1 oracle oinstall 104865792 Feb  1 12:37 example01.dbf

-rw-r----- 1 oracle oinstall 262152192 Feb  1 12:37 sysaux01.dbf

-rw-r----- 1 oracle oinstall 503324672 Feb  1 12:37 system01.dbf

-rw-r----- 1 oracle oinstall  36708352 Feb  1 12:37 undotbs01.dbf

-rw-r----- 1 oracle oinstall   5251072 Feb  1 12:37 users01.dbf

#############################################################################################################################################################################################

#############################################################################################################################################################################################

#############################################################################################################################################################################################

RMAN> alter database open resetlogs;


RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of alter db command at 02/01/2016 12:41:48

ORA-01152: file 1 was not restored from a sufficiently old backup 

ORA-01110: data file 1: ‘/u01/app/oracle/oradata/jiagulun/system01.dbf‘


RMAN> recover database;


Starting recover at 01-FEB-16

using channel ORA_DISK_1


starting media recovery


unable to find archive log

archive log thread=1 sequence=11

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 02/01/2016 12:42:06

RMAN-06054: media recovery requesting unknown log: thread 1 seq 11 lowscn 653723


RMAN> alter database open resetlogs;                  -------------与可以打开数据库


database opened

##########################################################################################################################################################################################################################################################################################################################################################################################

验证是否恢复成功:

[[email protected] jiagulun]$ sqlplus / as sysdba


SQL*Plus: Release 10.2.0.1.0 - Production on Mon Feb 1 12:45:31 2016


Copyright (c) 1982, 2005, Oracle.  All rights reserved.



Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options


SQL> startup force;

ORACLE instance started.


Total System Global Area 1174405120 bytes

Fixed Size                  2020288 bytes

Variable Size             301993024 bytes

Database Buffers          855638016 bytes

Redo Buffers               14753792 bytes

Database mounted.

Database opened.


已能打开数据库,恢复成功

本文出自 “linux” 博客,谢绝转载!

以上是关于RMAN恢复数据库实战的主要内容,如果未能解决你的问题,请参考以下文章

100天精通Oracle-实战系列(第16天)使用 RMAN 备份快速恢复误删数据表

100天精通Oracle-实战系列(第17天)RMAN 冷备异机恢复 Oracle 数据库

100天精通Oracle-实战系列(第17天)RMAN 冷备异机恢复 Oracle 数据库

100天精通Oracle-实战系列(第19天)RMAN 从 Windows 至 Linux 跨系统恢复 Oracle 数据库

100天精通Oracle-实战系列(第20天)Oracle 数据库使用 RMAN 检查和恢复数据坏块

100天精通Oracle-实战系列(第20天)Oracle 数据库使用 RMAN 检查和恢复数据坏块