环境介绍: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\'
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;
数据库已经启动
数据库已装载
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
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"
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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27799221/viewspace-1328675/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27799221/viewspace-1328675/