RMAN 数据库克隆文件位置转换方法
在使用RMAN克隆数据库时,如果辅助数据库(新数据库)使用了与目标数据库(原数据库)使用了不同的路径,那么就存在位置转换的问题。在Oracle中,控制文件用于定位数据文件以及联机重做日志文件,如果没有正确的转换,控制文件压根就找不到相应的数据文件,日志文件。对此Oralce为我们提供了三种文件位置的转换方法。本文即是对这三种转换方法的描述。
1、使用db_file_name_convert与log_file_name_convert参数
- --我们可以在辅助数据库参数文件spfile/pfile中定义这两个参数用于Oracle来根据这个值进行自动转换文件位置
- --该参数也可以用于配置dataguard是主数据库与standby数据库文件位置转换
- --第一个字符串用于定义目标数据库文件位置,第二个字符串用于定义辅助数据库文件位置
- --如下面的示例
- *.db_file_name_convert =('/u01/database/sybo3','/u02/database/sybo5')
- *.log_file_name_convert =('/u01/database/sybo3','/u02/database/sybo5')
- --如果辅助数据库文件的位置有关的其他信息,如加载点都是相同的,可以直接使用下面的方式来定义参数
- --target db path: /u01/database/sybo3
- --auxiliary db path: /u01/database/sybo5
- --做如下定义
- *.db_file_name_convert =('sybo3','sybo5')
- *.log_file_name_convert =('sybo3','sybo5')
- --如果是下面的情形
- --target db path:
- /u01/database/sybo3/oradata/system01.dbf
- /u01/database/sybo3/oradata/sysaux01.dbf
- /u02/database/sybo3/oradata/undotbs01.dbf
- /u02/database/sybo3/oradata/users01.dbf
- /u02/database/sybo3/oradata/example01.dbf
- --auxiliary db path:
- /u01/database/sybo5/oradata/system01.dbf
- /u01/database/sybo5/oradata/sysaux01.dbf
- /u02/database/sybo5/oradata/undotbs01.dbf
- /u02/database/sybo5/oradata/users01.dbf
- /u02/database/sybo5/oradata/example01.dbf
- --如前所述,由于加载点是相同的,依旧可以按上面的方式定义
- *.db_file_name_convert =('sybo3','sybo5')
- *.log_file_name_convert =('sybo3','sybo5')
- --下面是克隆之后的情形,最好清除这个两个参数
- [oracle@linux3 ~]$ rman target sys/oracle@sybo3 auxiliary sys/oracle@sybo5
- RMAN> duplicate target database to sybo5; --发布该命令后,Oracle会根据目标数据库自动创建辅助数据库日志文件以及临时表空间数据文件
- SQL> select name,dbid,open_mode from v$database;
- NAME DBID OPEN_MODE
- --------- ---------- --------------------
- SYBO5 2292457546 READ WRITE
- SQL> show parameter name_conve
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- db_file_name_convert string sybo3, sybo5
- log_file_name_convert string sybo3, sybo5
- SQL> alter system reset db_file_name_convert;
- System altered.
- SQL> alter system reset log_file_name_convert;
- System altered.
2、使用RMAN set newname子句
- RMAN 为我们提供了set newname 子句用于指定辅助数据库数据文件以及临时表空间数据文件的位置。
- 该命令也可以用于特定表空间或数据文件因加载点失败将数据文件恢复到非故障加载点。
- 如下:
- set newname for datafile m to '<new_dir>/file_name'
- set newname for tempfile n to '<new_dir>/file_name'
- 如我们可以使用下面的命令来克隆数据库
- RMAN> run
- {
- set newname for datafile 1 to '/u01/database/sybo5/oradata/system01.dbf'; -->为数据文件指定新路径
- set newname for datafile 2 to '/u01/database/sybo5/oradata/sysaux01.dbf';
- set newname for datafile 3 to '/u01/database/sybo5/oradata/undotbs01.dbf';
- set newname for datafile 4 to '/u01/database/sybo5/oradata/users01.dbf';
- set newname for datafile 5 to '/u01/database/sybo5/oradata/example01.dbf';
- set newname for tempfile 1 to '/u01/database/sybo5/oradata/temp01.dbf'; -->为日志文件指定新路径
- duplicate target database to sybo5 -->duplicate 命令用于克隆数据库
- logfile
- group 1 ('/u01/database/sybo5/redo/redo01a.log','/u01/database/sybo5/redo/redo01b.log') size 10m, -->可自行指定日志组及成员数,size
- group 2 ('/u01/database/sybo5/redo/redo02a.log','/u01/database/sybo5/redo/redo02b.log') size 10m, -->如未指定logfile部分则其组数与
- group 3 ('/u01/database/sybo5/redo/redo03a.log','/u01/database/sybo5/redo/redo03b.log') size 10m; -->成员数,size等同于与目标数据库
- switch datafile all; -->用于将上述新路径更新到控制文件,此句可省略(会自动更新)
- }
3、使用configure auxname命令
- configure auxname是在Oracle 11g开始提供的新命令,该配置命令会将其值存储在目标数据库的控制文件中
- 用法如下:
- configure auxname for datafile n to '<new_dir>/file_name';
- configure auxname for datafile n clear;
- --Author : Robinson
- --Blog : http://blog.csdn.net/robinson_0612
- 如下面是设置之后的结果:
- RMAN> show auxname;
- RMAN configuration parameters for database with db_unique_name SYBO3 are:
- CONFIGURE AUXNAME FOR DATAFILE '/u01/database/sybo3/oradata/system01.dbf' TO '/u01/database/sybo5/oradata/system01.dbf';
- CONFIGURE AUXNAME FOR DATAFILE '/u01/database/sybo3/oradata/sysaux01.dbf' TO '/u01/database/sybo5/oradata/sysaux01.dbf';
- CONFIGURE AUXNAME FOR DATAFILE '/u01/database/sybo3/oradata/undotbs01.dbf' TO '/u01/database/sybo5/oradata/undotbs01.dbf';
- CONFIGURE AUXNAME FOR DATAFILE '/u01/database/sybo3/oradata/users01.dbf' TO '/u01/database/sybo5/oradata/users01.dbf';
- CONFIGURE AUXNAME FOR DATAFILE '/u01/database/sybo3/oradata/example01.dbf' TO '/u01/database/sybo5/oradata/example01.dbf';
- RMAN>run
- {
- set until time = "to_date('20130725 10:09:53','yyyymmdd hh24:mi:ss')"; -->可以指定time,scn,sequence
- set newname for tempfile 1 TO '/u01/database/sybo5/oradata/temp01.dbf'; -->注意,configure auxname不支持tempfile,此处需要使用set newname
- duplicate target database to clone_db pfile=/u01/oracle/db_1/dbs/initsybo5.ora
- logfile
- '/u01/database/sybo5/redo/redo01a.log' SIZE 5M,
- '/u01/database/sybo5/redo/redo02a.log' SIZE 5M,
- '/u01/database/sybo5/redo/redo03a.log' SIZE 5M;
- }
RMAN 数据库克隆文件位置转换方法的更多相关文章
- 基于RMAN的异机数据库克隆(rman duplicate)
对于基于生产环境下的数据库的版本升级或者测试新的应用程序的性能及其影响,备份恢复等等,我们可以采取从生产环境以克隆的方式将其克隆到本地而不影响生产数据库的正常使用.实现这个功能我们可以借助rman d ...
- rman数据库恢复;关键/非重要文件、影像副本、控制文件、还原点、非归档、增量、新数据库、灾难性回复
运行全然恢复:在 ARCHIVELOG 模式下 丢失了系统重要数据文件: 假设某个数据文件丢失或损坏.且该文件属于 SYSTEM 或 UNDO 表空间,请运行下面步骤: 1. 实例可能会也可能不会自己 ...
- Oracle19c 如何用rman duplicate 克隆一个数据库。(Backup-Based, achive log)
Oracle19c 如何用rman duplicate 克隆一个数据库.(Backup-Based, achive log) 首先克隆有两种方法,一种是Backup-Based,一种是Active方式 ...
- Oracle19c 如何用rman duplicate 克隆一个数据库。(Backup-Based, no achive log)
Oracle19c 如何用rman duplicate 克隆一个数据库. 首先克隆有两种方法,一种是Backup-Based,一种是Active方式.官网文档链接https://docs.oracle ...
- Oracle19c 如何用rman duplicate 克隆一个数据库。(Active方式)
Oracle19c 如何用rman duplicate 克隆一个数据库. 首先克隆有两种方法,一种是Backup-Based,一种是Active方式.官网文档链接https://docs.oracle ...
- mysql数据库存储路径更改 数据文件位置
使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...
- 如何获取SQL Server 2008数据库数据文件的位置
在SQL Server中,要获取数据库数据文件的物理位置,有三种方法: sp_helpdb bright name filename f ...
- RMAN数据库恢复之丢失数据文件的恢复
删除某一数据文件:SQL> HOST del D:\app\Administrator\oradata\orcl\USERS01.dbf 启动数据库,提示丢失数据文件4,此时数据库处理MOUNT ...
- RMAN数据库恢复之控制文件和参数文件恢复
一.控制文件的恢复1.查询控制文件的路径 SQL> SELECT * FROM V$CONTROLFILE; STATUS NAME IS_RECOVERY_DEST_FILE BLOCK_SI ...
随机推荐
- Linux命令行快捷键及vim快捷方式
Linux命令行快捷键 快捷键: tab键 自动补全路径 目录 名字, 自动不全命令 快捷键: ctrl +l(小写) 清屏 . ctrl +c 取消当前操作 快捷键: ctrl +d(小写) 退出当 ...
- Java字符串String
Java字符串String 我们知道Java的字符窜是Immutable(不可变)的,一旦创建就不能更改其内容了:平常我们对字符串的操作是最多的,其实对字符串的操作,返回的字符串都是新建的字符串对象, ...
- java Spring 各版本jar包下载地址
http://repo.spring.io/simple/libs-release-local/org/springframework/
- 【高并发解决方案】7、HAProxy安装和配置
简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...
- JSON方式封装通信接口
1.封装通信接口数据的方法 2. 案例:生成json 注意:json_encode() 只能接收utf-8数据 测试: <?php $arr = array( 'id'=>1, 'name ...
- easyUI combobox combotree 模糊查询,带上下键选择功能,待完善。。。。
/2017年4月9日 11:52:36 /** * combobox和combotree模糊查询 * combotree 结果带两级父节点(手动设置数量) * 键盘上下键选择叶子节点 * 键盘回车键设 ...
- 程序员Web面试之前端框架等知识
基于前面2篇博客: 程序员Web面试之jQuery 程序员Web面试之JSON 您已经可以顺利进入Web开发的大门. 但是要动手干,还需要了解一些已有的前端框架.UI套件,即要站在巨人肩膀上而不是从轮 ...
- 洗礼灵魂,修炼python(28)--异常处理(2)—>运用异常
你可能会想,卧槽这标题取的,前面不是说异常就是报错吗?异常还能运用? 是的,异常确实可以运用,可以刻意制造异常,在出现异常时捕获异常并对异常处理,所以进入本篇博文的话题—异常处理 异常处理: 异常处理 ...
- 洗礼灵魂,修炼python(11)--python函数,模块
前面的章节你如果看懂了,基本算是入门了七八了,不过如果你以为python就这么点东西,你觉得很简单啊,那你就错了,真正的东西在后面,前面我说的几大核心其实也不是多么高深多么厉害的,那些东西是基础很常用 ...
- 【HANA系列】SAP HANA XS使用Odata标志全解析
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Oda ...