--------------------------------------------
实验环境: windows + oracle 10.1.0 .2.0
原数据库: ning[ 归档模式 ] 复制数据库: test
Author:NinGoo 2005-3-27
-------------------------------------------
在同一台 server 上使用 rman 的 Duplicate Database 创建复制数据库。
** 1. ** ** 创建新的 ** ** instance
**
**
**
准备好相应的目录结构
E:\oracle\product\ 10.1.0 \admin\test\bdump
E:\oracle\product\ 10.1.0 \admin\test\cdump
E:\oracle\product\ 10.1.0 \admin\test\create
E:\oracle\product\ 10.1.0 \admin\test\pfile
E:\oracle\product\ 10.1.0 \admin\test\scripts
E:\oracle\product\ 10.1.0 \admin\test\udmp
创建参数文件 inittest.ini ( 可使用原库的 pfile 进行修改 ) ,主要参数如下:
db_name=test
background_dump_dest=E:\oracle\product\ 10.1.0 \admin\test\bdump
core_dump_dest=E:\oracle\product\ 10.1.0 \admin\test\cdump
user_dump_dest=E:\oracle\product\ 10.1.0 \admin\test\udump
control_files='E:\oracle\oradata\test\control01.ctl','E:\oracle\oradata\test \control02.ctl','E:\oracle\oradata\test \control03.ctl'
DB_FILE_NAME_CONVERT=('E:\oracle\oradata\ning','E:\oracle\oradata\test')
LOG_FILE_NAME_CONVERT=('E:\oracle\oradata\ning','E:\oracle\oradata\test')
置于 E:\oracle\product\ 10.1.0 \admin\test\pfile 或者 E:\oracle\product\10.1.0\db_1\database 即可。
使用 oradim 创建新的 instance
c:>oradim -new -sid test
例程已创建。
使用 orapwd 创建 password 文件
c:>orapwd file=E:\oracle\product\ 10.1.0 \db_1\database\PWDtest.ora password=test entries=10
配置好监听和 tnsnames ,然后使用 sqlplus 测试连接
c:>sqlplus /nolog
SQL*Plus: Release 10.1.0 .2.0 - Production on 星期日 3 月 27 21:01:13 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> conn sys@test as sysdba
请输入口令 :
已连接到空闲例程。
** 2. ** ** 使用 ** ** rman ** ** 备份原库 ** **
**
RMAN> connect target sys/ning @ning
连接到目标数据库 : NING (DBID=1141544503)
正在使用目标数据库控制文件替代恢复目录
RMAN> backup full database tag 'fullbk' format 'e:\oracle\oraback\full%u_%s_%p';
启动 backup 于 27-3 月 -05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\ORADATA\NING\SYSTEM01.DBF
输入数据文件 fno=00002 name=E:\ORACLE\ORADATA\NING\UNDOTBS01.DBF
输入数据文件 fno=00004 name=E:\ORACLE\ORADATA\NING\USERS01.DBF
输入数据文件 fno=00003 name=E:\ORACLE\ORADATA\NING\SYSAUX01.DBF
输入数据文件 fno=00005 name=E:\ORACLE\ORADATA\NING\TEST01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 27-3 月 -05
通道 ORA_DISK_1: 已完成段 1 于 27-3 月 -05
段 handle=E:\ORACLE\ORABACK\FULL03GGCQA4_3_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:45
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 27-3 月 -05
通道 ORA_DISK_1: 已完成段 1 于 27-3 月 -05
段 handle=E:\ORACLE\ORABACK\FULL04GGCQBH_4_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:09
完成 backup 于 27-3 月 -05
** 3. ** ** 使用 ** ** rman ** ** 复制数据库 ** **
**
c:>rman target sys/ning@ning AUXILIARY sys/test@test
恢复管理器 : 版本 10.1.0 .2.0 - Production
opyright (c) 1995, 2004, Oracle. All rights reserved.
连接到目标数据库 : NING (DBID=1141544503)
已连接到备用数据库 : test ( 未装载 )
RMAN> DUPLICATE TARGET DATABASE TO 'test';
启动 Duplicate Db 于 27-3 月 -05
使用通道 ORA_AUX_DISK_1
内存脚本的内容 :
{
set until scn 169960;
set newname for datafile 1 to
"E:\ORACLE\ORADATA\TEST\SYSTEM01.DBF";
set newname for datafile 2 to
"E:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF";
set newname for datafile 3 to
"E:\ORACLE\ORADATA\TEST\SYSAUX01.DBF";
set newname for datafile 4 to
"E:\ORACLE\ORADATA\TEST\USERS01.DBF";
set newname for datafile 5 to
"E:\ORACLE\ORADATA\TEST\TEST01.DBF";
restore
check readonly
clone database
;
}
正在执行内存脚本
正在执行命令 : SET until clause
正在执行命令 : SET NEWNAME
正在执行命令 : SET NEWNAME
正在执行命令 : SET NEWNAME
正在执行命令 : SET NEWNAME
正在执行命令 : SET NEWNAME
启动 restore 于 27-3 月 -05
使用通道 ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件 00001 恢复到 E:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
正将数据文件 00002 恢复到 E:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
正将数据文件 00003 恢复到 E:\ORACLE\ORADATA\TEST\SYSAUX01.DBF
正将数据文件 00004 恢复到 E:\ORACLE\ORADATA\TEST\USERS01.DBF
正将数据文件 00005 恢复到 E:\ORACLE\ORADATA\TEST\TEST01.DBF
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = E:\ORACLE\ORABACK\FULL03GGCQA4_3_1 标记 = FULLBK
通道 ORA_AUX_DISK_1: 恢复完成
完成 restore 于 27-3 月 -05
sql 语句 : CREATE CONTROLFILE REUSE SET DATABASE "test" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 454
LOGFILE
GROUP 1 'E:\oracle\oradata\test\redo01.log' SIZE 10 M ,
GROUP 2 'E:\oracle\oradata\test\redo02.log' SIZE 10 M ,
GROUP 3 'E:\oracle\oradata\test\redo03.log' SIZE 10 M
DATAFILE
'E:\ORACLE\ORADATA\TEST\SYSTEM01.DBF'
CHARACTER SET ZHS16GBK
内存脚本的内容 :
{
switch clone datafile all;
}
正在执行内存脚本
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=554071105 文件名 =E:\ORACLE\ORADATA\TEST\UNDOTBS01
.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=554071105 文件名 =E:\ORACLE\ORADATA\TEST\SYSAUX01.
DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=554071105 文件名 =E:\ORACLE\ORADATA\TEST\USERS01.D
BF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=554071105 文件名 =E:\ORACLE\ORADATA\TEST\TEST01.DB
F
内存脚本的内容 :
{
set until scn 169960;
recover
clone database
delete archivelog
;
}
<span lang="ZH-CN" style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: SimSun; mso-ascii-font-family: Verdana; mso