使用rman复制数据库

使用rman复制数据库 --------------------------------------------
  实验环境:windows + oracle 10.1.0.2.0
  原数据库:  复制数据库:test
  
  在同一台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
   ;
  }
  正在执行内存脚本
  正在执行命令: 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.ora的DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT参数,再使用该文件生成spfile
  SQL> create spfile from pfile='E:\oracle\product\10.1.0\db_1\database\inittest.ora';
  文件已创建。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7862652/viewspace-709963/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7862652/viewspace-709963/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值