Welcome 微信登录

首页 / 数据库 / MySQL / Oracle基础教程之通过RMAN复制数据库

通过使用数据库备份,DBA可以在同一服务器或其它服务器上建立副本数据库。这个副本数据库可以和主数据库有相同的名称(拷贝)或与主数据库名称不同(克隆)。Oracle在数据库拷贝和数据库克隆之间惟一不同的是拷贝的数据库不能更改名称。使用RMAN的复制数据库特性,可以从RMAN备份创建一个新的数据库,并为这个副本数据库保留已有的数据库名称或者赋予新的名称。RMAN术语和命令:A. 辅助数据库(Auxiliary database):RMAN将目标数据库复制到该数据库实例。要创建该数据库的参数文件、路径和口令文件。必须在RMAN数据库复制之前以非加载(NOMOUNT)模式启动辅助数据库实例。B. 复制(Duplicate):从其它数据库的RMAN备份创建一个新的数据库。要在RMAN执行复制的位置配置数据库并启动Oracle的实例。从RMAN的角度来看,目标数据库被复制到副本数据库。C. 设置新名称(Set newname):在一个RMAN运行块内为数据文件设置新的名称,提供给该参数的文件名称覆盖任何该数据文件的辅助数据库名(用SET AUXNAME)或者辅助数据库参数(DB_FILE_NAME_CONVERT)。这个新名称的值只在运行块内有效。D. 设置辅助名称(Set auxname):为数据文件设置辅助名称,这个辅助名称将在RMAN会话之间存在。如果不希望以后的RMAN命令中使用这个设置的名称,则必须将该名称设置为NULL。E. 日志文件(log file):可以在Duplicate命令中作用这个关键词,以指定副本数据库创建的联机重做日志文件。如果没有特别指定这个关键词,则RMAN将在辅助参数文件中的LOG_FILE_NAME_CONVERT参数决定的路径中生成日志文件。如果没有这个RMAN关键词,而且也没有设置辅助参数,则RMAN将在目标数据库同样的位置创建日志(假设已指定了NOCHECKFILENAME选项)。F. 不检查文件名(Nocheckfilename):默认情况下,RMAN将检查在副本主机上被恢复到主目标数据文件路径下的数据文件,以确保不会被错误地覆盖。使用该选项可以覆盖这个默认的操作。这样就需要手工确保RMAN没有覆盖任何已存在的数据文件。应当谨慎使用这个命令,以防止覆盖数据文件。在Duplicate命令执行的过程中,RMAN执行了一系列工作。当连接到目标、辅助和或选的目录数据库后,RMAN将进行以下操作:1) 根据最近发生的或者是提供的恢复停止点来决定复制操作将使用哪个基本的备份。2) 根据辅助数据库参数或RMAN设置的命令和选项来决定将数据文件保存在辅助数据库实例的什么位置。3) 为辅助数据库读出备份片或映像拷贝并恢复数据文件。这个RMAN的功能与执行正常的数据库还原是一样的。4) 根据恢复停止点将任何增量备份应用于还原数据文件。这个增量方式的应用与用RMAN发布恢复数据库命令的任务是一样的。5) 根据恢复停止点从磁盘或备份将所有归档日志文件应用于还原数据文件。6) 为辅助数据库创建新的控制文件。7) 当重新设置联机重做日志文件时,打开副本数据库。新的联机重做日志文件将根据RMAN复制数据库命令中指定的或者根据转换的辅助参数文件进行创建。创建副本数据库的步骤:1) 准备副本数据库参数文件:拷贝目标数据库的参数文件到$ORACLE_BASE/admin/clone/pfile位置。修改参数文件,替换所有目标数据库名为副本数据库名,同时增加两个参数:db_file_name_convert = (“primary”,”clone”)、log_file_name_convert = (“primary”,”clone”),再在$ORACLE_HOME/dbs目录下增加参数文件的LINUX符号连接,或者%ORACLE_HOME%database目录下增加windows参数文件。2) 创建口令文件:LINUX>orapwd file=$ORACLE_HOME/dbs/orapwCLONE password=clone entries=4WINNT>orapwd file=%ORACLE_HOME%databasePWDCLONE.ORA password=clone3) 创建windows服务(linux不需要):WINNT>oradim –new –sid clone –intpwd clone4) 建立NET8连接5) 启动辅助实例:在RMAN创建副本数据库以前,辅助实例需要以非加载模式启动6) 加载或打开目标数据库7) 创建副本数据库C:Documents and SettingsAdministrator>rmanRecovery Manager: 版本 9.2.0.1.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation.All rights reserved.RMAN> connect target sys/oracle@mydb ;已联机到目标数据库: MYDB (DBID=2567199153)RMAN> connect catalog rman/rman@standby已联机至复原目录数据库RMAN> connect auxiliary sys/clone;联机至辅助数据库: clone (未挂载)RMAN> run{2> SET UNTIL logseq 3 THREAD 1;3> ALLOCATE auxiliary channel d1 TYPE DISK;4> duplicate target DATABASE TO "CLONE";5> }执行命令: SET until clause已配置信道: d1通道 d1: sid=14 devtype=DISK开始 Duplicate Db, 于 07-5月 -08打印储存的命令档: Memory Script{set until scn1077491;set newname for datafile1 to"C:ORACLEORADATACLONESYSTEM01.DBF";set newname for datafile2 to"C:ORACLEORADATACLONEUNDOTBS01.DBF";set newname for datafile3 to"C:ORACLEORADATACLONECWMLITE01.DBF";set newname for datafile4 to"C:ORACLEORADATACLONEDRSYS01.DBF";set newname for datafile5 to"C:ORACLEORADATACLONEEXAMPLE01.DBF";set newname for datafile6 to"C:ORACLEORADATACLONEINDX1.DBF";set newname for datafile7 to"C:ORACLEORADATACLONEODM01.DBF";set newname for datafile8 to"C:ORACLEORADATACLONETOOLS01.DBF";set newname for datafile9 to"C:ORACLEORADATACLONEUSERS01.DBF";set newname for datafile10 to"C:ORACLEORADATACLONEXDB01.DBF";set newname for datafile11 to"C:ORACLEORADATACLONEMYTS01.DBF";restorecheck readonlyclone database;}执行命令档: Memory Script执行命令: SET until clause执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME执行命令: SET NEWNAME开始 restore, 于 07-5月 -08通道 d1: 启动数据文件备份集的还原通道 d1: 正在设定要从备份集还原的数据文件正在将资料文件 00001 还原为 C:ORACLEORADATACLONESYSTEM01.DBF正在将资料文件 00002 还原为 C:ORACLEORADATACLONEUNDOTBS01.DBF正在将资料文件 00003 还原为 C:ORACLEORADATACLONECWMLITE01.DBF正在将资料文件 00004 还原为 C:ORACLEORADATACLONEDRSYS01.DBF正在将资料文件 00005 还原为 C:ORACLEORADATACLONEEXAMPLE01.DBF正在将资料文件 00006 还原为 C:ORACLEORADATACLONEINDX1.DBF正在将资料文件 00007 还原为 C:ORACLEORADATACLONEODM01.DBF正在将资料文件 00008 还原为 C:ORACLEORADATACLONETOOLS01.DBF正在将资料文件 00009 还原为 C:ORACLEORADATACLONEUSERS01.DBF正在将资料文件 00010 还原为 C:ORACLEORADATACLONEXDB01.DBF正在将资料文件 00011 还原为 C:ORACLEORADATACLONEMYTS01.DBF通道 d1: 还原备份片 1处理片=D:ORACLEBAKDBMYDB_10_1_653973100 标志=WHOLE_INC0 参数=NULL通道 d1: 还原完成完成 restore, 于 07-5月 -08sql 叙述句: CREATE CONTROLFILE REUSE SET DATABASE "CLONE" RESETLOGS ARCHIVELOGMAXLOGFILES 50MAXLOGMEMBERS 5MAXDATAFILES 100MAXINSTANCES 1MAXLOGHISTORY 226LOGFILEGROUP1 ( "C:ORACLEORADATACLONEREDO01.LOG" ) SIZE104857600REUSE,GROUP2 ( "C:ORACLEORADATACLONEREDO02.LOG" ) SIZE104857600REUSE,GROUP3 ( "C:ORACLEORADATACLONEREDO03.LOG" ) SIZE104857600REUSEDATAFILE"C:ORACLEORADATACLONESYSTEM01.DBF"CHARACTER SET AL32UTF8打印储存的命令档: Memory Script{switch clone datafile all;}执行命令档: Memory Script数据文件 2 已切换至数据文件复制本输入数据文件复本 recid=1 戳记=654059846 文件名称=C:ORACLEORADATACLONEUNDOTBS01.DBF数据文件 3 已切换至数据文件复制本输入数据文件复本 recid=2 戳记=654059846 文件名称=C:ORACLEORADATACLONECWMLITE01.DBF数据文件 4 已切换至数据文件复制本输入数据文件复本 recid=3 戳记=654059847 文件名称=C:ORACLEORADATACLONEDRSYS01.DBF数据文件 5 已切换至数据文件复制本输入数据文件复本 recid=4 戳记=654059847 文件名称=C:ORACLEORADATACLONEEXAMPLE01.DBF数据文件 6 已切换至数据文件复制本输入数据文件复本 recid=5 戳记=654059847 文件名称=C:ORACLEORADATACLONEINDX1.DBF数据文件 7 已切换至数据文件复制本输入数据文件复本 recid=6 戳记=654059847 文件名称=C:ORACLEORADATACLONEODM01.DBF数据文件 8 已切换至数据文件复制本输入数据文件复本 recid=7 戳记=654059847 文件名称=C:ORACLEORADATACLONETOOLS01.DBF数据文件 9 已切换至数据文件复制本输入数据文件复本 recid=8 戳记=654059847 文件名称=C:ORACLEORADATACLONEUSERS01.DBF数据文件 10 已切换至数据文件复制本输入数据文件复本 recid=9 戳记=654059847 文件名称=C:ORACLEORADATACLONEXDB01.DBF数据文件 11 已切换至数据文件复制本输入数据文件复本 recid=10 戳记=654059847 文件名称=C:ORACLEORADATACLONEMYTS01.DBF打印储存的命令档: Memory Script{set until scn1077491;recoverclone databasedelete archivelog;}执行命令档: Memory Script执行命令: SET until clause开始 recover, 于 07-5月 -08启动媒体恢复通道 d1: 启动存盘日志还原到预设目的通道 d1: 还原存盘日志存盘日志系线=1 顺序=1通道 d1: 还原存盘日志存盘日志系线=1 顺序=2通道 d1: 还原备份片 1处理片=D:ORACLEBAKARCHMYDB_11_1_654043289 标志=TAG20080506T224129 参数=NULL通道 d1: 还原完成存盘日志文件名称=C:ORACLEORADATACLONEARCHIVE1_1.DBF 系线=1 顺序=1通道 clone_default: 删除存???日志存盘日志文件名称=C:ORACLEORADATACLONEARCHIVE1_1.DBF recid=2 戳记=654059855存盘日志文件名称=C:ORACLEORADATACLONEARCHIVE1_2.DBF 系线=1 顺序=2通道 clone_default: 删除存盘日志存盘日志文件名称=C:ORACLEORADATACLONEARCHIVE1_2.DBF recid=1 戳记=654059854媒体恢复完成完成 recover, 于 07-5月 -08打印储存的命令档: Memory Script{shutdown clone;startup clone nomount ;}执行命令档: Memory Script已卸下数据库已关闭 Oracle 执行处理联机至辅助数据库 (未启动)已启动 Oracle 执行处理系统整体区域总共是 122755896 个字节Fixed Size 453432 个字节Variable Size 96468992 个字节Database Buffers 25165824 个字节Redo Buffers 667648 个字节sql 叙述句: CREATE CONTROLFILE REUSE SET DATABASE CLONE RESETLOGS ARCHIVELOGMAXLOGFILES 50MAXLOGMEMBERS 5MAXDATAFILES 100MAXINSTANCES 1MAXLOGHISTORY 226LOGFILEGROUP1 ( "C:ORACLEORADATACLONEREDO01.LOG" ) SIZE104857600REUSE,GROUP2 ( "C:ORACLEORADATACLONEREDO02.LOG" ) SIZE104857600REUSE,GROUP3 ( "C:ORACLEORADATACLONEREDO03.LOG" ) SIZE104857600REUSEDATAFILE"C:ORACLEORADATACLONESYSTEM01.DBF"CHARACTER SET AL32UTF8打印储存的命令档: Memory Script{catalog clone datafilecopy"C:ORACLEORADATACLONEUNDOTBS01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONECWMLITE01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONEDRSYS01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONEEXAMPLE01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONEINDX1.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONEODM01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONETOOLS01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONEUSERS01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONEXDB01.DBF";catalog clone datafilecopy"C:ORACLEORADATACLONEMYTS01.DBF";switch clone datafile all;}执行命令档: Memory Script数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEUNDOTBS01.DBF recid=1 戳记=654059903数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONECWMLITE01.DBF recid=2 戳记=654059903数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEDRSYS01.DBF recid=3 戳记=654059903数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEEXAMPLE01.DBF recid=4 戳记=654059904数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEINDX1.DBF recid=5 戳记=654059904数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEODM01.DBF recid=6 戳记=654059904数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONETOOLS01.DBF recid=7 戳记=654059904数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEUSERS01.DBF recid=8 戳记=654059905数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEXDB01.DBF recid=9 戳记=654059905数据文件备份已加入目录数据文件备份文件名称=C:ORACLEORADATACLONEMYTS01.DBF recid=10 戳记=654059905数据文件 2 已切换至数据文件复制本输入数据文件复本 recid=1 戳记=654059903 文件名称=C:ORACLEORADATACLONEUNDOTBS01.DBF数据文件 3 已切换至数据文件复制本输入数据文件复本 recid=2 戳记=654059903 文件名称=C:ORACLEORADATACLONECWMLITE01.DBF数据文件 4 已切换至数据文件复制本输入数据文件复本 recid=3 戳记=654059903 文件名称=C:ORACLEORADATACLONEDRSYS01.DBF数据文件 5 已切换至数据文件复制本输入数据文件复本 recid=4 戳记=654059904 文件名称=C:ORACLEORADATACLONEEXAMPLE01.DBF数据文件 6 已切换至数据文件复制本输入数据文件复本 recid=5 戳记=654059904 文件名称=C:ORACLEORADATACLONEINDX1.DBF数据文件 7 已切换至数据文件复制本输入数据文件复本 recid=6 戳记=654059904 文件名称=C:ORACLEORADATACLONEODM01.DBF数据文件 8 已切换至数据文件复制本输入数据文件复本 recid=7 戳记=654059904 文件名称=C:ORACLEORADATACLONETOOLS01.DBF数据文件 9 已切换至数据文件复制本输入数据文件复本 recid=8 戳记=654059905 文件名称=C:ORACLEORADATACLONEUSERS01.DBF数据文件 10 已切换至数据文件复制本输入数据文件复本 recid=9 戳记=654059905 文件名称=C:ORACLEORADATACLONEXDB01.DBF数据文件 11 已切换至数据文件复制本输入数据文件复本 recid=10 戳记=654059905 文件名称=C:ORACLEORADATACLONEMYTS01.DBF打印储存的命令档: Memory Script{Alter clone database open resetlogs;}执行命令档: Memory Script已开启数据库完成 Duplicate Db, 于 07-5月 -08RMAN>使用RMAN的关键词和命令来控制数据文件和日志文件的名称和位置可以如下控制数据文件的位置并设置新名称或设置辅助名称SET auxname FOR DATAFILE 2 TO "c:oracleoradatacloneauxname02.dbf";#为数据文件设置辅助名称,这个辅助名称将在RMAN会话之间存在,如果不希望以后的RMAN使用这个设置的名称,则必须将该名称设置为NULL。SET auxname FOR DATAFILE 2 TO "c:oracleoradatacloneauxname02.dbf";#为数据文件设置辅助名称,这个辅助名称将在RMAN会话之间存在,如果不希望以后的RMAN使用这个设置的名称,则必须将该名称设置为NULL。SET auxname FOR DATAFILE 4 TO "c:oracleoradatacloneauxname03.dbf";SET auxname FOR DATAFILE 6 TO "c:oracleoradatacloneauxname04.dbf";run{ALLOCATE auxiliary channel d1 TYPE DISK;SET UNTIL logseq 3 THREAD 1;SET newname FOR DATAFILE 1 TO "c:oracleoradataclone ewname01.dbf"; #在RMAN运行块内为数据文件设置新的名称,这个新名称的值只在运行块内有效SET newname FOR DATAFILE 3 TO "c:oracleoradataclone ewname03.dbf";SET newname FOR DATAFILE 5 TO "c:oracleoradataclone ewname05.dbf";SET newname FOR DATAFILE 7 TO "c:oracleoradataclone ewname07.dbf";duplicate target DATABASE TO CLONE LOGFILEGROUP 1 ("c:oracleoradataclone edo1_1.log","c:oracleoradataclone edo1_2.log") SIZE 10M REUSE,GROUP 2 ("c:oracleoradataclone edo2_1.log","c:oracleoradataclone edo2_2.log") SIZE 10M REUSE,GROUP 3 ("c:oracleoradataclone edo3_1.log","c:oracleoradataclone edo3_2.log") SIZE 10M REUSE;}SET auxname FOR DATAFILE 2 TO NULL;SET auxname FOR DATAFILE 4 TO NULL;SET auxname FOR DATAFILE 6 TO NULL;在复制期间为clone数据库的每个数据文件指定一个新的文件名(或位置)。这样,当将目标数据库备份还原到复制数据库位置时,每个数据文件以被重新命名,日志文件可以指定为附加到DUPLICATE TARGER DATABASE命令,在以上的示例中,每个数据文件都被重命名,并且日志文件也被重新定义大小、重命名和镜像,对单数的数据文件重命名而对偶数的数据文件辅助命名。更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle技术之RMAN 异机复制数据库Oracle基础教程:expdp时不能导出sys用户下的对象相关资讯      RMAN  RMAN复制数据库 
  • RMAN故障一例(归档的备份,从不  (今 20:42)
  • RMAN的FORMATA格式说明  (03月10日)
  • Oracle 11g RMAN复制数据库的测试  (01月19日)
  • RMAN数据库迁移  (05月22日)
  • 使用RMAN复制恢复开发库环境  (02月17日)
  • Oracle 11g RMAN跨平台传输表空间  (01月19日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数