Oracle基础教程之通过RMAN复制数据库(一)

2014-11-24 17:51:51 · 作者: · 浏览: 9

通过使用数据库备份,DBA可以在同一服务器或其它服务器上建立副本数据库。这个副本数据库可以和主数据库有相同的名称(拷贝)或与主数据库名称不同(克隆)。


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=4


WINNT>orapwd file=%ORACLE_HOME%\database\PWDCLONE.ORA password=clone


3) 创建windows服务(linux不需要):


WINNT>oradim –new –sid clone –intpwd clone


4) 建立NET8连接


5) 启动辅助实例:在RMAN创建副本数据库以前,辅助实例需要以非加载模式启动


6) 加载或打开目标数据库


7) 创建副本数据库


C:\Documents and Settings\Administrator>rman


Recovery Manager: 版本 9.2.0.1.0 - Production


Copyright (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:\ORACLE\ORADATA\CLONE\SYSTEM01.DBF";


set newname for datafile2 to"C:\ORACLE\ORADATA\CLONE\UNDOTBS01.DBF";


set newname for datafile3 to"C:\ORACLE\ORADATA\CLONE\CWMLITE01.DBF";


set newname for datafile4 to"C:\ORACLE\ORADATA\CLONE\DRSYS01.DBF";


set newname for datafile5 to"C:\ORACLE\ORADATA\CLONE\EXAMPLE01.DBF";


set newname for datafile6 to"C:\ORACLE\ORADATA\CLONE\INDX1.DBF";


set newname for datafile7 to"C:\ORACLE\ORADATA\CLONE\ODM01.DBF";


set newname for datafile8 to"C:\ORACLE\ORADATA\CLONE\TOOLS01.DBF";


set newname for datafile9 to"C:\ORACLE\ORADATA\CLONE\USERS01.DBF";


set newname for datafile10 to"C:\ORACLE\ORADATA\CLONE\XDB01.DBF";


set newname for datafile11 to"C:\ORACLE\ORADATA\CLONE\MYTS01.DBF";


restore


check readonly


cl