日期:2014-05-16  浏览次数:20502 次

oracle --10g 中Duplicate 复制数据库
本次实验通过duplicate命令,在本机环境中创建一个复制数据库。目标数据库为hongye、复制数据库为catdb。

环境别名设置:
alias sql='rlwrap sqlplus /nolog'
alias rman='rlwrap rman'
alias dbs='cd $ORACLE_HOME/dbs'
alias rdb='cd $ORACLE_HOME/rdbms/admin'
alias udu='cd $ORACLE_BASE/admin/$ORACLE_SID/udump'
alias bdu='cd $ORACLE_BASE/admin/$ORACLE_SID/bdump'
alias rmalert='rm -f $ORACLE_BASE/admin/$ORACLE_SID/bdump/*;rm -f $ORACLE_BASE/admin/$ORACLE_SID/udump/*'


详细步骤如下:

1、构建catdb的初始化参数文件,本次实验使用的参数文件是从hongye数据库中创建出来的,并做了一些修改。
注意参数db_file_name_convert和log_file_name_convert参数,这两个参数控制了数据文件和日志文件的重命名,关于数据文件的重命名也可以使用set newname命令,日志文件的重命名可以在duplicate命令的子句中指定,但均没有init参数中的转换方便。
db_file_name_convert和log_file_name_convert参数都是使用串替换的方式重命名的,通过将目标文件名的指定的字符串替换成指定的字符串,从而生成新的文件名
本次实验中,hongye数据库的数据文件存放在路径为:/oracle/oradata/hongye/,而catdb的数据文件路径为:/oracle/oradata/catdb/,所以只要将所有文件名中的hongye替换成catdb就可以了。

[oracle@ORA10G ~]$ dbs                                                                                   
[oracle@ORA10G dbs]$ echo $ORACLE_SID
hongye
[oracle@ORA10G dbs]$ ll
total 6960
-rw-rw----  1 oracle oinstall    1544 Feb 11 22:13 hc_hongye.dat
-rw-r-----  1 oracle oinstall     848 Feb 17 19:46 initcatdb.ora
-rw-r--r--  1 oracle oinstall   12920 May  3  2001 initdw.ora
-rw-r-----  1 oracle oinstall    1079 Feb 17 19:21 inithongye.ora
-rw-r-----  1 oracle oinstall    2469 Feb 11 20:59 init.ora
-rw-r-----  1 oracle oinstall      24 Feb 11 19:20 lkHONGYE
-rw-r-----  1 oracle oinstall    1536 Feb 17 19:49 orapwcatdb
-rw-r-----  1 oracle oinstall    1536 Feb 15 21:01 orapwhongye
-rw-r-----  1 oracle oinstall 7061504 Feb 17 19:20 snapcf_hongye.f
-rw-r-----  1 oracle oinstall    3584 Feb 17 19:16 spfilehongye.ora
-rw-r-----  1 oracle oinstall     694 Feb 17 19:34 sqlnet.log
[oracle@ORA10G dbs]$ vi initcatdb.ora
*.audit_file_dest='/oracle/admin/catdb/adump'
*.background_dump_dest='/oracle/admin/catdb/bdump'
*.compatible='10.2.0.5.0'
*.control_files='/oracle/oradata/catdb/control01.ctl'
*.core_dump_dest='/oracle/admin/catdb/cdump'
*.db_block_size=8192
*.db_domain='oracle.com'
*.db_file_multiblock_read_count=16
*.db_name='catdb'
*.db_recovery_file_dest='/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=catdbXDB)'
*.job_queue_processes=10
*.nls_date_format='yyyy-mm-dd hh24:mi:ss'
*.open_cursors=30
*.pga_aggregate_target=16777216
*.processes=50
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=70
*.sga_target=80M
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle/admin/catdb/udump'
--文件名的转换参数:
db_file_name_convert=('hongye','catdb')
log_file_name_convert=('hongye','catdb')
~
~
~
~
~
"initcata.ora" 25L, 848C written

2、创建复制数据库的相关目录,包括adump、bdump、cdump、udump、oradata/catdb

[oracle@ORA10G dbs]$ cd /oracle/admin
[oracle@ORA10G dbs]$ mkdir catdb catdb/adump catdb/bdump catdb/cdump catdb/udump
[oracle@ORA10G dbs]$ ll /oracle/admin/
total 8
drwxr-xr-x