oracle 12c 同一台host上使用RMAN还原DB

----------------------------------------------------------------------------------------------------------------------------------
环境介绍:WINDOWS 7/ORACLE 12C
ORIGNAL DB: prod
TARGET db:dev
-----------------------------------------------------------------------------------------------------------------------------------
1.使用rman backup orignal database

RMAN> backup database plus archivelog format
2> 'C:\data_%U';


启动 backup 于 07-11月-14
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=135 设备类型=DISK
通道 ORA_DISK_1: 正在启动归档日志备份集
通道 ORA_DISK_1: 正在指定备份集内的归档日志
输入归档日志线程=1 序列=20 RECID=1 STAMP=862869664
输入归档日志线程=1 序列=21 RECID=2 STAMP=862934356
输入归档日志线程=1 序列=22 RECID=3 STAMP=862934462
输入归档日志线程=1 序列=23 RECID=4 STAMP=862956077
输入归档日志线程=1 序列=24 RECID=5 STAMP=863033330
输入归档日志线程=1 序列=25 RECID=6 STAMP=863033445
输入归档日志线程=1 序列=26 RECID=7 STAMP=863033487
输入归档日志线程=1 序列=27 RECID=8 STAMP=863033612
输入归档日志线程=1 序列=28 RECID=9 STAMP=863034340
通道 ORA_DISK_1: 正在启动段 1 于 07-11月-14
通道 ORA_DISK_1: 已完成段 1 于 07-11月-14
段句柄=C:\DATA_0CPN1MV6_1_1 标记=TAG20141107T194540 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:15
完成 backup 于 07-11月-14

启动 backup 于 07-11月-14
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00003 名称=C:\APP\ORACLE_INSTALL\ORADATA\PROD\SYSAUX01.DBF
输入数据文件: 文件号=00001 名称=C:\APP\ORACLE_INSTALL\ORADATA\PROD\SYSTEM01.DBF
输入数据文件: 文件号=00005 名称=C:\APP\ORACLE_INSTALL\ORADATA\PROD\UNDOTBS01.DBF
输入数据文件: 文件号=00002 名称=C:\APP\ORACLE_INSTALL\ORADATA\PROD\TEST01.DBF
输入数据文件: 文件号=00006 名称=C:\APP\ORACLE_INSTALL\ORADATA\PROD\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 07-11月-14
通道 ORA_DISK_1: 已完成段 1 于 07-11月-14
段句柄=C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\PROD\BACKUPSET\2014_11_07\O1_MF_NNNDF_TAG20141107T194557_B5SD7QCL_.BKP 标记
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:05
完成 backup 于 07-11月-14

启动 backup 于 07-11月-14
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动归档日志备份集
通道 ORA_DISK_1: 正在指定备份集内的归档日志
输入归档日志线程=1 序列=29 RECID=10 STAMP=863034484
通道 ORA_DISK_1: 正在启动段 1 于 07-11月-14
通道 ORA_DISK_1: 已完成段 1 于 07-11月-14
段句柄=C:\DATA_0EPN1N3K_1_1 标记=TAG20141107T194804 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 07-11月-14

启动 Control File and SPFILE Autobackup 于 07-11月-14
段 handle=C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\PROD\AUTOBACKUP\2014_11_07\O1_MF_S_863034486_B5SDCQN5_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 07-11月-14

RMAN>

RMAN> exit


恢复管理器完成。

C:\Users\IBM_ADMIN>
2.COPY orignal instance 的pfile 修改关键参数如下(用于启动之后新创建的target instance)
pfile 名:C:\app\oracle_install\product\12.1.0\dbhome_2\database\INITDEV.ORA
关键参数:
*.db_name='prod'
*.db_unique_name='dev'
db_create_file_dest='C:\APP\ORACLE_INSTALL\ORADATA\DEV\'

3.在windows上新建一个idle instance --dev
oradim -NEW -SRVC OracleServicetest -STARTMODE manual -PFILE "D:/Oracle/admin/test/pfile/inittest.ora
4.另开cmd启动target instance 如下:

RMAN> startup nomount pfile='C:\app\oracle_install\product\12.1.0\dbhome_2\database\INITDEV.ORA';

已连接到目标数据库 (未启动)
Oracle 实例已启动

系统全局区域总计    2505338880 字节

Fixed Size                     2405760 字节
Variable Size                671091328 字节
Database Buffers            1811939328 字节
Redo Buffers                  19902464 字节
5.根据target database的备份集还原controlfile到当前的实例下

RMAN> restore controlfile from "C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\PROD\AUTOBACKUP\2014_11_07\O1_MF_S_863034486_B5SDCQN5_.BKP";

启动 restore 于 07-11月-14
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=5 设备类型=DISK

通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:17
输出文件名=C:\APP\ORACLE_INSTALL\ORADATA\DEV\CONTROL01.CTL
输出文件名=C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\DEV\CONTROL02.CTL
完成 restore 于 07-11月-14

6.创建spfile

RMAN> create spfile from pfile='C:\app\oracle_install\product\12.1.0\dbhome_2\database\INITDEV.ORA';

已处理语句
7.将恢复回的controlfile挂载在当前的实例下

RMAN> startup mount;

数据库已经启动
数据库已装载

8.现在可以还原数据文件到参数文件中的初始化目录了

RMAN> restore controlfile from "C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\PROD\AUTOBACKUP\2014_11_07\O1_MF_S_863034486_B5SDCQN5_.BKP";

启动 restore 于 07-11月-14
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=5 设备类型=DISK

通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:17
输出文件名=C:\APP\ORACLE_INSTALL\ORADATA\DEV\CONTROL01.CTL
输出文件名=C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\DEV\CONTROL02.CTL
完成 restore 于 07-11月-14

