Oracle 11g 新特性 Active Database Duplicate
原库:mdsp(归档模式)
新库:oradup
操作系统:windowxp+oracle11g
1. 手工创建新的instance
C:\Documents and Settings\wwang>oradim -NEW -SID oradup
实例已创建。
创建初始化参数文件,并创建相应的目录
参数文件中要包括:
DB_ NAME=oradup
CONTROL_FILES
DB_FILE_NAME_CONVERT=(‘D:\APP\WWANG\ORADATA\MDSP’,’ D:\app\wwang\oradata\oradup’)
LOG_FILE_NAME_CONVERT=(‘D:\APP\WWANG\ORADATA\MDSP’,’ D:\app\wwang\oradata\oradup’)
Log_archive_dest_1=’location=D:\app\wwang\oradata\arch’
compatible='11.2.0.0.0'
创建密码文件:
C:\Documents and Settings\wwang>orapwd file=D:\app\wwang\product\11.2.0\dbhome_1\database\pwdoradup.ora entries=
2 force=y password=123;
C:\Documents and Settings\wwang>
2. 将oradup启动到nomount状态
C:\Documents and Settings\wwang>set oracle_sid=oradup
C:\Documents and Settings\wwang>sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 7月 1 19:45:29 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 326414336 bytes
Fixed Size 1374388 bytes
Variable Size 251660108 bytes
Database Buffers 67108864 bytes
Redo Buffers 6270976 bytes
SQL>
3. 启动rman同时连接到原库和新库
C:\Documents and Settings\wwang>rman target sys/oracle@mdsp auxiliary sys/123@oradup
恢复管理器: Release 11.2.0.1.0 - Production on 星期日 7月 1 20:02:33 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: MDSP (DBID=663168021)
已连接到辅助数据库: ORADUP (未装载)
RMAN>
4. 执行duplicate target database to oradup from active database
屏幕显示如下:
RMAN> duplicate target database to oradup from active database;
启动 Duplicate Db 于 01-7月 -12
使用通道 ORA_AUX_DISK_1
内存脚本的内容:
{
sql clone "create spfile from memory";
}
正在执行内存脚本
sql 语句: create spfile from memory
内存脚本的内容:
{
shutdown clone immediate;
startup clone nomount;
}
正在执行内存脚本
Oracle 实例已关闭
已连接到辅助数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 326414336 字节
Fixed Size 1374388 字节
Variable Size 251660108 字节
Database Buffers 67108864 字节
Redo Buffers 6270976 字节
内存脚本的内容:
{
sql clone "alter system set db_name =
''MDSP'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''ORADUP'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
backup as copy current controlfile auxiliary format 'D:\APP\WWANG\ORADATA\ORADUP\CONTROL01.CTL';
restore clone controlfile to 'D:\APP\WWANG\FLASH_RECOVERY_AREA\ORADUP\CONTROL02.CTL' from
'D:\APP\WWANG\ORADATA\ORADUP\CONTROL01.CTL';
alter clone database mount;
}
正在执行内存脚本
sql 语句: alter system set db_name = ''MDSP'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql 语句: alter system set db_unique_name = ''ORADUP'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle 实例已关闭
Oracle 实例已启动
系统全局区域总计 326414336 字节
Fixed Size 1374388 字节
Variable Size 251660108 字节
Database Buffers 67108864 字节
Redo Buffers 6270976 字节
启动 backup 于 01-7月 -12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=142 设备类型=DISK
通道 ORA_DISK_1: 启动数据文件副本
复制当前控制文件
输出文件名=D:\APP\WWANG\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFMDSP.ORA 标记=TAG20120701T200958 RECID=1 STAMP=7875
22202
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:07
完成 backup 于 01-7月 -12
启动 restore 于 01-7月 -12
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=134 设备类型=DISK
通道 ORA_AUX_DISK_1: 已复制控制文件副本
完成 restore 于 01-7月 -12
数据库已装载
内存脚本的内容:
{
set newname for datafile 1 to
"D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF";
set newname for datafile 2 to
"D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF";
set newname for datafile 3 to
"D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF";
set newname for datafile 4 to
"D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF";
set newname for datafile 5 to
"D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF";
set newname for datafile 6 to
"D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF";
backup as copy reuse
datafile 1 auxiliary format
"D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF" datafile
2 auxiliary format
"D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF" datafile
3 auxiliary format
"D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF" datafile
4 auxiliary format
"D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF" datafile
5 auxiliary format
"D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF" datafile
6 auxiliary format
"D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF" ;
sql 'alter system archive log current';
}
正在执行内存脚本
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 backup 于 01-7月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00001 名称=D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF
输出文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF 标记=TAG20120701T201016
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:45
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00002 名称=D:\APP\WWANG\ORADATA\MDSP\SYSAUX01.DBF
输出文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF 标记=TAG20120701T201016
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:35
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00003 名称=D:\APP\WWANG\ORADATA\MDSP\UNDOTBS01.DBF
输出文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF 标记=TAG20120701T201016
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:25
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00005 名称=D:\APP\WWANG\ORADATA\MDSP\IMUSE01.DBF
输出文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF 标记=TAG20120701T201016
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:07
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00006 名称=D:\APP\WWANG\ORADATA\MDSP\JACK.DBF
输出文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF 标记=TAG20120701T201016
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00004 名称=D:\APP\WWANG\ORADATA\MDSP\USERS01.DBF
输出文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF 标记=TAG20120701T201016
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 01-7月 -12
sql 语句: alter system archive log current
内存脚本的内容:
{
backup as copy reuse
archivelog like "D:\APP\WWANG\FLASH_RECOVERY_AREA\MDSP\ARCHIVELOG\2012_07_01\O1_MF_1_45_7Z0HNXSD_.ARC" auxil
iary format
"D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001" ;
catalog clone archivelog "D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001";
switch clone datafile all;
}
正在执行内存脚本
启动 backup 于 01-7月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始复制归档日志
输入归档日志线程=1 序列=45 RECID=2 STAMP=787522334
输出文件名=D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 RECID=0 STAMP=0
通道 ORA_DISK_1: 归档日志复制完成, 经过时间: 00:00:01
完成 backup 于 01-7月 -12
已编目的归档日志
归档日志文件名=D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 RECID=2 STAMP=787522336
数据文件 1 已转换成数据文件副本
输入数据文件副本 RECID=1 STAMP=787522336 文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=2 STAMP=787522336 文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=3 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=4 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 RECID=5 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=6 STAMP=787522337 文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF
内存脚本的内容:
{
set until scn 2736545;
recover
clone database
delete archivelog
;
}
正在执行内存脚本
正在执行命令: SET until clause
启动 recover 于 01-7月 -12
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
线程 1 序列 45 的归档日志已作为文件 D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 存在于磁盘上
归档日志文件名=D:\APP\WWANG\ORADATA\ARCH\ARC0000000045_0785374459.0001 线程=1 序列=45
介质恢复完成, 用时: 00:00:02
完成 recover 于 01-7月 -12
内存脚本的内容:
{
shutdown clone immediate;
startup clone nomount;
sql clone "alter system set db_name =
''ORADUP'' 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;
}
正在执行内存脚本
数据库已卸装
Oracle 实例已关闭
已连接到辅助数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 326414336 字节
Fixed Size 1374388 字节
Variable Size 251660108 字节
Database Buffers 67108864 字节
Redo Buffers 6270976 字节
sql 语句: alter system set db_name = ''ORADUP'' comment= ''Reset to original value by RMAN'' scope=spfile
sql 语句: alter system reset db_unique_name scope=spfile
Oracle 实例已关闭
已连接到辅助数据库 (未启动)
Oracle 实例已启动
系统全局区域总计 326414336 字节
Fixed Size 1374388 字节
Variable Size 251660108 字节
Database Buffers 67108864 字节
Redo Buffers 6270976 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "ORADUP" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ( 'D:\APP\WWANG\ORADATA\ORADUP\REDO01.LOG' ) SIZE 50 M REUSE,
GROUP 2 ( 'D:\APP\WWANG\ORADATA\ORADUP\REDO02.LOG' ) SIZE 50 M REUSE,
GROUP 3 ( 'D:\APP\WWANG\ORADATA\ORADUP\REDO03.LOG' ) SIZE 50 M REUSE
DATAFILE
'D:\APP\WWANG\ORADATA\ORADUP\SYSTEM01.DBF'
CHARACTER SET AL32UTF8
内存脚本的内容:
{
set newname for tempfile 1 to
"D:\APP\WWANG\ORADATA\ORADUP\TEMP01.DBF";
switch clone tempfile all;
catalog clone datafilecopy "D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF",
"D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF",
"D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF",
"D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF",
"D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF";
switch clone datafile all;
}
正在执行内存脚本
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 D:\APP\WWANG\ORADATA\ORADUP\TEMP01.DBF
已将数据文件副本列入目录
数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF RECID=1 STAMP=787522371
已将数据文件副本列入目录
数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF RECID=2 STAMP=787522371
已将数据文件副本列入目录
数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF RECID=3 STAMP=787522371
已将数据文件副本列入目录
数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF RECID=4 STAMP=787522371
已将数据文件副本列入目录
数据文件副本文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF RECID=5 STAMP=787522371
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=1 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\SYSAUX01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=2 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\UNDOTBS01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=3 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\USERS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 RECID=4 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\IMUSE01.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=5 STAMP=787522371 文件名=D:\APP\WWANG\ORADATA\ORADUP\JACK.DBF
内存脚本的内容:
{
Alter clone database open resetlogs;
}
正在执行内存脚本
数据库已打开
完成 Duplicate Db 于 01-7月 -12
RMAN>
5. 检查数据库的状态
C:\Documents and Settings\wwang>set oracle_sid=oradup
C:\Documents and Settings\wwang>sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 7月 1 20:43:43 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select INSTANCE_NAME,STATUS from v$instance;
INSTANCE_NAME STATUS
-------------------------------- ------------------------
oradup OPEN
SQL>