RMAN

F:/oracle>set oracle_sid=inthdmp2
F:/oracle>sqlplus "/ as sysdba"

Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

数据库装载完毕。
数据库已经打开。
SQL>
2、连接并启动辅助实例到nomount 状态;
F:/oracle>set oracle_sid=inthdmp
F:/oracle>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一10 月22 16:11:28 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.

已连接到空闲例程。
SQL> startup
nomount
ORACLE 例程已经启动。
SQL>
3、RMAN 连接到目标数据库和辅助实例。
F:/oracle>set oracle_sid=inthdmp2


###目标数据库使用操作系统认证,所以首先设置SID
F:/oracle>rman
target
/
auxiliary
sys/verysafe:)@inthdmp
恢复管理器: Release 10.2.0.1.0 - Production on 星期五12 月02 15:03:10 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: inthdmp2 (DBID=3402005373)
已连接到辅助数据库: inthdmp (未装载)
RMAN>
4、首先确认目标库存在可用备份。
RMAN> list
backup;
使用目标数据库控制文件替代恢复目录
备份集列表
===================
BS 关键字类型LV 大小设备类型经过时间完成时间
------- ---- -- ---------- ----------- ------------ ----------
3 Full 443.16M DISK 00:00:51 04-12 月-09
BP 关键字: 3 状态: AVAILABLE 已压缩: NO 标记: TAG20071022T161927
段名:D:/BACKUP/06IV54CF_1_1
备份集3 中的数据文件列表
文件LV 类型Ckp SCN Ckp 时间名称
---- -- ---- ---------- ---------- ----
1 Full 1326175 04-12 月-09 F:/ORACLE/ORADATA/inthdmp2/SYSTEM01.DBF
2 Full 1326175 04-12 月-09 F:/ORACLE/ORADATA/inthdmp2/UNDOTBS01.DBF
3 Full 1326175 04-12 月-09 F:/ORACLE/ORADATA/inthdmp2/SYSAUX01.DBF
4 Full 1326175 04-12 月-09 F:/ORACLE/ORADATA/inthdmp2/inthdmp2.DBF
5 Full 1326175 04-12 月-09 F:/ORACLE/ORADATA/inthdmp2/USERS01.DBF
BS 关键字类型LV 大小设备类型经过时间完成时间

4 Full 6.80M DISK 00:00:01 04-12 月-09
BP 关键字: 4 状态: AVAILABLE 已压缩: NO 标记: TAG20071022T162023
段名:D:/BACKUP/C-3402005373-20071022-00
包括的控制文件: Ckp SCN: 1326175 Ckp 时间: 04-12 月-09
包含的SPFILE: 修改时间: 24-9 月-07
RMAN>
5、万事俱备,只欠Duplicate 执行;
RMAN> duplicate
target
database
to
inthdmp;
####只需要执行这一行
分配的通道: ORA_AUX_DISK_1
通道ORA_AUX_DISK_1: sid=39 devtype=DISK
内存脚本的内容:
{
set newname for datafile 1 to
"F:/ORACLE/ORADATA/inthdmp/SYSTEM01.DBF";
set newname for datafile 2 to
"F:/ORACLE/ORADATA/inthdmp/UNDOTBS01.DBF";
set newname for datafile 3 to
"F:/ORACLE/ORADATA/inthdmp/SYSAUX01.DBF";
set newname for datafile 4 to
"F:/ORACLE/ORADATA/inthdmp/inthdmp2.DBF";
set newname for datafile 5 to
"F:/ORACLE/ORADATA/inthdmp/USERS01.DBF";
restore
check readonly
clone database
;
}
正在执行内存脚本
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动restore 于22-10 月-07
使用通道ORA_AUX_DISK_1
通道ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001 恢复到F:/ORACLE/ORADATA/inthdmp/SYSTEM01.DBF
正将数据文件00002 恢复到F:/ORACLE/ORADATA/inthdmp/UNDOTBS01.DBF
正将数据文件00003 恢复到F:/ORACLE/ORADATA/inthdmp/SYSAUX01.DBF
正将数据文件00004 恢复到F:/ORACLE/ORADATA/inthdmp/inthdmp2.DBF
正将数据文件00005 恢复到F:/ORACLE/ORADATA/inthdmp/USERS01.DBF
通道ORA_AUX_DISK_1: 正在读取备份段D:/BACKUP/06IV54CF_1_1
通道ORA_AUX_DISK_1: 已恢复备份段1
段句柄= D:/BACKUP/06IV54CF_1_1 标记= TAG20071022T161927
通道ORA_AUX_DISK_1: 恢复完成, 用时: 00:01:06

sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "inthdmp" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ( 'F:/ORACLE/ORADATA/inthdmp/REDO01.LOG' ) SIZE 20 M REUSE,
GROUP 2 ( 'F:/ORACLE/ORADATA/inthdmp/REDO02.LOG' ) SIZE 20 M REUSE,
GROUP 3 ( 'F:/ORACLE/ORADATA/inthdmp/REDO03.LOG' ) SIZE 20 M REUSE
DATAFILE
'F:/ORACLE/ORADATA/inthdmp/SYSTEM01.DBF'
CHARACTER SET ZHS16GBK
内存脚本的内容:
{
switch clone datafile all;
}
正在执行内存脚本
释放的通道: ORA_AUX_DISK_1
正在执行内存脚本
启动recover 于22-10 月-07
分配的通道: ORA_AUX_DISK_1
通道ORA_AUX_DISK_1: sid=39 devtype=DISK
完成recover 于22-10 月-07
内存脚本的内容:
{
shutdown clone;
startup clone nomount ;
}
正在执行内存脚本
数据库已卸载
Oracle 实例已关闭
已连接到辅助数据库(未启动)
Oracle 实例已启动
系统全局区域总计285212672 字节
Fixed Size 1248552 字节
Variable Size 226493144 字节
Database Buffers 50331648 字节
Redo Buffers 7139328 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "inthdmp" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ( 'F:/ORACLE/ORADATA/inthdmp/REDO01.LOG' ) SIZE 20 M REUSE,
GROUP 2 ( 'F:/ORACLE/ORADATA/inthdmp/REDO02.LOG' ) SIZE 20 M REUSE,
GROUP 3 ( 'F:/ORACLE/ORADATA/inthdmp/REDO03.LOG' ) SIZE 20 M REUSE
DATAFILE
'F:/ORACLE/ORADATA/inthdmp/SYSTEM01.DBF'
CHARACTER SET ZHS16GBK
内存脚本的内容:
{
set newname for tempfile 1 to
"F:/ORACLE/ORADATA/inthdmp/TEMP01.DBF";
switch clone tempfile all;
catalog clone datafilecopy "F:/ORACLE/ORADATA/inthdmp/UNDOTBS01.DBF";
catalog clone datafilecopy "F:/ORACLE/ORADATA/inthdmp/SYSAUX01.DBF";
catalog clone datafilecopy "F:/ORACLE/ORADATA/inthdmp/inthdmp2.DBF";
catalog clone datafilecopy "F:/ORACLE/ORADATA/inthdmp/USERS01.DBF";
switch clone datafile all;
}
正在执行内存脚本
正在执行命令: SET NEWNAME
临时文件1 在控制文件中已重命名为F:/ORACLE/ORADATA/inthdmp/TEMP01.DBF
已将数据文件副本列入目录
数据文件副本filename=F:/ORACLE/ORADATA/inthdmp/UNDOTBS01.DBF recid=1 stamp=636654246
已将数据文件副本列入目录
数据文件副本filename=F:/ORACLE/ORADATA/inthdmp/SYSAUX01.DBF recid=2 stamp=636654246
已将数据文件副本列入目录
数据文件副本filename=F:/ORACLE/ORADATA/inthdmp/inthdmp2.DBF recid=3 stamp=636654246
已将数据文件副本列入目录
数据文件副本filename=F:/ORACLE/ORADATA/inthdmp/USERS01.DBF recid=4 stamp=636654247
数据文件2 已转换成数据文件副本
输入数据文件副本recid=1 stamp=636654246 文件名=F:/ORACLE/ORADATA/inthdmp/UNDOTBS01.DBF
数据文件3 已转换成数据文件副本
输入数据文件副本recid=2 stamp=636654246 文件名=F:/ORACLE/ORADATA/inthdmp/SYSAUX01.DBF
数据文件4 已转换成数据文件副本
输入数据文件副本recid=3 stamp=636654246 文件名=F:/ORACLE/ORADATA/inthdmp/inthdmp2.DBF
数据文件5 已转换成数据文件副本
输入数据文件副本recid=4 stamp=636654247 文件名=F:/ORACLE/ORADATA/inthdmp/USERS01.DBF
内存脚本的内容:
{
Alter clone database open resetlogs;
}
正在执行内存脚本
数据库已打开
完成Duplicate Db
RMAN>

6、连接副本数据库看看
RMAN> host;
Microsoft Windows [版本5.2.3790]
(C) 版权所有1985-2003 Microsoft Corp.
F:/oracle>sqlplus inth/inth

Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select *from tab where tname like 'INTH%' and rownum<9;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
INTHTMP_HC_ORC_BJ TABLE
INTHTMP_HC_ORD_PRODUCT_PACKAGE TABLE
INTHTMP_HC_ORD_PROD_PACK_ITEM TABLE
INTHTMP_HC_PRODUCT_BJ TABLE
INTHTMP_HC_PROJ_PROD_CLASS_BJ TABLE
SQL>
OK,数据都在。创建成功:)
整体来看,这是个非常简单的示例,简单是简单在我们操作的步骤上,事实上duplicate 就是一个具有强大
功能的简单命令,就像是一堆积木,通过各种各样的灵活组合来实现各种各样的需求,比如你可以在执行
duplicate 命令时通过指定UNTIL TIME 来限定恢复数据所在时间。又比如你可以通过指定PFILE 参数从客户端
初始化参数文件启动辅助实例,取代在创建辅助实例里创建spfile 的操作。又或者通过Set Newname 指定某个
数据文件的存储位置等等。其它诸如异地恢复啦,复制到asm 啦之类都是以duplicate 命令和辅助实例为主,几
个相关命令和子句为辅的综合应用,复制就是这么简单。
另外此章节中重点看看第5 步,虽然我们只执行了duplicate 一条命令,但你如果细细分析其执行日志的话
能够得到的决不仅仅只是这些。比如执行日志第3 行就看出是自动分配的通道,日志第5 行开始则是将
db_file_name_convert 等参数转换为SET NEWNAME 命令,再接着往下看,发现有restore、clone database 之类
命令,看过“一步一步学RMAN”的朋友肯定还记的在该系列最后二章节中我们曾经实践过RMAN 恢复备份
到异机的操作。与本例对比的话操作方式有不少雷同,你完全可以把duplicate 也看成是恢复操作,当然二者操
作也有差异,比如duplicate 命令更加简单,而且duplicate 创建的副本数据库拥有独立的DBID,而RMAN 手工
恢复到异机创建的是与源库相同的DBID(当然duplicate 也可以创建DBID 与源库相同,比如standby 数据库,


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/inthirties/archive/2010/01/22/5222640.aspx

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值