RMAN 同机复制数据库

2015-02-02 13:43:48 · 作者: · 浏览: 21

关于RMAN?复制的理论知识,参考RMAN?复制目标数据库的理论知识


?




源库的相关信息:


ORACLE_BASE:?/u01/app/oracle


ORACLE_HOME:?/u01/app/oracle/product/10.2.0/db_1


ORACLE_SIDORCL



复制的数据库实例名假设为:?DAVE



步骤如下:


(1)构建辅助数据库目录结构


(2)修改init.ora?初始话文件


(3)创建辅助实例口令文件


(4)RMAN?备份源库


(5)配置监听


(6)启动辅助库至nomount?状态


(7)RMAN?duplicate复制实例


(8)创建spfile


?





一.构建辅助数据库目录结构


1.1??Oracle?data?目录


[oracle@db1?oradata]$?ls


orcl


[oracle@db1?oradata]$?pwd


/u01/app/oracle/oradata


[oracle@db1?oradata]$?mkdir?DAVE


[oracle@db1?oradata]$?ls


DAVE??orcl



1.2??其他目录


[oracle@db1?admin]$?pwd


/u01/app/oracle/admin


[oracle@db1?admin]$?mkdir?DAVE


[oracle@db1?admin]$?ls


DAVE??orcl


[oracle@db1?admin]$?cd?orcl


[oracle@db1?orcl]$?ls


adump??bdump??cdump??dpdump??pfile??udump


[oracle@db1?DAVE]$?cd?..


[oracle@db1?admin]$?cd?DAVE


[oracle@db1?DAVE]$?mkdir?bdump


[oracle@db1?DAVE]$?mkdir?cdump


[oracle@db1?DAVE]$?mkdir?pfile


[oracle@db1?DAVE]$?mkdir?udump


[oracle@db1?DAVE]$?ls


adump??bdump??cdump??dpdump??pfile??udump


?




二.修改init.ora初始化文件



2.1?生成源库的pfile?文件,默认生成位置在$ORACLE_HOME/dbs目录下:


SQL>?conn?/?as?sysdba


Connected.


SQL>?create?pfile?from?spfile;


File?created.



2.2?进入$ORACLE_HOME/dbs目录,将init?文件copy并重命名为initDAVE.ora.这个命名格式必须和实例名相同,不然数据库不能识别。


[oracle@db1?DAVE]$?cd?$ORACLE_HOME/dbs


[oracle@db1?dbs]$?ls


hc_orcl.dat??init.ora??????lkORCL?????snapcf_orcl.f


initdw.ora???initorcl.ora??orapworcl??spfileorcl.ora


[oracle@db1?dbs]$?cp?initorcl.ora?initDAVE.ora


[oracle@db1?dbs]$?ls


hc_orcl.dat???initdw.ora??initorcl.ora??orapworcl??????spfileorcl.ora


initDAVE.ora??init.ora????lkORCL????????snapcf_orcl.f



2.3?修改initDAVE.ora?文件,将orcl?改成DAVE


[oracle@db1?dbs]$?more?initDAVE.ora


orcl.__db_cache_size=171966464


orcl.__java_pool_size=4194304


orcl.__large_pool_size=4194304


orcl.__shared_pool_size=58720256


orcl.__streams_pool_size=0


*.audit_file_dest='/u01/app/oracle/admin/DAVE/adump'


*.background_dump_dest='/u01/app/oracle/admin/DAVE/bdump'


*.compatible='10.2.0.1.0'


*.control_file_record_keep_time=14


*.control_files='/u01/app/oracle/oradata/DAVE/control01.ctl','/u01/app/oracle/oradata/DAVE/control02.ctl'


,'/u01/app/oracle/oradata/DAVE/control03.ctl'


*.core_dump_dest='/u01/app/oracle/admin/DAVE/cdump'


*.db_block_size=8192


*.db_domain=''


*.db_file_multiblock_read_count=16


*.db_name='DAVE'


*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'


*.db_recovery_file_dest_size=2147483648


*.dispatchers='(PROTOCOL=TCP)?(SERVICE=orclXDB)'


*.job_queue_processes=10


*.log_archive_dest_1='location=/u01/archivelog'


*.open_cursors=300


*.pga_aggregate_target=81788928


*.processes=150


*.remote_login_passwordfile='EXCLUSIVE'


*.sga_target=246415360


*.undo_management='AUTO'


*.undo_tablespace='UNDOTBS1'


*.user_dump_dest='/u01/app/oracle/admin/DAVE/udump'


db_file_name_convert?=?('/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/DAVE')


log_file_name_convert?=?('/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/DAVE')




其中红色部分就是修改的部分.?Db_file_name_convertlog_file_name_convert两个参数是我们添加的,用来转换数据文件位置和redo?log位置。?在复制完成后,可以删除这2个参数。