9.将当前实例下的数据库信息指向还原后的文件

RMAN> switch database to copy;

数据文件 1 已切换成数据文件副本 "C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_SYSTEM_B5SJ1VRZ_.DBF"
数据文件 2 已切换成数据文件副本 "C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_TEST01_B5SJ1W9T_.DBF"
数据文件 3 已切换成数据文件副本 "C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_SYSAUX_B5SJ1VPB_.DBF"
数据文件 5 已切换成数据文件副本 "C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_UNDOTBS1_B5SJ1VX7_.DBF"
数据文件 6 已切换成数据文件副本 "C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_USERS_B5SJ1WDL_.DBF"

10.recover database

RMAN> recover database;

启动 recover 于 07-11月-14
使用通道 ORA_DISK_1

正在开始介质的恢复

线程 1 序列 29 的归档日志已作为文件 C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\PROD\ARCHIVELOG\2014_11_07\O1_MF_1_29_B5SDCN4G_.ARC 存在于磁盘上
线程 1 序列 30 的归档日志已作为文件 C:\APP\ORACLE_INSTALL\ORADATA\PROD\REDO03.LOG 存在于磁盘上
归档日志文件名=C:\APP\ORACLE_INSTALL\FAST_RECOVERY_AREA\PROD\ARCHIVELOG\2014_11_07\O1_MF_1_29_B5SDCN4G_.ARC 线程=1 序列=29
归档日志文件名=C:\APP\ORACLE_INSTALL\ORADATA\PROD\REDO03.LOG 线程=1 序列=30
介质恢复完成, 用时: 00:00:06
完成 recover 于 07-11月-14

RMAN>
11.我们当前使用的控制文件还是建立在orignal database的基础上,因此我们需要重建control file
C:\Users\IBM_ADMIN>echo %ORACLE_SID%
dev

C:\Users\IBM_ADMIN>sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on 星期五 11月 7 21:29:07 2014

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


连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Advanced Analytics and Real Application Testing options

SQL> alter database backup controlfile to trace;

数据库已更改。

12.使用如下sql找出生成的备份controlfile 的trace文件

SQL> select tracefile from v$session s,v$process p
  2  where s.paddr = p.addr
  3  and s.audsid = sys_context('USERENV','SESSIONID');

TRACEFILE
--------------------------------------------------------------------------------
C:\APP\ORACLE_INSTALL\diag\rdbms\dev\dev\trace\dev_ora_7804.trc

SQL>

13.打开上一步找出的trace文件(关键信息如下)
---------------------------------------------------------------------------------------------------------------
CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'C:\APP\ORACLE_INSTALL\ORADATA\PROD\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'C:\APP\ORACLE_INSTALL\ORADATA\PROD\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'C:\APP\ORACLE_INSTALL\ORADATA\PROD\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_SYSTEM_B5SJ1VRZ_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_TEST01_B5SJ1W9T_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_SYSAUX_B5SJ1VPB_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_UNDOTBS1_B5SJ1VX7_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_USERS_B5SJ1WDL_.DBF'
CHARACTER SET ZHS16GBK
----------------------------------------------------------------------------------------------------------------------------------------
14.修改上面的关键信息如下从而创建control file
----------------------------------------------------------------------------------------------------------------------------------------
CREATE CONTROLFILE REUSE DATABASE "PROD" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'C:\app\oracle_install\oradata\dev\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'C:\app\oracle_install\oradata\dev\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'C:\app\oracle_install\oradata\dev\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_SYSTEM_B5SJ1VRZ_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_TEST01_B5SJ1W9T_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_SYSAUX_B5SJ1VPB_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_UNDOTBS1_B5SJ1VX7_.DBF',
  'C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\DATAFILE\O1_MF_USERS_B5SJ1WDL_.DBF'
CHARACTER SET ZHS16GBK
---------------------------------------------------------------------------------------------------------------------------------------
15.然后将修改后的重建控制文件的脚本保存并在sqlplus里调用以重新创建控制 文件如下

SQL> alter system reset control_files scope=spfile;
系统已更改。

SQL> startup force nomount;
ORACLE 例程已经启动。

Total System Global Area 2505338880 bytes
Fixed Size                  2405760 bytes
Variable Size             671091328 bytes
Database Buffers         1811939328 bytes
Redo Buffers               19902464 bytes
SQL> @C:\recreate_controlfile.sql;
 19  ;

控制文件已创建。

SQL> select value from v$parameter where name = 'control_files';

VALUE
--------------------------------------------------------------------------------
C:\APP\ORACLE_INSTALL\ORADATA\DEV\DEV\CONTROLFILE\O1_MF_B5V9GKGP_.CTL, C:\APP\OR
ACLE_INSTALL\FAST_RECOVERY_AREA\DEV\CONTROLFILE\O1_MF_B5V9GKSV_.CTL

16.现在以重置日志的方式打开数据库

SQL> alter database open resetlogs;

数据库已更改。

17.默认情况下rman备份是没有备份temp文件的,因此需要重新添加temp文件到数据库中

SQL> alter tablespace temp add tempfile size 1g;

表空间已更改。

18.然后查询当前的数据库状态如下,表示同一台host下成功完成数据库的迁移

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

问题: 这样子还原出来的 数据库DBID以及NAME 都与原库一样,因此我们需要的话(大多数情况下)都应该重新设置DBID以及NAME。本文我使用了NID的方法修改(注意修改初始化参数文件中国的DB_NAME,然后重新创建SPFILE)。自此,使用RMAN clone出的DB即可正常使用了。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27799221/viewspace-1328675/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27799221/viewspace-1328675/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值