使用duplicate命令创建数据库副本环境介绍
操作系统:Centos 5.5
数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
已开启归档模式
实验一:在异机中使用duplicate命令创建数据库副本
1.在目的服务器上创建辅助实例
orapwd file=/u01/app/oracle/dbs/orapwocpdup password=verysafe entries=30
2.创建OracleService
Export ORACLE_SID=ocpdup
3.配置初始化参数文件
ocpdup.__oracle_base='/u01/app'#ORACLE_BASE set from environment
ocpdup.__shared_pool_size=176160768
*.audit_file_dest='/u01/app/oracle/admin/ocpdup/adump'
*.background_dump_dest='/u01/app/oracle/admin/ocpdup/bdump'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/ocpdup/control01.ctl','/u01/app/oracle/oradata/ocpdup/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_create_file_dest='/u01/oradata/'
*.db_domain='centos'
*.db_name='ocpdup'
*.db_recovery_file_dest='/u01/recovery_area'
*.db_recovery_file_dest_size=3221225472
*.db_unique_name='ocpdup'
*.remote_login_passwordfile='EXCLUSIVE'
*.db_file_name_convert=('ocptest','ocpdup')
*.log_file_name_convert=('ocptest','ocpdup')
4.配置监听和网络服务名
Listener.ora中加入如下内容
(SID_DESC =
(GLOBAL_DBNAME = ocpdup)
(ORACLE_HOME = /u01/app/oracle)
(SID_NAME = ocpdup)
)
Tnsnames.ora中加入如下内容
OCPDUP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.124.102)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ocpdup)
)
)
5.启动辅助实例到nomount状态
SQL> conn / as sysdba
Connected to an idle instance.
SQL> create spfile from pfile='/u01/app/oracle/dbs/initocpdup.ora';
File created.
SQL> startup nomount
发现错误了:原来是我没有建立audit目录
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORA-09925: Unable to create audit trail file
Linux Error: 2: No such file or directory
Additional information: 9925
6.复制备份文件和日志文件到目标数据库
[oracle@centos 2012_07_20]$ scp o1_mf_nnndf_TAG20120720T233612_80lyqfby_.bkp 192.168.124.102:/u01/recovery_area/OCPTEST/backupset/2012_07_20/o1_mf_nnndf_TAG20120720T233612_80lyqfby_.bkp
oracle@192.168.124.102's password:
o1_mf_nnndf_TAG20120720T233612_80lyqfby_.bkp 100% 243MB 9.0MB/s 00:27
7.使用RMAN创建数据库副本(windows客户端使用RMAN登录中文环境)
C:\Users\huangxu>rman target sys/ams2000@ocptest auxiliary sys/verysafe@jssdup
恢复管理器: Release 10.2.0.3.0 - Production on 星期二 7月 24 14:24:03 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: OCPTEST (DBID=1295341498)
已连接到辅助数据库: OCPDUP (未装载)
RMAN> run{
2> allocate auxiliary channel ch1 device type disk;
3> duplicate target database to ocpdup nofilenamecheck;
4> }
使用目标数据库控制文件替代恢复目录
分配的通道: ch1
通道 ch1: sid=18 devtype=DISK
启动 Duplicate Db 于 24-7月 -12
内存脚本的内容:
{
set until scn 1470104;
set newname for datafile 1 to
"/u01/app/oracle/oradata/ocpdup/system01.dbf";
set newname for datafile 2 to
"/u01/app/oracle/oradata/ocpdup/sysaux01.dbf";
set newname for datafile 3 to
"/u01/app/oracle/oradata/ocpdup/undotbs01.dbf";
set newname for datafile 4 to
"/u01/app/oracle/oradata/ocpdup/users01.dbf";
set newname for datafile 5 to
"/u01/oradata/OCPTEST/datafile/o1_mf_jly_7zf8m387_.dbf";
restore
check readonly
clone database
;
}
正在执行内存脚本
正在执行命令: SET until clause
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 24-7月 -12
正在略过数据文件 1; 已恢复到文件 /u01/app/oracle/oradata/ocpdup/system01.dbf
正在略过数据文件 2; 已恢复到文件 /u01/app/oracle/oradata/ocpdup/sysaux01.dbf
正在略过数据文件 3; 已恢复到文件 /u01/app/oracle/oradata/ocpdup/undotbs01.dbf
正在略过数据文件 4; 已恢复到文件 /u01/app/oracle/oradata/ocpdup/users01.dbf
通道 ch1: 正在开始恢复数据文件备份集
通道 ch1: 正在指定从备份集恢复的数据文件
正将数据文件00005恢复到/u01/oradata/OCPTEST/datafile/o1_mf_jly_7zf8m387_.dbf
通道 ch1: 正在读取备份段 /u01/recovery_area/OCPTEST/backupset/2012_07_20/o1_mf_nnndf_TAG20120720T233
通道 ch1: 已恢复备份段 1
段句柄 = /