使用rman复制数据库

--------------------------------------------

实验环境: 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

Published At
Categories with 数据库类
comments powered by Disqus