Active database duplicate,可以在没有备份的情况下复制一个比较新的数据库副本,这样,可以节省对数据库的备份时间。
具体操作:
[@more@]目标数据库实例准备
C:Userssundog>oradim -new -sid TEST
实例已创建。
C:Userssundog>orapwd file=D:oracleproduct11.2.0dbhome_1databasePWDtest.o
ra password=sys entries=10
创建目标数据库目录结构
admin
oradata
fast_recovery_area
创建目标数据库初始化参数文件
C:Userssundog>sqlplus sys/sys@orcl as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on 星期四 4月 7 14:29:27 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning option
SQL> create pfile='e:inittest.ora' from spfile;
文件已创建。
修改初始化文件,并增加转换参数,将所有源数据库的路径修改为目标数据库的路径,如路径相同,则需要在duplicate database时指定nofilenamecheck
*.db_file_name_convert=('D:oracleoradataorcl','D:oracleoradatatest')
*.log_file_name_convert=('D:oracleoradataorcl','D:oracleoradatatest')
增加listener及tnsnames
目标数据库启动至nomount状态
C:Userssundog>rman target sys/sys@test
恢复管理器: Release 11.2.0.2.0 - Production on 星期四 4月 7 14:41:21 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup nomount pfile='e:inittest.ora'
Oracle 实例已启动
系统全局区域总计 548216832 字节
Fixed Size 1384836 字节
Variable Size 176164476 字节
Database Buffers 356515840 字节
Redo Buffers 14151680 字节
复制数据库
C:Userssundog>rman target sys/sys@orcl auxiliary sys/sys@test
恢复管理器: Release 11.2.0.2.0 - Production on 星期四 4月 7 14:43:38 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: ORCL (DBID=1275518061)
已连接到辅助数据库: TEST (未装载)
RMAN> list backupset;
说明与资料档案库中的任何备份都不匹配
RMAN> list backup;
说明与资料档案库中的任何备份都不匹配
RMAN> duplicate target database to 'test' from active database;
启动 Duplicate Db 于 07-4月 -11
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=585 设备类型=DISK
内存脚本的内容:
{
sql clone "create spfile from memory";
}
正在执行内存脚本
sql 语句: create spfile from memory
内存脚本的内容:
{
shutdown clone immediate;
startup clone nomount;
}
正在执行内存脚本
Oracle 实例已关闭
已连接到辅助数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 548216832 字节
Fixed Size 1384836 字节
Variable Size 176164476 字节
Database Buffers 356515840 字节
Redo Buffers 14151680 字节
内存脚本的内容:
{
sql clone "alter system set db_name =
''ORCL'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''TEST'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
backup as copy current controlfile auxiliary format 'D:ORACLEORADATATEST
CONTROL01.CTL';
restore clone controlfile to 'D:ORACLEFAST_RECOVERY_AREATESTCONTROL02.CT
L' from
'D:ORACLEORADATATESTCONTROL01.CTL';
alter clone database mount;
}
正在执行内存脚本
sql 语句: alter system set db_name = ''ORCL'' comment= ''Modified by RMAN dupl
icate'' scope=spfile
sql 语句: alter system set db_unique_name = ''TEST'' comment= ''Modified by RM
AN duplicate'' scope=spfile
Oracle 实例已关闭
Oracle 实例已启动
系统全局区域总计 548216832 字节
Fixed Size 1384836 字节
Variable Size 176164476 字节
Database Buffers 356515840 字节
Redo Buffers 14151680 字节
启动 backup 于 07-4月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 设备类型=DISK
通道 ORA_DISK_1: 启动数据文件副本
复制当前控制文件
输出文件名=D:ORACLEPRODUCT11.2.0DBHOME_1DATABASESNCFORCL.ORA 标记=TAG20110
407T144610 RECID=3 STAMP=747845171
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:03
完成 backup 于 07-4月 -11
启动 restore 于 07-4月 -11
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=580 设备类型=DISK
通道 ORA_AUX_DISK_1: 已复制控制文件副本
完成 restore 于 07-4月 -11
数据库已装载
内存脚本的内容:
{
set newname for datafile 1 to
"D:ORACLEORADATATESTSYSTEM01.DBF";
set newname for datafile 2 to
"D:ORACLEORADATATESTSYSAUX01.DBF";
set newname for datafile 3 to
"D:ORACLEORADATATESTUNDOTBS01.DBF";
set newname for datafile 4 to
"D:ORACLEORADATATESTUSERS01.DBF";
set newname for datafile 5 to
"D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF";
set newname for datafile 6 to
"D:ORACLEORADATATESTMGMT.DBF";
set newname for datafile 7 to
"D:ORACLEORADATATESTMGMT_AD4J.DBF";
backup as copy reuse
datafile 1 auxiliary format
"D:ORACLEORADATATESTSYSTEM01.DBF" datafile
2 auxiliary format
"D:ORACLEORADATATESTSYSAUX01.DBF" datafile
3 auxiliary format
"D:ORACLEORADATATESTUNDOTBS01.DBF" datafile
4 auxiliary format
"D:ORACLEORADATATESTUSERS01.DBF" datafile
5 auxiliary format
"D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF" datafile
6 auxiliary format
"D:ORACLEORADATATESTMGMT.DBF" datafile
7 auxiliary format
"D:ORACLEORADATATESTMGMT_AD4J.DBF" ;
sql 'alter system archive log current';
}
正在执行内存脚本
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 backup 于 07-4月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00006 名称=D:ORACLEORADATAORCLMGMT.DBF
输出文件名=D:ORACLEORADATATESTMGMT.DBF 标记=TAG20110407T144622
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:01:05
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00001 名称=D:ORACLEORADATAORCLSYSTEM01.DBF
输出文件名=D:ORACLEORADATATESTSYSTEM01.DBF 标记=TAG20110407T144622
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:35
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00002 名称=D:ORACLEORADATAORCLSYSAUX01.DBF
输出文件名=D:ORACLEORADATATESTSYSAUX01.DBF 标记=TAG20110407T144622
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:35
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00003 名称=D:ORACLEORADATAORCLUNDOTBS01.DBF
输出文件名=D:ORACLEORADATATESTUNDOTBS01.DBF 标记=TAG20110407T144622
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:15
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00007 名称=D:ORACLEORADATAORCLMGMT_AD4J.DBF
输出文件名=D:ORACLEORADATATESTMGMT_AD4J.DBF 标记=TAG20110407T144622
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:15
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00005 名称=D:ORACLEORADATAORCLMGMT_ECM_DEPOT1.DBF
输出文件名=D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF 标记=TAG20110407T144622
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:03
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00004 名称=D:ORACLEORADATAORCLUSERS01.DBF
输出文件名=D:ORACLEORADATATESTUSERS01.DBF 标记=TAG20110407T144622
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 07-4月 -11
sql 语句: alter system archive log current
内存脚本的内容:
{
backup as copy reuse
archivelog like "D:ORACLEFAST_RECOVERY_AREAORCLARCHIVELOG2011_04_07O1_
MF_1_15_6STQMC5S_.ARC" auxiliary format
"D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_%U_.ARC"
;
catalog clone recovery area;
switch clone datafile all;
}
正在执行内存脚本
启动 backup 于 07-4月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始复制归档日志
输入归档日志线程=1 序列=15 RECID=15 STAMP=747845355
输出文件名=D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_AR
CH_D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC RECID=0 STAMP=0
通道 ORA_DISK_1: 归档日志复制完成, 经过时间: 00:00:01
完成 backup 于 07-4月 -11
搜索恢复区中的所有文件
数据库未知文件的列表
=====================================
文件名: D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_ARCH_
D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_15_ARCH_
D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC
恢复区中的文件列表不由数据库管理
==========================================================
文件名: D:ORACLEFAST_RECOVERY_AREATESTCONTROL02.CTL
RMAN-07526: 原因: 文件不是 Oracle Managed File
不由恢复区管理的文件数为 1, 总计 9.28MB
数据文件 1 已转换成数据文件副本
输入数据文件副本 RECID=3 STAMP=747845358 文件名=D:ORACLEORADATATESTSYSTEM01.
DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=4 STAMP=747845358 文件名=D:ORACLEORADATATESTSYSAUX01.
DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=5 STAMP=747845358 文件名=D:ORACLEORADATATESTUNDOTBS01
.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=6 STAMP=747845358 文件名=D:ORACLEORADATATESTUSERS01.D
BF
数据文件 5 已转换成数据文件副本
输入数据文件副本 RECID=7 STAMP=747845358 文件名=D:ORACLEORADATATESTMGMT_ECM_
DEPOT1.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=8 STAMP=747845358 文件名=D:ORACLEORADATATESTMGMT.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 RECID=9 STAMP=747845359 文件名=D:ORACLEORADATATESTMGMT_AD4J
.DBF
内存脚本的内容:
{
set until scn 646231;
recover
clone database
delete archivelog
;
}
正在执行内存脚本
正在执行命令: SET until clause
启动 recover 于 07-4月 -11
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
线程 1 序列 15 的归档日志已作为文件 D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG
2011_04_07O1_MF_1_15_ARCH_D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.
ARC 存在于磁盘上
归档日志文件名=D:ORACLEFAST_RECOVERY_AREATESTARCHIVELOG2011_04_07O1_MF_1_1
5_ARCH_D-ORCL_ID-1275518061_S-15_T-1_A-747757455_1DM96DNC_.ARC 线程=1 序列=15
介质恢复完成, 用时: 00:00:02
完成 recover 于 07-4月 -11
Oracle 实例已启动
系统全局区域总计 548216832 字节
Fixed Size 1384836 字节
Variable Size 176164476 字节
Database Buffers 356515840 字节
Redo Buffers 14151680 字节
内存脚本的内容:
{
sql clone "alter system set db_name =
''TEST'' comment=
''Reset to original value by RMAN'' scope=spfile";
sql clone "alter system reset db_unique_name scope=spfile";
shutdown clone immediate;
startup clone nomount;
}
正在执行内存脚本
sql 语句: alter system set db_name = ''TEST'' comment= ''Reset to original val
ue by RMAN'' scope=spfile
sql 语句: alter system reset db_unique_name scope=spfile
Oracle 实例已关闭
已连接到辅助数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 548216832 字节
Fixed Size 1384836 字节
Variable Size 176164476 字节
Database Buffers 356515840 字节
Redo Buffers 14151680 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "TEST" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ( 'D:ORACLEORADATATESTREDO01.LOG' ) SIZE 50 M REUSE,
GROUP 2 ( 'D:ORACLEORADATATESTREDO02.LOG' ) SIZE 50 M REUSE,
GROUP 3 ( 'D:ORACLEORADATATESTREDO03.LOG' ) SIZE 50 M REUSE
DATAFILE
'D:ORACLEORADATATESTSYSTEM01.DBF'
CHARACTER SET ZHS16GBK
内存脚本的内容:
{
set newname for tempfile 1 to
"D:ORACLEORADATATESTTEMP01.DBF";
switch clone tempfile all;
catalog clone datafilecopy "D:ORACLEORADATATESTSYSAUX01.DBF",
"D:ORACLEORADATATESTUNDOTBS01.DBF",
"D:ORACLEORADATATESTUSERS01.DBF",
"D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF",
"D:ORACLEORADATATESTMGMT.DBF",
"D:ORACLEORADATATESTMGMT_AD4J.DBF";
switch clone datafile all;
}
正在执行内存脚本
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 D:ORACLEORADATATESTTEMP01.DBF
已将数据文件副本列入目录
数据文件副本文件名=D:ORACLEORADATATESTSYSAUX01.DBF RECID=1 STAMP=747845437
已将数据文件副本列入目录
数据文件副本文件名=D:ORACLEORADATATESTUNDOTBS01.DBF RECID=2 STAMP=747845437
已将数据文件副本列入目录
数据文件副本文件名=D:ORACLEORADATATESTUSERS01.DBF RECID=3 STAMP=747845437
已将数据文件副本列入目录
数据文件副本文件名=D:ORACLEORADATATESTMGMT_ECM_DEPOT1.DBF RECID=4 STAMP=7478
45437
已将数据文件副本列入目录
数据文件副本文件名=D:ORACLEORADATATESTMGMT.DBF RECID=5 STAMP=747845437
已将数据文件副本列入目录
数据文件副本文件名=D:ORACLEORADATATESTMGMT_AD4J.DBF RECID=6 STAMP=747845438
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=1 STAMP=747845437 文件名=D:ORACLEORADATATESTSYSAUX01.
DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=2 STAMP=747845437 文件名=D:ORACLEORADATATESTUNDOTBS01
.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=3 STAMP=747845437 文件名=D:ORACLEORADATATESTUSERS01.D
BF
数据文件 5 已转换成数据文件副本
输入数据文件副本 RECID=4 STAMP=747845437 文件名=D:ORACLEORADATATESTMGMT_ECM_
DEPOT1.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=5 STAMP=747845437 文件名=D:ORACLEORADATATESTMGMT.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 RECID=6 STAMP=747845438 文件名=D:ORACLEORADATATESTMGMT_AD4J
.DBF
对辅助数据库重新启用控制文件选项
执行: alter database force logging
内存脚本的内容:
{
Alter clone database open resetlogs;
}
正在执行内存脚本
数据库已打开
完成 Duplicate Db 于 07-4月 -11
RMAN>
数据库复制完成,如果有需要的话,可以创建spfile
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19423/viewspace-1048333/ ,如需转载,请注明出处,否则将追究法律责任。