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.

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

时间: 2024-12-28 08:19:04

RMAN恢复数据库实战的相关文章

Oracle RMAN 恢复数据库到不同主机(二)

我们在recover database时报一个错误: RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 149 and starting SCN of 3507749 这里是提醒恢复到一个未知的scn号.我们在备份时只有148号归档,149号还是online redo,所以没有copy过来,如果我们不指定recover的结束时间,最后就会提示我们上面的信息:RMAN-0605

ORACLE中没有参数文件和控制文件如何通过rman恢复数据库

场景: 一个DEV告诉我生产环境下某个用户的表都看不到了,需要恢复,而此时生产库上存储自动备份的参数文件控制文件的磁盘目录文件坏块,所以导致rman备份的只有数据文件和归档日志文件,这种情况下,如何在测试服务器上利用rman恢复数据呢?google了很多资料,咨询了朋友,恢复过程如下: 前期准备工作:事先查询好先查询下原来的数据文件路径SQL> select name from v$datafile; NAME-------------------------------------------

异地rman恢复数据库

Source db端: ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_SID=ygdg 数据文件位置:/u01/app/oracle/oradata/ygdg Target db端: ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_SID=ygdg 数据文件位置

DB2表空间重定向恢复数据库实战

DB2的备份恢复有点坑,当源系统和目标系统的路径设置不同时,要手动进行重定向恢复,本文是我一次实战操作之后总结的过程,仅供参考. 一.发出重定向恢复命令 DB2 RESTORE DB OLDDB FROM "C:\OLDDBbak" TAKEN AT 20150717164847 TO "C:" INTO NEWDB REDIRECT 其中,OLDDB是旧数据库.备份的数据库名称,NEWDB是新数据库名称,不用事先创建也可以,C:\OLDDBbak是备份文件放置的目

Oracle 11g R2 rac通过rman 恢复到单实例数据库

生产环境是2个节点的rac + dataguard(物理备库也是两个节点的rac),通过rman每天进行备份,现在需要定期对生产库进行恢复操作 恢复步骤如下: 1.      把生产库的备份拷贝到目标端 建立存放备份的目录修改目录属主属组 mkdir /oracle/backup chown oracle:oinstall /oracle/backup 2.      拷贝备份到目标端 scp -P 22 incremental_level*  [email protected]:/oracle

RMAN备份数据库与恢复数据库(整库)

1 准备 2 1.1 检查数据库归档状态 2 1.2 RMAN登陆目标 2 2 备份全库 2 2.1 创建备份数据存储目录 2 2.2 RMAN备份全库 2 2.3 试验(备份后,改变数据) 5 2.4 试验(模拟删除控制文件) 7 3 恢复数据库 8 3.1 假定没有设置ORACLE_SID,设置ORACLE_SID启动一个伪实例 8 3.2 恢复SPFILE 9 3.3 恢复控制文件 9 3.4 恢复数据库 10 目录 1    准备 1.1  检查数据库归档状态 [[email prote

使用rman异地恢复数据库试验(RAC恢复到单实例数据库)

前言 rman在实际应用中用到的不多,很多时候一个项目开始设置好备份策略,后续基本上都用不到了,除非数据库出现异常,可以说,rman是一个不常用但是却非常重要的技能,但是又非常容易忘记.为了不在关键时刻掉链子,做了一个rman异地恢复数据库的试验. 试验环境介绍 操作系统 数据库版本 RAC? 源系统 CentOS 6.3 x64 11.2.0.4 2节点 目标系统 RedHat 6.4 x64 11.2.0.4 单节点 Rman备份: 0级数据库全备 操作步骤 将rman备份文件从源库上面拷贝

ORACLE中采用rman备份异机恢复数据库详细过程

场景:        有一个生产库的用户下面所有的表都不见了,怀疑人为被删除了,现在需要用备份去恢复下,找出原来的表,线上是oracle dataguard环境,有全库备份文件,准备去测试库恢复一下. 1,从生产库上copy好全备份文件恢复数据库需要准备的文件:rman完整备份(包括数据文件.日志文件.控制文件.参数文件),记录源数据库的DBID 安装的测试数据库ORACLE数据库软件并创建跟源数据库同名和数据库SID并修改数据库DBID跟源数据库DBID一样,创建跟源数据库服务器相同的数据文件

使用rman迁移数据库到异机

迁移数据库的方法有多种,较为常用的则是使用RMAN来迁移.使用RMAN迁移数据库属于数据库的物理备份与恢复范畴,整个过程中数据库的相关信息是完整地镜像.因此,基于此种方式还原恢复的数据库用于测试会使得与真实的生产环境差异相对较小. 一.主要步骤     1.备份数据库     2.拷贝备份到目的服务器     3.为目标数据库创建项目目录     4.为目标数据库创建pfile或spfile(使用RMAN还原或复制原pfile到目的服务器)     5.还原控制文件     6.还原数据文件