1.在目标端建立参数文件,并启动到nomount,如果测试库的文件存放路径和生产不一致,配置db_file_name_convert和log_file_name_convert
2.拷贝生产的密码文件到目标端,配置生产到目标端的tnsnames
3.配置目标端的监听为静态监听,参考如下:
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC =
(global_dbname=orcl) ##这个是 服务名
(ORACLE_HOME =/u01/app/oracle/product/11.2.0/db_1)
(SID_NAME =orcl) ##这个是实例名
)
)
4.在源端执行duplicate,可以从from active database或者使用 backup:
DUPLICATE TARGET DATABASE TO bre1 FROM ACTIVE DATABASE nofilenamecheck;
其中:bre1是db_name
[oracle@bre1 bre1]$ rman target sys/manager
Recovery Manager: Release 11.2.0.4.0 - Production on Mon Jan 29 10:42:10 2024
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: BRE1 (DBID=2718330383)
RMAN> connect auxiliary sys/manager@bre2_test ###这里bre2_test是生产到测试的tnsnames
connected to auxiliary database: BRE1 (not mounted)
RMAN> DUPLICATE TARGET DATABASE TO bre1 FROM ACTIVE DATABASE nofilenamecheck;
或者使用backup,需要先将backup的备份集拷贝到测试环境或者nfs共享挂载到测试环境:
DUPLICATE TARGET DATABASE TO bre1 backup location '/home/oracle/backup/file/20240129' nofilenamecheck;
5.dupllicate完成之后,默认duplicate数据库会后自动被open resetlogs,还可以指定时间点进行duplicate,例如
run{
set until time ='xxxxx';
duplicate target to xxxx;
}