7、将日志备份集拷贝到克隆机器的同一目录后,回到RMAN处,连接辅助(克隆)数据库,
执行脚本,剩下的RMAN自己会做
RMAN> connect auxiliary sys/sys1@clone
连接到备用数据库: CLONE_DB (未安装)
RMAN> run
2> {allocate auxiliary channel d1 type disk;
3> set newname for datafile 1 to 'F:CLONEdataSYSTEM01.DBF';
4> set newname for datafile 2 to 'F:CLONEdataUNDOTBS01.DBF';
5> set newname for datafile 3 to 'F:CLONEdataCWMLITE01.DBF';
6> set newname for datafile 4 to 'F:CLONEdataDRSYS01.DBF';
7> set newname for datafile 5 to 'F:CLONEdataEXAMPLE01.DBF';
8> set newname for datafile 6 to 'F:CLONEdataINDX01.DBF';
9> set newname for datafile 7 to 'F:CLONEdataODM01.DBF';
10> set newname for datafile 8 to 'F:CLONEdataTOOLS01.DBF';
11> set newname for datafile 9 to 'F:CLONEdataUSERS01.DBF';
12> set newname for datafile 10 to 'F:CLONEdataXDB01.DBF';
13> DUPLICATE TARGET DATABASE TO CLONE_DB
14> LOGFILE
15> GROUP 1 ('F:clonedataREDO01.DBF') SIZE 10M,
16> GROUP 2 ('F:clonedataREDO02.DBF') SIZE 10M,
17> GROUP 3 ('F:clonedataREDO03.DBF') SIZE 10M;
18> }
![]()
分配的通道: d1
通道 d1: sid=8 devtype=DISK
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 Duplicate Db 于 2004-06-28 21:43:51
![]()
正在打印存储的脚本: Memory Script
{
set until scn 261688166;
set newname for datafile 1 to
"F:CLONEDATASYSTEM01.DBF";
set newname for datafile 2 to
"F:CLONEDATAUNDOTBS01.DBF";
set newname for datafile 3 to
"F:CLONEDATACWMLITE01.DBF";
set newname for datafile 4 to
"F:CLONEDATADRSYS01.DBF";
set newname for datafile 5 to
"F:CLONEDATAEXAMPLE01.DBF";
set newname for datafile 6 to
"F:CLONEDATAINDX01.DBF";
set newname for datafile 7 to
"F:CLONEDATAODM01.DBF";
set newname for datafile 8 to
"F:CLONEDATATOOLS01.DBF";
set newname for datafile 9 to
"F:CLONEDATAUSERS01.DBF";
set newname for datafile 10 to
"F:CLONEDATAXDB01.DBF";
restore
check readonly
clone database
;
}
正在执行脚本: Memory Script
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 2004-06-28 21:43:54
通道 d1: 正在开始恢复数据文件备份集
通道 d1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到F:CLONEDATASYSTEM01.DBF
正将数据文件00002恢复到F:CLONEDATAUNDOTBS01.DBF
正将数据文件00003恢复到F:CLONEDATACWMLITE01.DBF
正将数据文件00004恢复到F:CLONEDATADRSYS01.DBF
正将数据文件00005恢复到F:CLONEDATAEXAMPLE01.DBF
正将数据文件00006恢复到F:CLONEDATAINDX01.DBF
正将数据文件00007恢复到F:CLONEDATAODM01.DBF
正将数据文件00008恢复到F:CLONEDATATOOLS01.DBF
正将数据文件00009恢复到F:CLONEDATAUSERS01.DBF
正将数据文件00010恢复到F:CLONEDATAXDB01.DBF
通道 d1: 已恢复备份段 1
段 handle=E:RMANBAKDB_ENCORE_1_1_530053412 tag=TAG20040628T210331 params=NULL
通道 d1: 已恢复备份段 2
段 handle=E:RMANBAKDB_ENCORE_1_2_530053412 tag=TAG20040628T210331 params=NULL
通道 d1: 恢复完成
完成 restore 于 2004-06-28 21:46:35
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "CLONE_DB" RESETLOGS ARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 ( 'F:clonedataREDO01.DBF' ) SIZE 10485760 ,
GROUP 2 ( 'F:clonedataREDO02.DBF' ) SIZE 10485760 ,
GROUP 3 ( 'F:clonedataREDO03.DBF' ) SIZE 10485760
DATAFILE
'F:CLONEDATASYSTEM01.DBF'
CHARACTER SET ZHS16GBK
![]()
![]()
正在打印存储的脚本: Memory Script
{
switch clone datafile all;
}
正在执行脚本: Memory Script
![]()
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=530056505 文件名=F:CLONEDATAUNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=530056505 文件名=F:CLONEDATACWMLITE01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=530056505 文件名=F:CLONEDATADRSYS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=530056505 文件名=F:CLONEDATAEXAMPLE01.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=530056505 文件名=F:CLONEDATAINDX01.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 recid=6 stamp=530056505 文件名=F:CLONEDATAODM01.DBF
数据文件 8 已转换成数据文件副本
输入数据文件副本 recid=7 stamp=530056505 文件名=F:CLONEDATATOOLS01.DBF
数据文件 9 已转换成数据文件副本
输入数据文件副本 recid=8 stamp=530056505 文件名=F:CLONEDATAUSERS01.DBF
数据文件 10 已转换成数据文件副本
输入数据文件副本 recid=9 stamp=530056505 文件名=F:CLONEDATAXDB01.DBF
![]()
正在打印存储的脚本: Memory Script
{
set until scn 261688166;
recover
clone database
delete archivelog
;
}
正在执行脚本: Memory Script
![]()
正在执行命令: SET until clause
![]()
启动 recover 于 2004-06-28 21:46:37
![]()
正在开始介质的恢复
![]()
通道 d1: 正在启动到默认目标的存档日志恢复
通道 d1: 正在恢复存档日志
存档日志线程 =1 序列=108
通道 d1: 正在恢复存档日志
存档日志线程 =1 序列=109
通道 d1: 正在恢复存档日志
存档日志线程 =1 序列=110
通道 d1: 正在恢复存档日志
存档日志线程 =1 序列=111
通道 d1: 正在恢复存档日志
存档日志线程 =1 序列=112
通道 d1: 已恢复备份段 1
段 handle=E:RMANBAKLOG_ENCORE_2_1_530055742 tag=TAG20040628T214221 params=NULL
通道 d1: 恢复完成
存档日志文件名 =F:CLONELOGARC00108.001 线程 =1 序列 =108
通道 clone_default: 正在删除存档日志
存档日志文件名 =F:CLONELOGARC00108.001 记录 ID=3 时间戳 =530056510
存档日志文件名 =F:CLONELOGARC00109.001 线程 =1 序列 =109
通道 clone_default: 正在删除存档日志
存档日志文件名 =F:CLONELOGARC00109.001 记录 ID=4 时间戳 =530056510
存档日志文件名 =F:CLONELOGARC00110.001 线程 =1 序列 =110
通道 clone_default: 正在删除存档日志
存档日志文件名 =F:CLONELOGARC00110.001 记录 ID=5 时间戳 =530056510
存档日志文件名 =F:CLONELOGARC00111.001 线程 =1 序列 =111
通道 clone_default: 正在删除存档日志
存档日志文件名 =F:CLONELOGARC00111.001 记录 ID=2 时间戳 =530056510
存档日志文件名 =F:CLONELOGARC00112.001 线程 =1 序列 =112
通道 clone_default: 正在删除存档日志
存档日志文件名 =F:CLONELOGARC00112.001 记录 ID=1 时间戳 =530056510
完成介质的恢复
完成 recover 于 2004-06-28 21:46:47
![]()
正在打印存储的脚本: Memory Script
{
shutdown clone;
startup clone nomount ;
}
正在执行脚本: Memory Script
![]()
数据库已卸载
Oracle 例程已关闭
![]()
已连接到备用数据库 (未启动)
Oracle 例程已启动
![]()
系统全局区域总计 319889436 字节
![]()
Fixed Size 454684 字节
Variable Size 109051904 字节
Database Buffers 209715200 字节
Redo Buffers 667648 字节
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "CLONE_DB" RESETLOGS ARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 ( 'F:clonedataREDO01.DBF' ) SIZE 10485760 ,
GROUP 2 ( 'F:clonedataREDO02.DBF' ) SIZE 10485760 ,
GROUP 3 ( 'F:clonedataREDO03.DBF' ) SIZE 10485760
DATAFILE
'F:CLONEDATASYSTEM01.DBF'
CHARACTER SET ZHS16GBK
![]()
![]()
正在打印存储的脚本: Memory Script
{
catalog clone datafilecopy "F:CLONEDATAUNDOTBS01.DBF";
catalog clone datafilecopy "F:CLONEDATACWMLITE01.DBF";
catalog clone datafilecopy "F:CLONEDATADRSYS01.DBF";
catalog clone datafilecopy "F:CLONEDATAEXAMPLE01.DBF";
catalog clone datafilecopy "F:CLONEDATAINDX01.DBF";
catalog clone datafilecopy "F:CLONEDATAODM01.DBF";
catalog clone datafilecopy "F:CLONEDATATOOLS01.DBF";
catalog clone datafilecopy "F:CLONEDATAUSERS01.DBF";
catalog clone datafilecopy "F:CLONEDATAXDB01.DBF";
switch clone datafile all;
}
正在执行脚本: Memory Script
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATAUNDOTBS01.DBF recid=1 stamp=530056530
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATACWMLITE01.DBF recid=2 stamp=530056530
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATADRSYS01.DBF recid=3 stamp=530056531
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATAEXAMPLE01.DBF recid=4 stamp=530056531
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATAINDX01.DBF recid=5 stamp=530056531
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATAODM01.DBF recid=6 stamp=530056531
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATATOOLS01.DBF recid=7 stamp=530056532
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATAUSERS01.DBF recid=8 stamp=530056532
![]()
已将数据文件副本列入目录
数据文件副本 filename=F:CLONEDATAXDB01.DBF recid=9 stamp=530056532
![]()
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=530056530 文件名=F:CLONEDATAUNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=530056530 文件名=F:CLONEDATACWMLITE01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=530056531 文件名=F:CLONEDATADRSYS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=530056531 文件名=F:CLONEDATAEXAMPLE01.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=530056531 文件名=F:CLONEDATAINDX01.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 recid=6 stamp=530056531 文件名=F:CLONEDATAODM01.DBF
数据文件 8 已转换成数据文件副本
输入数据文件副本 recid=7 stamp=530056532 文件名=F:CLONEDATATOOLS01.DBF
数据文件 9 已转换成数据文件副本
输入数据文件副本 recid=8 stamp=530056532 文件名=F:CLONEDATAUSERS01.DBF
数据文件 10 已转换成数据文件副本
输入数据文件副本 recid=9 stamp=530056532 文件名=F:CLONEDATAXDB01.DBF
![]()
正在打印存储的脚本: Memory Script
{
Alter clone database open resetlogs;
}
正在执行脚本: Memory Script
![]()
数据库已打开
![]()
RMAN>
![]()
--执行此步骤需要注意:避免连接克隆数据库,否则,RMAN将无法正常关闭克隆数据库
(shutdown clone),剩下的步骤无法继续执行。
8、测试克隆数据库
D:oraclebin>sqlplus
![]()
SQL*Plus: Release 9.2.0.5.0 - Production on Mon Jun 28 22:01:46 2004
![]()
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
![]()
Enter user-name: sys/sys1@clone as sysdba
![]()
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
JServer Release 9.2.0.5.0 - Production
![]()
SQL> select status from v$instance;
![]()
STATUS
------------
OPEN
![]()
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination F:CLONElog
Oldest online log sequence 0
Next log sequence to archive 1
Current log sequence 1
SQL>
总结:在两台机器间用RMAN克隆数据库,个人认为,有两点需要注意:
1、在对目标数据库做全库备份时,要注意同时备份日志,缺少此步骤,RMAN在克隆时
将报 NO BACKUP COPY 之类的错误
2、要将目标数据库备份的备份集拷贝到克隆机器的同一个目录(同备份目标数据库时
备份集存放的目录)下,否则,RMAN将报:找不到XXXX备份集
1、在对目标数据库做全库备份时,要注意同时备份日志,缺少此步骤,RMAN在克隆时
将报 NO BACKUP COPY 之类的错误
2、要将目标数据库备份的备份集拷贝到克隆机器的同一个目录(同备份目标数据库时
备份集存放的目录)下,否则,RMAN将报:找不到XXXX备份集
