windows平台下 用duplicate 复制数据库

实验目的:同一台服务器上,复制数据库ORCL到副本数据库GROW,复制完后,服务器就同时有两个数据库。

实验环境:oracle安装的主目录:D:\oracle\product\10.2.0\db_1
         只有一个数据库ORCL

一、首先要创建备份集,这样才能用duplicate复制出新的数据库

检查是否处于归档模式
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     1
下一个存档日志序列   3
当前日志序列           3

C:\Documents and Settings\Administrator>rman target /

RMAN> configure controlfile autobackup on;

RMAN> backup database plus archivelog delete input;
RMAN> list backupset;


D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2013_11_13\O1_MF_ANNNN_TAG20131113T171117_986JKQ2G_.BKP
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2013_11_13\O1_M
F_NNNDF_TAG20131113T171120_986JKRN0_.BKP
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2013_11_13\O1_M
F_ANNNN_TAG20131113T171245_986JNGSW_.BKP
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2013_11_13\O1_
MF_S_831402768_986JNJY8_.BKP

多出了4个备份集。

 


二、创建以下目录
D:\oracle\product\10.2.0\admin>mkdir grow
D:\oracle\product\10.2.0\admin>cd grow
D:\oracle\product\10.2.0\admin\grow>mkdir adump bdump cdump dpdump pfile udump
D:\oracle\product\10.2.0\oradata>mkdir grow
D:\oracle\product\10.2.0\flash_recovery_area>mkdir GROW


创建init.ora,内容如下:

db_name='grow'
control_files='D:\oracle\product\10.2.0\oradata\grow\control01.ctl','D:\oracle\product\10.2.0\oradata\grow\control02.ctl','D:\oracle\product\10.2.0\oradata\grow\control03.ctl'
Shared_Pool_size=200000000
db_block_size=8192
DB_FILE_NAME_CONVERT=('D:\oracle\product\10.2.0\oradata\orcl','D:\oracle\product\10.2.0\oradata\grow')
LOG_FILE_NAME_CONVERT=('D:\oracle\product\10.2.0\oradata\orcl','D:\oracle\product\10.2.0\oradata\grow')
audit_file_dest='D:\oracle\product\10.2.0\admin\grow\adump'
background_dump_dest='D:\oracle\product\10.2.0\admin\grow\bdump'
compatible='10.2.0.1.0'
core_dump_dest='D:\oracle\product\10.2.0\admin\grow\cdump'
user_dump_dest='D:\oracle\product\10.2.0\admin\grow\udump'

把文件init.ora保存到F:\oracle\product\10.2.0\admin\grow\pfile目录下:


三、创建辅助实例的密码文件


C:\Documents and Settings\Administrator>orapwd file=d:\oracle\product\10.2.0\db_1\database\PWDgrow.ora password=oracle entries=30

C:\Documents and Settings\Administrator>oradim -new -sid  grow
实例已创建。
C:\Documents and Settings\Administrator>set oracle_sid=grow
C:\Documents and Settings\Administrator>sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四10 月18 17:26:03 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。


SQL> create spfile from pfile='d:\oracle\product\10.2.0\admin\grow\pfile\init.ora';

四、启动辅助实例(Start the Auxiliary Instance)
接着上一步,创建完spfile 之后:
SQL> startup nomount;
ORACLE 例程

五、修改文件listener.ora,最后内容如下

# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =  
    (SID_DESC =
      (SID_NAME = grow)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (global_name = grow)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = PC--20130531WUF)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )


在tnsnames.ora添加如下内容
grow =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC--20130531WUF)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = grow )
    )
  )

重新启动监听服务器


六、
C:\Documents and Settings\Administrator>set oracle_sid=orcl
###目标数据库使用操作系统认证,所以首先设置SID
C:\Documents and Settings\Administrator>rman target / auxiliary
sys/oracle@grow

恢复管理器: Release 10.2.0.1.0 - Production on 星期三 11月 13 17:25:56 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到目标数据库: ORCL (DBID=1359182307)
已连接到辅助数据库: GROW (未装载)

 

RMAN> duplicate target database to grow;

启动 Duplicate Db 于 13-11月-13
使用通道 ORA_AUX_DISK_1

