首页 > 数据库 > Oracle > rman管理的复制数据库
1、做一个全库备份(包括控制文件和归档日志)RMAN> backup database include current controlfile 2> plus archivelog format='E:rmanbak%d_%s.bak'; 启动 backup 于 26-10月-10 当前日志已存档 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: sid=142 devtype=DISK 通道 ORA_DISK_1: 正在启动存档日志备份集 通道 ORA_DISK_1: 正在指定备份集中的存档日志 输入存档日志线程 =1 序列 =5 记录 ID=1 时间戳=733397920 通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10 通道 ORA_DISK_1: 已完成段 1 于 26-10月-10 段句柄=E:RMANBAKSQTDB_3.BAK 标记=TAG20101026T093840 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02 完成 backup 于 26-10月-10 启动 backup 于 26-10月-10 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集中的数据文件 输入数据文件 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBSYSTEM01.DBF 输入数据文件 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBSYSAUX01.DBF 输入数据文件 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBGSYY_MAIN.DBF 输入数据文件 fno=00008 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBLSSY.DBF 输入数据文件 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBUNDOTBS01.DBF 输入数据文件 fno=00006 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBGSYY_IDX.DBF 输入数据文件 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATASQTDBUSERS01.DBF 通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10 通道 ORA_DISK_1: 已完成段 1 于 26-10月-10 段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26O 1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP 标记=TAG20101026T093843 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:15 通道 ORA_DISK_1: 启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集中的数据文件 备份集中包括当前控制文件 在备份集中包含当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10 通道 ORA_DISK_1: 已完成段 1 于 26-10月-10 段句柄=E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26O 1_MF_NCSNF_TAG20101026T093843_6DDDCKBQ_.BKP 标记=TAG20101026T093843 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03 完成 backup 于 26-10月-10 启动 backup 于 26-10月-10 当前日志已存档 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在启动存档日志备份集 通道 ORA_DISK_1: 正在指定备份集中的存档日志 输入存档日志线程 =1 序列 =6 记录 ID=2 时间戳=733398003 通道 ORA_DISK_1: 正在启动段 1 于 26-10月-10 通道 ORA_DISK_1: 已完成段 1 于 26-10月-10 段句柄=E:RMANBAKSQTDB_6.BAK 标记=TAG20101026T094003 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02 完成 backup 于 26-10月-10 RMAN> |
C:Documents and SettingsAdministrator>mkdir d:dupdb C:Documents and SettingsAdministrator>mkdir d:dupdbbdump C:Documents and SettingsAdministrator>mkdir d:dupdbudump C:Documents and SettingsAdministrator>mkdir d:dupdbarchive |
C:Documents and SettingsAdministrator>oradim -new -sid dupdb 实例已创建。 |
C:Documents and SettingsAdministrator>orapwd file=E:oracleproduct10.2.0db_ 1databasePWDdupdb.ora password=jdls |
(1)从目标数据库的spfile创建pfile
SQL> create pfile from spfile;
(2)对产生的目标数据库pfile进行编辑
修改数据库名称、目录结构、文件名等参数
C:Documents and SettingsAdministrator>set oracle_sid=dupdb C:Documents and SettingsAdministrator>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 10月 26 10:39:05 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. 已连接到空闲例程。 SQL> startup nomount pfile='D:dupdbinitdupdb.ora' ORACLE 例程已经启动。 Total System Global Area 205520896 bytes Fixed Size 1248092 bytes Variable Size 67110052 bytes Database Buffers 130023424 bytes Redo Buffers 7139328 bytes SQL> creat spfile from pfile='D:dupdbinitdupdb.ora'; SP2-0734: 未知的命令开头 "creat spfi..." - 忽略了剩余的行。 SQL> create spfile from pfile='D:dupdbinitdupdb.ora'; 文件已创建。 |
2.6、利用RMAN建立复制数据库
C:Documents and SettingsAdministrator>set oracle_sid=dupdb C:Documents and SettingsAdministrator>rman target sys/jdls@sqtdb auxiliary sys/jdls 恢复管理器: Release 10.2.0.1.0 - Production on 星期二 10月 26 10:50:54 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到目标数据库: SQTDB (DBID=3088639058) 已连接到辅助数据库: DUPDB (未装载) RMAN> run{ 2> set newname for datafile 1 to 'D:dupdbSYSTEM01.DBF'; 3> set newname for datafile 2 to 'D:dupdbUNDOTBS01.DBF'; 4> set newname for datafile 3 to 'D:dupdbSYSAUX01.DBF'; 5> set newname for datafile 4 to 'D:dupdbUSERS01.DBF'; 6> set newname for datafile 5 to 'D:dupdbGSYY_MAIN.DBF'; 7> set newname for datafile 6 to 'D:dupdbGSYY_IDX.DBF'; 8> set newname for datafile 8 to 'D:dupdbLSSY.DBF'; 9> set newname for tempfile 1 to 'D:dupdbTEMP01.DBF'; 10> set newname for tempfile 2 to 'D:dupdbGSYY_TMP.DBF'; 11> duplicate target database to dupdb logfile 12> 'd:dupdbredo01.log' size 10m, 13> 'd:dupdbredo02.log' size 10m, 14> 'd:dupdbredo03.log' size 10m; 15> } 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 启动 Duplicate Db 于 26-10月-10 使用通道 ORA_AUX_DISK_1 内存脚本的内容: { set until scn 613908; set newname for datafile 1 to "D:DUPDBSYSTEM01.DBF"; set newname for datafile 2 to "D:DUPDBUNDOTBS01.DBF"; set newname for datafile 3 to "D:DUPDBSYSAUX01.DBF"; set newname for datafile 4 to "D:DUPDBUSERS01.DBF"; set newname for datafile 5 to "D:DUPDBGSYY_MAIN.DBF"; set newname for datafile 6 to "D:DUPDBGSYY_IDX.DBF"; set newname for datafile 8 to "D:DUPDBLSSY.DBF"; restore check readonly clone database ; } 正在执行内存脚本 正在执行命令: SET until clause 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 启动 restore 于 26-10月-10 使用通道 ORA_AUX_DISK_1 通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集 通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件 正将数据文件00001恢复到D:DUPDBSYSTEM01.DBF 正将数据文件00002恢复到D:DUPDBUNDOTBS01.DBF 正将数据文件00003恢复到D:DUPDBSYSAUX01.DBF 正将数据文件00004恢复到D:DUPDBUSERS01.DBF 正将数据文件00005恢复到D:DUPDBGSYY_MAIN.DBF 正将数据文件00006恢复到D:DUPDBGSYY_IDX.DBF 正将数据文件00008恢复到D:DUPDBLSSY.DBF 通道 ORA_AUX_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREA SQTDBBACKUPSET2010_10_26O1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP 通道 ORA_AUX_DISK_1: 已恢复备份段 1 段句柄 = E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBBACKUPSET2010_10_26 O1_MF_NNNDF_TAG20101026T093843_6DDD942G_.BKP 标记 = TAG20101026T093843 通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:01:05 完成 restore 于 26-10月-10 sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "DUPDB" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'd:dupdbredo01.log' SIZE 10 M , GROUP 2 'd:dupdbredo02.log' SIZE 10 M , GROUP 3 'd:dupdbredo03.log' SIZE 10 M DATAFILE 'D:DUPDBSYSTEM01.DBF' CHARACTER SET ZHS16GBK 内存脚本的内容: { switch clone datafile all; } 正在执行内存脚本 释放的通道: ORA_AUX_DISK_1 数据文件 2 已转换成数据文件副本 输入数据文件副本 recid=1 stamp=733403350 文件名=D:DUPDBUNDOTBS01.DBF 数据文件 3 已转换成数据文件副本 输入数据文件副本 recid=2 stamp=733403350 文件名=D:DUPDBSYSAUX01.DBF 数据文件 4 已转换成数据文件副本 输入数据文件副本 recid=3 stamp=733403350 文件名=D:DUPDBUSERS01.DBF 数据文件 5 已转换成数据文件副本 输入数据文件副本 recid=4 stamp=733403350 文件名=D:DUPDBGSYY_MAIN.DBF 数据文件 6 已转换成数据文件副本 输入数据文件副本 recid=5 stamp=733403350 文件名=D:DUPDBGSYY_IDX.DBF 数据文件 8 已转换成数据文件副本 输入数据文件副本 recid=6 stamp=733403350 文件名=D:DUPDBLSSY.DBF 内存脚本的内容: { set until scn 613908; recover clone database delete archivelog ; } 正在执行内存脚本 正在执行命令: SET until clause 启动 recover 于 26-10月-10 分配的通道: ORA_AUX_DISK_1 通道 ORA_AUX_DISK_1: sid=156 devtype=DISK 正在开始介质的恢复 存档日志线程 1 序列 6 已作为文件 E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQ TDBARCHIVELOG2010_10_26O1_MF_1_6_6DDDCM3X_.ARC 存在于磁盘上 存档日志文件名 =E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREASQTDBARCHIVELOG20 10_10_26O1_MF_1_6_6DDDCM3X_.ARC 线程 =1 序列 =6 介质恢复完成, 用时: 00:00:02 完成 recover 于 26-10月-10 内存脚本的内容: { shutdown clone; startup clone nomount ; } 正在执行内存脚本 数据库已卸载 Oracle 实例已关闭 已连接到辅助数据库 (未启动) Oracle 实例已启动 系统全局区域总计 205520896 字节 Fixed Size 1248092 字节 Variable Size 67110052 字节 Database Buffers 130023424 字节 Redo Buffers 7139328 字节 sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "DUPDB" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'd:dupdbredo01.log' SIZE 10 M , GROUP 2 'd:dupdbredo02.log' SIZE 10 M , GROUP 3 'd:dupdbredo03.log' SIZE 10 M DATAFILE 'D:DUPDBSYSTEM01.DBF' CHARACTER SET ZHS16GBK 内存脚本的内容: { set newname for tempfile 1 to "D:dupdbTEMP01.DBF"; set newname for tempfile 2 to "D:dupdbGSYY_TMP.DBF"; switch clone tempfile all; catalog clone datafilecopy "D:DUPDBUNDOTBS01.DBF"; catalog clone datafilecopy "D:DUPDBSYSAUX01.DBF"; catalog clone datafilecopy "D:DUPDBUSERS01.DBF"; catalog clone datafilecopy "D:DUPDBGSYY_MAIN.DBF"; catalog clone datafilecopy "D:DUPDBGSYY_IDX.DBF"; catalog clone datafilecopy "D:DUPDBLSSY.DBF"; switch clone datafile all; } 正在执行内存脚本 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 临时文件 1 在控制文件中已重命名为 D:dupdbTEMP01.DBF 临时文件 2 在控制文件中已重命名为 D:dupdbGSYY_TMP.DBF 已将数据文件副本列入目录 数据文件副本 filename=D:DUPDBUNDOTBS01.DBF recid=1 stamp=733403368 已将数据文件副本列入目录 数据文件副本 filename=D:DUPDBSYSAUX01.DBF recid=2 stamp=733403368 已将数据文件副本列入目录 数据文件副本 filename=D:DUPDBUSERS01.DBF recid=3 stamp=733403368 已将数据文件副本列入目录 数据文件副本 filename=D:DUPDBGSYY_MAIN.DBF recid=4 stamp=733403369 已将数据文件副本列入目录 数据文件副本 filename=D:DUPDBGSYY_IDX.DBF recid=5 stamp=733403369 已将数据文件副本列入目录 数据文件副本 filename=D:DUPDBLSSY.DBF recid=6 stamp=733403369 数据文件 2 已转换成数据文件副本 输入数据文件副本 recid=1 stamp=733403368 文件名=D:DUPDBUNDOTBS01.DBF 数据文件 3 已转换成数据文件副本 输入数据文件副本 recid=2 stamp=733403368 文件名=D:DUPDBSYSAUX01.DBF 数据文件 4 已转换成数据文件副本 输入数据文件副本 recid=3 stamp=733403368 文件名=D:DUPDBUSERS01.DBF 数据文件 5 已转换成数据文件副本 输入数据文件副本 recid=4 stamp=733403369 文件名=D:DUPDBGSYY_MAIN.DBF 数据文件 6 已转换成数据文件副本 输入数据文件副本 recid=5 stamp=733403369 文件名=D:DUPDBGSYY_IDX.DBF 数据文件 8 已转换成数据文件副本 输入数据文件副本 recid=6 stamp=733403369 文件名=D:DUPDBLSSY.DBF 内存脚本的内容: { Alter clone database open resetlogs; } 正在执行内存脚本 数据库已打开 完成 Duplicate Db 于 26-10月-10 RMAN> |
注:大部分操作步骤同上,需要将目标数据库的全库备份文件以及所有的归档日志文件拷贝到复制数据库上的相同路径下即可。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14844492/viewspace-1040480/ ,如需转载,请注明出处,否则将追究法律责任。