Oracle RMAN duplicate 标准化文档
一 介绍
1.1 Duplicate介绍
RMAN Duplicate 功能是从Oracle 10g开始诞生;在11g的时候进行了很多增强,免去了10g版本下需要人工复制到备机上过来进行恢复的关键问题。通过11g的Duplicate可以创建一个数据完全相同但DBID不同的数据库。常用于搭建测试库以及搭建DataGuard.
在11g的RMAN Duplicate中可以使用Active database duplicate和Backup-based duplicate两种方法实现。Active database duplicate不需要先把源端数据库进行RMAN备份,只需要源端数据库处于归档模式下即可通过网络对目标端数据库进行恢复,且恢复完成后能够自动Open.
二 使用
2.1 Duplicate搭建辅助数据库
目标端操作:
(1)创建参数文件(db_file_name_convert以及log_file_name_convert)
//辅助数据库db_name可以不同
(2) 创建密码文件
(3)创建相应目录
(4)配置静态注册
Service “aux” has 2 instance(s).
Instance “aux”, status UNKNOWN, has 1 handler(s) for this service…
Instance “aux”, status BLOCKED, has 1 handler(s) for this service…
(5)启动至nomount状态
源端操作:
方式1:
1.配置tnsname.ora文件。
2.源端进行数据库全库备份
RMAN> backup as compressed backupset database plus archivelog;
3.将备份片传输至目标端相同目录下。
4.RMAN同时连接源端以及目标端.
[oracle@db]$rman target sys/oracle@orcl auxiliary sys/oracle@aux
5.执行duplicate复制
RMAN> run{
> allocate auxiliary channel aux1 device type disk; --必须分配一个辅助通道
> duplicate target database to aux;
> }
方式 2:
1.配置tnsname.ora文件。
2.RMAN同时连接源端以及目标端.
[oracle@db]$rman target sys/oracle@orcl auxiliary sys/oracle@aux
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Jun 21 21:59:11 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=449288230)
connected to auxiliary database: AUX (not mounted)
3.执行duplicate复制
RMAN> duplicate target database to aux from active database nofilenamecheck;
2.2 Duplicate搭建DataGuard
备库操作:
- 创建参数文件(db_file_name_convert以及log_file_name_convert)
//同目录结构则db/log_file_name_convert则不用修改
//db_name必须相同 - 同步密码文件
- 配置静态注册
其他备库参数按需配置!
主库操作:
- 开启强制日志
- 配置日志传输参数
- 配置tnsname.ora
- RMAN同时连接源端以及目标端.
[oracle@db]$rman target sys/oracle@orcl auxiliary sys/oracle@orcldg
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Jun 21 21:59:11 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=449288230)
connected to auxiliary database: ORCL (not mounted)
- 执行duplicate复制
RMAN>duplicate target database for standby from active database nofilenamecheck
//from active database
//通过网络直接传输,如果不使用此方式,需要将主库的备份拷贝到备库相应位置。
//恢复完之后备库自动启动到mount状态
其他主库参数按需配置!
此时备库开启日志应用即同步完成!
2.3 Duplicate nofilenamecheck参数解释
如果在复制时,位置不同时,
我们会用参数db_file_name_convert 对文件位置进行转换。
但是在这个复制示例中我们用的是相同的位置。 所以这里必须加上nofilenamecheck参数。
该参数通知复制操作不必在执行还原操作前确认文件名是不同的。
如果没有指定nofilenamecheck参数,rman会给出如下错误:
RMAN-05001: auxiliary filename /DBSoft/oracle/oradata/woo/users01.dbf conflicts with a file used by the target database
2)检查网络及存储性能瓶颈。