内存脚本的内容:
{
   set until scn  577831;
   set newname for datafile  1 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSTEM01.DBF";
   set newname for datafile  2 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\UNDOTBS01.DBF";
   set newname for datafile  3 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSAUX01.DBF";
   set newname for datafile  4 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\USERS01.DBF";
   set newname for datafile  5 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\EXAMPLE01.DBF";
   restore
   check readonly
   clone database
   ;
}
正在执行内存脚本

正在执行命令: SET until clause

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 于 13-11月-13
使用通道 ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\USERS01.DBF
正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\EXAMPLE01.DBF
通道 ORA_AUX_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA
\ORCL\BACKUPSET\2013_11_13\O1_MF_NNNDF_TAG20131113T171120_986JKRN0_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2013_11_13\
O1_MF_NNNDF_TAG20131113T171120_986JKRN0_.BKP 标记 = TAG20131113T171120
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:01:05
完成 restore 于 13-11月-13
sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "GROW" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 ( 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\REDO01.LOG' ) SIZE 50 M  REU
SE,
  GROUP  2 ( 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\REDO02.LOG' ) SIZE 50 M  REU
SE,
  GROUP  3 ( 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\REDO03.LOG' ) SIZE 50 M  REU
SE
 DATAFILE
  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK


内存脚本的内容:
{
   switch clone datafile all;
}
正在执行内存脚本

释放的通道: ORA_AUX_DISK_1
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=831403905 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\UNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=831403905 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\SYSAUX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=831403905 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\USERS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=831403905 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\EXAMPLE01.DBF

内存脚本的内容:
{
   set until scn  577831;
   recover
   clone database
    delete archivelog
   ;
}
正在执行内存脚本

正在执行命令: SET until clause

启动 recover 于 13-11月-13
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK

正在开始介质的恢复

通道 ORA_AUX_DISK_1: 正在启动到默认目标的存档日志恢复
通道 ORA_AUX_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=4
通道 ORA_AUX_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA
\ORCL\BACKUPSET\2013_11_13\O1_MF_ANNNN_TAG20131113T171245_986JNGSW_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2013_11_13\
O1_MF_ANNNN_TAG20131113T171245_986JNGSW_.BKP 标记 = TAG20131113T171245
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:01
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\ARC00004_0831401573.001 线程
 =1 序列 =4
通道 clone_default: 正在删除存档日志
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\ARC00004_0831401573.001 记录
 ID=1 时间戳 =831403907
介质恢复完成, 用时: 00:00:02
完成 recover 于 13-11月-13

内存脚本的内容:
{
   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 "GROW" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP  1 ( 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\REDO01.LOG' ) SIZE 50 M  REU
SE,
  GROUP  2 ( 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\REDO02.LOG' ) SIZE 50 M  REU
SE,
  GROUP  3 ( 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\REDO03.LOG' ) SIZE 50 M  REU
SE
 DATAFILE
  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSTEM01.DBF'
 CHARACTER SET ZHS16GBK


内存脚本的内容:
{
   set newname for tempfile  1 to
 "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\TEMP01.DBF";
   switch clone tempfile all;
   catalog clone datafilecopy  "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\UNDOTBS01.
DBF";
   catalog clone datafilecopy  "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSAUX01.D
BF";
   catalog clone datafilecopy  "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\USERS01.DB
F";
   catalog clone datafilecopy  "D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\EXAMPLE01.
DBF";
   switch clone datafile all;
}
正在执行内存脚本

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\TEMP01.D
BF

已将数据文件副本列入目录
数据文件副本 filename=D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\UNDOTBS01.DBF recid=
1 stamp=831403917

已将数据文件副本列入目录
数据文件副本 filename=D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\SYSAUX01.DBF recid=2
 stamp=831403917

已将数据文件副本列入目录
数据文件副本 filename=D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\USERS01.DBF recid=3
stamp=831403917

已将数据文件副本列入目录
数据文件副本 filename=D:\ORACLE\PRODUCT\10.2.0\ORADATA\GROW\EXAMPLE01.DBF recid=
4 stamp=831403917

数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=1 stamp=831403917 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\UNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=2 stamp=831403917 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\SYSAUX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=3 stamp=831403917 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\USERS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=4 stamp=831403917 文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\GROW\EXAMPLE01.DBF

内存脚本的内容:
{
   Alter clone database open resetlogs;
}
正在执行内存脚本

数据库已打开
完成 Duplicate Db 于 13-11月-13

RMAN>exit;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值