首页 - 数据库 - SQL Server

使用rman复制数据库

发布时间: 2007-04-19 05:04    作者: 未知    来源: 未知    浏览:    评论


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



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



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 YSTEM01.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 YSAUX01.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 YSTEM01.DBF";



   set newname for datafile  2 to



 "E:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF";



   set newname for datafile  3 to



 "E:\ORACLE\ORADATA\TEST YSAUX01.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 YSTEM01.DBF



正将数据文件00002恢复到E:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF



正将数据文件00003恢复到E:\ORACLE\ORADATA\TEST YSAUX01.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 YSTEM01.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 YSAUX01.



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 YSTEM01.DBF'



 CHARACTER SET ZHS16GBK




 



 


内存脚本的内容:



{



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



   catalog clone datafilecopy  "E:\ORACLE\ORADATA\TEST YSAUX01.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 YSAUX01.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 YSAUX01.



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';




 


文件已创建。




 



 


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



参考文章:



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


TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多