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. UML类图(一)

    前言 最近在学习程杰老师的<大话设计模式>,觉得非常不错,就做了一些学习笔记和总结.如果对设计模式很感兴趣的,可以直接阅读书籍,相信会有更多的收获. 本人小菜一枚,如果理解的不对的还请多多 ...

  2. html5酷炫效果链接收集

    HTML5 3D图片相册图片轮播动画   http://www.html5tricks.com/demo/html5-3d-gallery-animation/index.html 36种漂亮的CSS ...

  3. struts2_对Map进行双层迭代

    转自:struts2_对Map进行双层迭代 //后台数据 public String execute() throws Exception { Map<String, List<Produ ...

  4. 如何让form2中的数据源,显示在form1的dataGridView控件中呢????

    定义一个static的静态变量,即可全局访问

  5. element ui中的一些小技巧

    最近写公司的项目,这项目是vue和element ui搭建的, 做的是一套电力系统的管理平台.  遇到一个小麻烦,用过element ui 的都知道,使用element ui 弹框,点击空白处,默认是 ...

  6. android——屏幕适配

    一,基本概念 1:dip: 其实也就是dp,与像素无关 2:px: 像素,在安卓布局中不用px,因为每个手机像素不同,px显示的布局大小也就不同 3:dpi: 通俗点就是每英寸多少个像素,简称像素密度 ...

  7. UIDynamic物理引擎

    iOS开发拓展篇—UIDynamic(简单介绍) 一.简单介绍 1.什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟 ...

  8. python利用(threading,ThreadPoolExecutor.map,ThreadPoolExecutor.submit) 三种多线程方式处理 list数据

    需求:在从银行数据库中取出 几十万数据时,需要对 每行数据进行相关操作,通过pandas的dataframe发现数据处理过慢,于是 对数据进行 分段后 通过 线程进行处理: 如下给出 测试版代码,通过 ...

  9. Quartus 中调用modelsim的流程及*.vt或*.vht自动生成

    一.自动生成验证程序testbench的方法,setting-EDA Tool->simylation->选择对应的语言(verilog对应*.vt,VHDL对应*.vht)process ...

  10. aidl 详解

    aidl 是 android interface define language 的缩写,主要是作为进程间通讯的一个接口规范,这种通讯是一种普通的 client-server 的模式,对于 clien ...