https://www.cnblogs.com/xqzt/p/5089826.html

ORACLE DG 库参数db_file_name_convert和log_file_name_convert的作用
一、参数说明
[1] db_file_name_convert
db_file_name_convert 主数据库和备用数据库的数据文件转换目录映射(如果两数据库的目录结构不一样),如果有多个对映,逐一指明对映关系。

格式: *.db_file_name_convert= 主数据库数据文件目录,备用数据库数据文件目录

[2] log_file_name_convert
指明主数据库和备用数据库的log文件转换目录映射。

格式: *. log_file_name_convert=主数据库log目录,备用数据库目录

二、作用过程:
下面通过跟踪恢复从库的过程来分析这从库参数文件中db_file_name_convert和log_file_name_convert的作用:

1.dataguard的主库完全备份数据库;

2.将主库的完全备份复制到从库的相应位置

3.恢复从库,下面到了最关键部分了

用主库的备份来恢复从库,可以想到从库恢复出来中的控制文件和主库的控制一样。但是我们想使主从库的数据文件路径、联机日志路径不同; 最关键的参数要用到了,
那就是db_file_name_convert和log_file_name_convert从库通过主库的备份恢复控制文件--->恢复控制文件时,oracle查看从库参数文件中的db_file_name_convert和
log_file_name_convert参数---->将主库保存数据文件、联机日志的路径转换成从库保存数据文件、联机日志的路径---->生成从库的控制文件。
所以,db_file_name_convert和log_file_name_convert这两个参数像桥梁一样,来完成转换dataguard的主库和从库数据文件和联机日志保存路径不同的问题

验证1:备库未配置db_file_name_convert和log_file_name_convert

Standby>show parameter convert
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_file_name_convert string
log_file_name_convert string
Standby>

主库新增数据文件/usr/oracle/app/oradata/orcl/tb01.dbf 和 /usr/oracle/app/oradata/tb02.dbf

Primary>create tablespace TB01 datafile '/usr/oracle/app/oradata/orcl/tb01.dbf' size 1m autoextend on;
Tablespace created.
Primary>create tablespace TB02 datafile '/usr/oracle/app/oradata/tb02.dbf' size 1m autoextend on;
Tablespace created.
Primary>select name from v$datafile;
NAME
-----------------------------------------------------------------------------------------------------------------------------
/usr/oracle/app/oradata/orcl/system01.dbf
/usr/oracle/app/oradata/orcl/sysaux01.dbf
/usr/oracle/app/oradata/orcl/undotbs01.dbf
/usr/oracle/app/oradata/orcl/users01.dbf
/usr/oracle/app/oradata/orcl/tb01.dbf
/usr/oracle/app/oradata/tb02.dbf
6 rows selected.

Primary>

备库执行

Standby>alter database recover managed standby database disconnect from session;
Standby>select name from v$datafile;

NAME
----------------------------------------------------------------------------------------------------
/usr/oracle/standby/app/oradata/orcl_standby/system01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/sysaux01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/undotbs01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/users01.dbf
/usr/oracle/app/oradata/orcl/tb01.dbf
/usr/oracle/app/oradata/tb02.dbf

路径和主库的路径相同

验证2:备库配置了db_file_name_convert和log_file_name_convert

Standby>show parameter convert

NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_file_name_convert string /usr/oracle/app/oradata/orcl/,/usr/oracle/standby/app/oradata/orcl_standby/
log_file_name_convert string /usr/oracle/app/oradata/orcl/,/usr/oracle/standby/app/oradata/orcl_standby/

备库执行
Standby>alter database recover managed standby database disconnect from session;
结果如下
Standby>select name from v$datafile;
NAME
----------------------------------------------------------------------------------------------------
/usr/oracle/standby/app/oradata/orcl_standby/system01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/sysaux01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/undotbs01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/users01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/tb01.dbf
/usr/oracle/app/oradata/tb02.dbf

结果db_file_name_convert = ‘/usr/oracle/app/oradata/orcl/’,‘/usr/oracle/standby/app/oradata/orcl_standby/’起作用了

将/usr/oracle/app/oradata/orcl/tb01.dbf转换成 /usr/oracle/standby/app/oradata/orcl_standby/tb01.dbf
/usr/oracle/app/oradata/tb02.dbf 未被转换,因为不符合

switchover后,当前的备库(以前的主库)未配置db_file_name_convert和log_file_name_convert

1、未配置db_file_name_convert和log_file_name_convert的情况,从库同步后的数据文件和主库路径相同
主库新增了一个数据文件/usr/oracle/standby/app/oradata/orcl_standby/dg01(不要受orcl_standby的影响,这里执行过switchover,以前的备库是当前的主库)

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/usr/oracle/standby/app/oradata/orcl_standby/system01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/sysaux01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/undotbs01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/users01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/dg01

从库的结果
SYS@orcl>select name from v$datafile;
NAME
-----------------------------------------------------------------------------------------------------------------------------/usr/oracle/app/oradata/orcl/system01.dbf
/usr/oracle/app/oradata/orcl/sysaux01.dbf
/usr/oracle/app/oradata/orcl/undotbs01.dbf
/usr/oracle/app/oradata/orcl/users01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/dg01

switchover后,当前的备库(以前的主库)配置了db_file_name_convert和log_file_name_conver
在当前的备库(以前的主库)执行以下的语句
alter system set DB_FILE_NAME_CONVERT='/usr/oracle/standby/app/oradata/orcl_standby/','/usr/oracle/app/oradata/orcl/' scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='/usr/oracle/standby/app/oradata/orcl_standby/','/usr/oracle/app/oradata/orcl/' scope=spfile;
当前的主库(以前的备库)新增一个数据文件 /usr/oracle/standby/app/oradata/orcl_standby/dg02

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/usr/oracle/standby/app/oradata/orcl_standby/system01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/sysaux01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/undotbs01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/users01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/dg01
/usr/oracle/standby/app/oradata/orcl_standby/dg02
6 rows selected.

