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