My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
使用rman复制数据库
作者:未知 时间:2005-03-28 12:12 出处:Blog 责编:MyFAQ
              摘要:暂无

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

实验环境:windows + oracle 10.1.0.2.0

原数据库:ning[归档模式]  复制数据库:test

Author:NinGoo    2005-3-27

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

 

在同一台server上使用rmanDuplicate 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

   ;

}

正在执行内存脚本

 

正在执行命令: SET until clause

 

启动 recover 27-3 -05

使用通道 ORA_AUX_DISK_1

 

正在开始介质的恢复

 

存档日志线程 1 序列 16 已作为文件 E:\ORACLE\ARCH\ARC00016_0553949015.001 存在于

磁盘上

存档日志文件名 =E:\ORACLE\ARCH\ARC00016_0553949015.001 线程 =1 序列 =16

完成介质的恢复

完成 recover 27-3 -05

 

内存脚本的内容:

{

   shutdown clone;

   startup clone nomount ;

}

正在执行内存脚本

 

数据库已卸载

Oracle 例程已关闭

 

已连接到备用数据库 (未启动)

Oracle 例程已启动

 

系统全局区域总计     142606336 字节

 

Fixed Size                      787848 字节

Variable Size                116390520 字节

Database Buffers              25165824 字节

Redo Buffers                    262144 字节

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

 

 

内存脚本的内容:

{

   catalog clone datafilecopy  "E:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF";

   catalog clone datafilecopy  "E:\ORACLE\ORADATA\TEST\SYSAUX01.DBF";

   catalog clone datafilecopy  "E:\ORACLE\ORADATA\TEST\USERS01.DBF";

   catalog clone datafilecopy  "E:\ORACLE\ORADATA\TEST\TEST01.DBF";

   switch clone datafile all;

}

正在执行内存脚本

 

已将数据文件副本列入目录

数据文件副本 filename=E:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF recid=1 stamp=5540716

73

 

已将数据文件副本列入目录

数据文件副本 filename=E:\ORACLE\ORADATA\TEST\SYSAUX01.DBF recid=2 stamp=55407167

3

 

已将数据文件副本列入目录

数据文件副本 filename=E:\ORACLE\ORADATA\TEST\USERS01.DBF recid=3 stamp=554071673

 

 

已将数据文件副本列入目录

数据文件副本 filename=E:\ORACLE\ORADATA\TEST\TEST01.DBF recid=4 stamp=554071673

 

数据文件 2 已转换成数据文件副本

输入数据文件副本 recid=1 stamp=554071673 文件名=E:\ORACLE\ORADATA\TEST\UNDOTBS01

.DBF

数据文件 3 已转换成数据文件副本

输入数据文件副本 recid=2 stamp=554071673 文件名=E:\ORACLE\ORADATA\TEST\SYSAUX01.

DBF

数据文件 4 已转换成数据文件副本

输入数据文件副本 recid=3 stamp=554071673 文件名=E:\ORACLE\ORADATA\TEST\USERS01.D

BF

数据文件 5 已转换成数据文件副本

输入数据文件副本 recid=4 stamp=554071673 文件名=E:\ORACLE\ORADATA\TEST\TEST01.DB

F

 

内存脚本的内容:

{

   Alter clone database open resetlogs;

}

正在执行内存脚本

 

数据库已打开

完成 Duplicate Db 27-3 -05

 

 

4.检查复制库的状态

 

C:\>sqlplus /nolog

 

SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 3 27 21:05:52 2005

 

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

 

SQL> conn sys@test as sysdba

请输入口令:

已连接。

 

SQL> select instance_name,status from v$instance;

 

INSTANCE_NAME    STATUS

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

test             OPEN

 

 

然后去掉inittest.oraDB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERT参数,再使用该文件生成spfile

 

SQL> create spfile from pfile='E:\oracle\product\10.1.0\db_1\database\inittest.ora';

 

文件已创建。

 

 

===============================================================

参考文章:

Oracle® Database Backup and Recovery Advanced User's Guide 10g Release 1 (10.1) Part Number B10734-01

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有