当前的备库(以前的主库)同步后的结果

SYS@orcl>select name from v$datafile;
NAME
-----------------------------------------------------------------------------------------------------------------------------/usr/oracle/app/oradata/orcl/system01.dbf
/usr/oracle/app/oradata/orcl/sysaux01.dbf
/usr/oracle/app/oradata/orcl/undotbs01.dbf
/usr/oracle/app/oradata/orcl/users01.dbf
/usr/oracle/standby/app/oradata/orcl_standby/dg01
/usr/oracle/app/oradata/orcl/dg02

/usr/oracle/standby/app/oradata/orcl_standby/dg02 被转换成 /usr/oracle/app/oradata/orcl/dg02

建议:
主库备库都配置db_file_name_convert和log_file_name_conver,这样不管怎样switchover,数据文件和redo log文件的位置都非常清晰。

ORACLE DG 库参数db_file_name_convert和log_file_name_convert的作用的更多相关文章

  1. DataGuard---->备库参数db_file_name_convert和log_file_name_convert的作用

    一.参数说明 [1] db_file_name_convert db_file_name_convert 主数据库和备用数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对映,逐 ...

  2. DataGuard---->主库和备库都配置 db_file_name_convert和log_file_name_convert的作用

    一.参数说明 [1] db_file_name_convert db_file_name_convert 主数据库和备用数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对映,逐 ...

  3. oracle dg库因为standby_file_management参数导致应用停止

    DG库的standby_file_management=manual,主库添加文件的时候,备库无法自动创建对应的文件而报错 File #154 added to control file as 'UN ...

  4. ORACLE DG之参数详解

    1.DB_NAME 数据库名字,需要保持同一个Data Guard中所有数据库DB_NAME相同. 主库和备库相同 DB_NAME='chicago' DB_NAME='chicago' 2.DB_U ...

  5. Oracle 11g Dataguard参数详解

    https://www.jb51.net/article/52269.htm注:本文译自<Oracle Data Guard 11g Handbook> Page 78 – Page 88 ...

  6. windows,oracle,dg报错:ORA-12528,ORA-12154,ORA-10456 ,PING[ARC1]: Heartbeat failed to connect to standby 'orclbk'. Error is 12154

    windows,oracle,dg报错:ORA-12528,ORA-12154,ORA-10456 最近有需求在windows的2台oracle服务器上搭建dg,在过程中遇到了一些错误,跟在linux ...

  7. oracle DG搭建

    Oracle DG 搭建1. 环境 OS IP hostname db_name DB_UNIQUE_NAME主库 RHEL 5.4 192.168.12.20 edgzrip1.oracle.com ...

  8. OGG 从Oracle备库同步数据至kafka

    OGG 从Oracle备库同步数据至kafka Table of Contents 1. 目的 2. 环境及规划 3. 安装配置JDK 3.1. 安装jdk 3.2. 配置环境变量 4. 安装Data ...

  9. ORACLE DG在线日志修改

    ORACLE DG在线日志修改 SQL>select SEQUENCE#,first_time,next_time,APPLIED, THREAD# from v$archived_log or ...

随机推荐

  1. 数塔 Easy

    在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?  已经告诉你了,这是个DP的题 ...

  2. Spring aop 实例(转)

    面向切面编程,有效的降低了代码之间的耦合性,易于维护:例如:我们习惯在代码中加上一些日志信息,在程序出错时方便快速查找找到问题,通常做法是在请求进入方法的时候打印日志,退出前打印日志,还有在出错时打印 ...

  3. PY个树状数组

    树状数组看起来比较简单,于是就挑它下手了... 于是生活终于也对咱下手了... 要讲的就两个东西,一个是开数组,全局变量写最前面,数组是这么开的: f=[0 for i in range(500005 ...

  4. CSP2019

    $CSP\space S$ 格雷码 $solution:$ 直接模拟即可. 时间复杂度 $O(n)$ . #include<iostream> #include<cstring> ...

  5. [51Nod1850] 抽卡大赛

    link $solution:$ 朴素 $dp$,暴力枚举选择 $i$ 号人的第 $j$ 张卡片,朴素 $dp$ 即可,时间复杂度 $O(n^4)$ . 考虑对于朴素 $dp$ 的优化,发现其实是一个 ...

  6. C# 静态方法 静态属性 调用静态方法

    C#的类中可以包含两种方法:静态方法和非静态方法. 使用了static 修饰符的方法为静态方法,反之则是非静态方法. 静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身.所以 ...

  7. CSS链接使用伪类的顺序

    顺序为:link-visited-hover-active a:link {color: #FF0000} /* 未访问的链接 */ a:visited {color: #00FF00} /* 已访问 ...

  8. ubuntu下安装python3.6.5导入ssl模块失败

    1.问题 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python3 Python ( , ::) [GCC (Red Hat -)] on linux2 ...

  9. POJ 3667 Hotel (线段树区间合并)

    题目链接:http://poj.org/problem?id=3667 题目大意:一共有n个房间,初始时都是空的,现在有m个操作,操作有以下两种: 1.1 d :询问是否有连续d个空的房间,若有则输出 ...

  10. 计蒜客 蓝桥模拟 A. 结果填空:矩阵求和

    给你一个从 n×nn \times nn×n 的矩阵,里面填充 111 到 n×nn \times nn×n .例如当 nnn 等于 333 的时候,填充的矩阵如下.   1 1 2 3 2 4 5 ...