一、远程站点相同路径结构的复制
1.创建辅助实例
2.Rman连接并运行duplicate命令
- 至少手工指定1条辅助通道
- 指定NOFILENAMECHECK参数
- 如果辅助实例并非服务器端初始化参数文件启动,请指定PFILE参数
DUPLICATE TARGET DATABASE TO dupdb PFILE =ORACLE_HOME$\admin\jssdup\pfile\init.ora NOFILENAMECHECK;
二、远程站点不同路径结构的复制
这种类型的复制可以细分成以下几个小类:
1.在初始化参数中重命名复制文件和日志文件
a). 首先还是创建辅助实例,并配置初始化参数
- 确认初始化参数中以_DEST结尾的参数以及包含路径的参数
- 设置DB_FILE_NAME_CONVERT参数,让其自动转换数据文件路径
- 设置LOG_FILE_NAME_CONVERT参数,让其自动转换日志文件路径
b). RMAN连接并执行duplicate命令,结束。
RMAN> DUPLICATE TARGET DATABASE TO jssdup;
2. 在Duplicate命令中重命名数据、日志文件
a). 创建辅助实例
b). RMAN连接运行Duplicate命令
- 至少指定一条辅助通道
- 通过LOGFILE子句指定副本数据库redo logs文件地址大小等
- 通过DB_FILE_NAME_CONVERT转换原数据文件路径到新路径。
- 如果需要不要忘记指定pfile参数
DUPLICATE TARGET DATABASE TO dupdb
PFILE = ORACLE_HOME$\admin\jssdup\pfile\init.ora
DB_FILE_NAME_CONVERT=(C:\oradata\orcl\,c:\oradata\jssdup\)
LOGFILE
'C:\oradata\jssdup\redo01.log' SIZE 20M,
'C:\oradata\jssdup\redo02.log' SIZE 20M,
'C:\oradata\jssdup\redo03.log' SIZE 20M;
3. 使用set newname命令重命名数据文件
a). 创建辅助实例
b). RMAN连接:
- 配置通道
- 使用SET NEWNAME命令设置数据文件新路径
- Duplicate命令设置logfile
RUN
{
# set new filenames for the datafiles
SET NEWNAME FOR DATAFILE 1 TO 'c:\oradata\jssdup\system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO 'c:\oradata\jssdup\undotbs01.dbf';
. . .
# issue the duplicate command
DUPLICATE TARGET DATABASE TO dupdb
# create at least two online redo log groups
....
}
4. 使用configure auxname命令重命名数据文件
略与上同,唯一不同处即是CONFIGURE AUXNAME命令格式,而且configure是在run块外执行的:
# configure the new desired filenames
CONFIGURE AUXNAME FOR DATAFILE 1 TO 'c:\oradata\jssdup\system01.dbf';
CONFIGURE AUXNAME FOR DATAFILE 2 TO 'c:\oradata\jssdup\undotbs01.dbf';
# ... add more CONFIGURE AUXNAME commands as needed
duplicate执行完之后,清除CONFIGURE AUXNAME
# clear specified auxiliary names for the datafiles
CONFIGURE AUXNAME FOR DATAFILE 1 CLEAR;
CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;
三、本地创建
与第二种相似,唯一不同的是本地创建的DB_NAME与目标数据库不可相同。