1.辅助实例是创建副本数据库的重要一步
a.创建辅助实例的密码文件
orapwd file=F:\oracle\product\10.2.0\db_1\database\PWDjssdup.ora password=oracle entries=30
b.创建辅助实例的初始化参数文件,由于是手工建库,相应目录也需要自己手工创建
创建 F:\oracle\product\10.2.0\admin\jssdup
创建 adump bdump cdump pfile udump
创建本地初始化参数文件
db_name='jssdup'
control_files=("F:\oracle\product\10.2.0\oradata\jssdup\control01.ctl","F:\oracle\product\10.2.0\oradata\jssdup\control02.ctl","F:\oracle\product\10.2.0
\oradata\jssdup\control03.ctl")
上面两个必选
shared_pool_size=200000000
db_block_size=8192
compatible = 10.2.0.1.0
background_dump_dest=F:\oracle\product\10.2.0\admin\jssdup\bdump
core_dump_dest=F:\oracle\product\10.2.0\admin\jssdup\cdump
user_dump_dest=F:\oracle\product\10.2.0\admin\jssdup\udump
db_file_name_convert=('D:\oracle\product\10.2.0\oradata\dbcool','F:\oracle\product\10.2.0\oradata\jssdup')
log_file_name_convert=('D:\oracle\product\10.2.0\oradata\dbcool','F:\oracle\product\10.2.0\oradata\jssdup')
通过CREATE SPFILE 命令创建服务器端初始化参数文件
compatible = 10.2.0.1.0一定要加上,否则复制过程中会报版本错误
SQL> create spfile from pfile='F:\oracle\product\10.2.0\admin\jssdup\pfile\initjssdup.ora';
c.启动辅助实例
startup nomount
d.连接到实例,配置监听啦,修改tnsname.ora 之类,总之就是你要能够连接到这个辅助实例上来才算了事
2.连接并启动目标数据库
set ORACLE_SID=dbcool
rman target /
CONFIGURE CONTROLFILE AUTOBACKUP on;
backup as backupset format ‘E:\BACKUP.dbf’ database;
RMAN 连接到目标数据库和辅助实例
set ORACLE_SID=jssdup
rman target sys/oracle@dbool auxiliary /
首先确认目标库存在可用备份
list backup;
configure device type disk PARALLELISM 2;
万事俱备,只欠Duplicate 执行
RMAN> duplicate target database to jssdup (SKIP READONLY,SKIP TABLESPACE XXX).;####只需要执行这一行
远程站点相同路径结构的复制
DUPLICATE TARGET DATABASE TO jssdup
PFILE = F:\oracle\product\10.2.0\admin\jssdup\pfile\initjssdup.ora
NOFILENAMECHECK;
晕了吧,异机操作路径相同还必需指定NOFILENAMECHECK。此处oracle 表现的很傻,它不知道你要恢复的路径是在另一台机器
上,它只是认为要恢复到的路径怎么跟目标数据库表现的一样呢?会不会是要覆盖目标数据库啊,为了避免这种情形,于是它
就报错。所以一旦异机恢复,并且路径相同,那么你必须通过指定NOFILENAMECHECK来避免oracle 的自动识别
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22253646/viewspace-667468/ ,如需转载,请注明出处,否则将追究法律责任。