一、参数说明

[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

备库未配置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>

备库执行

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

备库配置了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/

备库执行

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文件的位置都非常清晰。

DataGuard---->备库参数db_file_name_convert和log_file_name_convert的作用的更多相关文章

  1. ORACLE DG 库参数db_file_name_convert和log_file_name_convert的作用

    https://www.cnblogs.com/xqzt/p/5089826.html ORACLE DG 库参数db_file_name_convert和log_file_name_convert的 ...

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

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

  3. Oracle数据库由dataguard备库引起的log file sync等待

    导读: 最近数据库经常出现会话阻塞的报警,过一会又会自动消失,昨天晚上恰好发生了一次,于是赶紧进行了查看,不看不知道,一看吓一跳,发现是由dataguard引起的log file sync等待.我们知 ...

  4. DataGuard备库ORA-01196故障恢复一则

    问题现象 在使用shutdown abort停DataGuard备库后.备库不能open,报ORA-01196错误. 详细例如以下: 发现一备库不能应用日志.查看备库日志没发现报错.怀疑是备库应用日志 ...

  5. oracle11g dataguard 备库数据同步的检查方法

    概述: 一.环境      主库:       ip地址:192.168.122.203       oracle根目录:/data/db/oracle       SID:qyq       数据文 ...

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

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

  7. ADG配置(主备库环境)

    @font-face { font-family: "Courier New"; }@font-face { font-family: "宋体"; }@font ...

  8. [Oracle] Data Guard 系列(5) - 创建逻辑备库

    在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考<Data Guard 系列(4) - 在不停主库的情况下创建物理备库>. 1. 在物理备库上停止日志应用服务 SYS ...

  9. pgsql物理复制(pgsql 备库的搭建以及角色互换,提升)

    结构图如下: Postgresql早在9.0版本开始支持物理复制,也称为流复制,通过从实例级复制出一个与主库一模一样的备库.流复制同步方式有同步,异步两种,如果主节点和备节点不是很忙,通常异步模式下备 ...

随机推荐

  1. python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)

    昨日内容回顾 0. 组件注意事项!!! data属性必须是一个函数! 1. 注册全局组件 Vue.component('组件名',{ template: `` }) var app = new Vue ...

  2. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  3. Kafka动态增加Topic的副本

    一.kafka的副本机制 由于Producer和Consumer都只会与Leader角色的分区副本相连,所以kafka需要以集群的组织形式提供主题下的消息高可用.kafka支持主备复制,所以消息具备高 ...

  4. Oracle回收站的清理方法

    http://blog.itpub.net/18841027/viewspace-1057765/

  5. (canvas)两小球碰撞后的速度问题研究

    这两天在研究canvas碰撞 先把小球开始运动的图拿出来 参考了一下别的的代码,在两个小球碰撞处理上,我觉得不完善 怎么样处理才算完善呢,当然是要用高中物理学的动量守恒了和机械能守恒了 机械能守恒我其 ...

  6. 【AtCoder】AGC019

    A - Ice Tea Store 算一下每种零售最少的钱就行,然后优先买2,零头买1 #include <bits/stdc++.h> #define fi first #define ...

  7. Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前端UI预览及下载

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  8. Openvas安装

    Openvas简介 Openvas是开源的,是Nessus项目分支,用于管理目标系统的漏洞,检测目标网络或主机的安全性.它的评估能力来源于数万个漏洞测试程序,openvas 早起版本还有一个客户端,现 ...

  9. cglib动态代理导致注解丢失问题及如何修改注解允许被继承

    现象 SOAService这个bean先后经过两个BeanPostProcessor,会发现代理之后注解就丢失了. 开启了cglib代理 @SpringBootApplication @EnableA ...

  10. 模拟ajax接口返回的数据

    { "status": 0, "hasError": false, "success": true, "errno": ...