Oracle 主从库目录不一致(异路径)的n种处理方案及效果
最近遇到了复制数据(DUPLICATE TARGET DATABASE TO xxx)的时候 Oracle 源和目标库目录不一致的问题,比较初级但也踩到一些坑,整理记录一下。主从库搭建的时候注意事项其实也类似,而且更通用,所以标题写的是主从库目录。
一、 参数含义
- db_create_file_dest:设置后开启OMF,创建数据文件、redo文件时不需手动指定路径
- db_file_name_convert:主、从库数据文件目录转换对应,如果有多个,需要逐一指明。建议直接指定到数据文件上一层目录,否则其中子目录必须在从库中存在(参考后面案例)。
- log_file_name_convert:主、从库redo文件目录转换对应,如果有多个,需要逐一指明。注意事项同上。
优先级:
db_create_file_dest > db_file_name_convert 与 log_file_name_convert > 不设置
二、 设置效果
为方便理解,从库以下面参数配置为例:
db_create_file_dest='/u01/erpuat/db/apps_st/data/'
db_file_name_convert='/u01/erpdev/db/apps_st/data/erpdev/datafile/','/u01/erpuat/db/apps_st/data/erpuat/datafile/','/u01/erpdev/db/apps_st_02/data/erpdev/datafile/','/u01/erpuat/db/apps_st_02/data/erpuat/datafile/'
log_file_name_convert ='/oracle/fra/erpdev/onlinelog','/oracle/fra/erpuat/onlinelog','/u01/erpdev/db/apps_st/data/erpdev/onlinelog','/u01/erpuat/db/apps_st/data/erpuat/onlinelog'
1. 设置db_create_file_dest
无论是否设置convert参数,数据文件、redo文件均放在db_create_file_dest目录下(会自动创建子目录)。如果主库数据文件分在多个目录,从库会合并放在该目录,但要特别注意空间问题。
数据文件、redo文件:/u01/erpuat/db/apps_st/data/
2. 仅设置db_file_name_convert
数据文件按指定路径替换,redo文件按照主库目录。如果有不存在的,会遇到报错。
数据文件:/u01/erpuat/db/apps_st/data/erpuat/datafile/ 与 /u01/erpuat/db/apps_st_02/data/erpuat/datafile/
redo文件:/oracle/fra/erpdev/onlinelog 与 /u01/erpdev/db/apps_st/data/erpdev/onlinelog
目录不存在报错如下
注意它没有直接报目录不存在,但写出了报错的数据文件路径,可以自己在从库检查。
input datafile file number=00003 name=/u01/erpdev/db/apps_st/data/erpdev/datafile/o1_mf_test_da_os0rabc9_.dbf
RMAN-03009: failure of backup command on c8 channel at 08/18/2023 15:20:40
ORA-17628: Oracle error 19505 returned by remote Oracle server
continuing other job steps, job failed will not be re-run
3. 仅设置log_file_name_convert
redo文件按指定路径替换,数据文件按照主库目录。如果有不存在的,会遇到报错。
数据文件:/u01/erpdev/db/apps_st/data/erpdev/datafile/ 与 /u01/erpdev/db/apps_st_02/data/erpdev/datafile/
redo文件:/oracle/fra/erpuat/onlinelog 与 /u01/erpuat/db/apps_st/data/erpuat/onlinelog
目录不存在报错如下
这个倒是直接报目录不存在,但它是在所有数据文件复制完成后,重建控制文件时报的。如果数据量很大,会经过漫长等待之后卡在这步报错然后要重来,尴尬...
RMAN-06136: ORACLE error from auxiliary database: ORA-01503: CREATE CONTROLFILE failed
ORA-00349: failure obtaining block size for '/oracle/fra/erpdev/onlinelog/o1_mf_1_k5abdh25_.log'ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9
4. db_file_name_convert和log_file_name_convert都设置
数据文件、redo文件都按指定路径替换。如果有不存在的,会遇到报错。
数据文件:/u01/erpuat/db/apps_st/data/erpuat/datafile/ 与 /u01/erpuat/db/apps_st_02/data/erpuat/datafile/
redo文件:/oracle/fra/erpuat/onlinelog 与 /u01/erpuat/db/apps_st/data/erpuat/onlinelog
5. db_file_name_convert和log_file_name_convert都不设置
数据文件、redo文件都按照主库目录。如果有不存在的,会遇到报错。
数据文件:/u01/erpdev/db/apps_st/data/erpdev/datafile/ 与 /u01/erpdev/db/apps_st_02/data/erpdev/datafile/
redo文件:/oracle/fra/erpdev/onlinelog 与 /u01/erpdev/db/apps_st/data/erpdev/onlinelog
6. 特别注意,未设子目录的效果
两个convert参数效果都是一样的,这里以 db_file_name_convert 为例。
假如目录结构是这样的
- 主库:/u01/erpdev/db/apps_st/data/erpdev/datafile/
- 从库:/u01/erpuat/db/apps_st/data/erpuat/datafile/
但我是这么设置的(只写到了data目录那级)
db_file_name_convert='/u01/erpdev/db/apps_st/data/','/u01/erpuat/db/apps_st/data/'
同步的时候会不会报错?
答案是会的,因为转换后从库找的是 /u01/erpuat/db/apps_st/data/erpdev/datafile/,由于子目录没有设置转换,它还是会按照原来的erpdev。而从库实际是没有这个目录的,因此会遇到报错。
参考
DATAGUARD中db_file_name_convert和db_create_file_dest_51CTO博客_dataguard_status
https://www.cnblogs.com/xqzt/p/5089826.html
Multiple Standby Databases Dataguard Oracle - EasyOraDBA
RMAN Duplicate failing with RMAN-06136, ORA-01503, ORA-00349 (Doc ID 2206423.1)
相关文章:
Oracle 主从库目录不一致(异路径)的n种处理方案及效果
最近遇到了复制数据(DUPLICATE TARGET DATABASE TO xxx)的时候 Oracle 源和目标库目录不一致的问题,比较初级但也踩到一些坑,整理记录一下。主从库搭建的时候注意事项其实也类似,而且更通用,所以标题写的是…...
创建型(一) - 简单工厂模式、工厂方法模式和抽象工厂模式
本文使用了王争老师设计模式课程中的例子,写的很清晰,而且中间穿插了代码优化。 由于设计模式就是解决问题的一种思路,所以每个设计模式会从问题出发,这样比较好理解设计模式出现的意义。 一、简单工厂模式 解决问题:…...
LeetCode3.无重复字符的最长子串
虽然是一道中等题,但我5分钟就写完了,而且是看完题就知道怎么写,这一看就知道双指针,一个左一个右,右指针往后移如果没有重复的长度1;如果有重复的,左指针往右移,那如何判断重复呢&a…...
鲁图中大许少辉博士八一新书《乡村振兴战略下传统村落文化旅游设计》山东省图书馆典藏
鲁图中大许少辉博士八一新书《乡村振兴战略下传统村落文化旅游设计》山东省图书馆典藏...
如何发布自己的小程序
小程序的基础内容组件 text: 文本支持长按选中的效果 <text selectable>151535313511</text> rich-text: 把HTML字符串渲染为对应的UI <rich-text nodes"<h1 stylecolor:red;>123</h1>"></rich-text> 小程序的…...
【微服务】spring 条件注解从使用到源码分析详解
目录 一、前言 二、spring 条件注解概述 2.1 条件注解Conditional介绍 2.2 Conditional扩展注解 2.2.1 Conditional扩展注解汇总 三、spring 条件注解案例演示 3.1 ConditionalOnBean 3.2 ConditionalOnMissingBean 3.2.1 使用在类上 3.2.2 使用场景补充 3.3 Condit…...
客户案例:高性能、大规模、高可靠的AIGC承载网络
客户是一家AIGC领域的公司,他们通过构建一套完整的内容生产系统,革新内容创作过程,让用户以更低成本完成内容创作。 客户网络需求汇总 RoCE的计算网络RoCE存储网络1.不少于600端口200G以太网接入端口,未来可扩容至至少1280端口1.…...
Flutter性能揭秘之RepaintBoundary
作者:xuyisheng Flutter会在屏幕上绘制Widget。如果一个Widget的内容需要更新,那就只能重绘了。尽管如此,Flutter同样会重新绘制一些Widget,而这些Widget的内容仍有部分未被改变。这可能会影响应用程序的执行性能,有时…...
29.Netty源码之服务端启动:创建EventLoopSelector流程
highlight: arduino-light 源码篇:从 Linux 出发深入剖析服务端启动流程 通过前几章课程的学习,我们已经对 Netty 的技术思想和基本原理有了初步的认识,从今天这节课开始我们将正式进入 Netty 核心源码学习的课程。希望能够通过源码解析的方式…...
Kotllin实现ArrayList的基本功能
前言 上次面试时,手写ArrayList竟然翻车,忘了里面的扩容与缩容的条件,再次实现一次,加深印象 源码讲了什么 实现了List列表和RandomAccess随机访问接口List具有增删改查功能,RandomAccess支持下标访问内部是一个扩容…...
C++的初步介绍,以及C++与C的区别
C和C的区别 C又称C plus plus,且C语言是对C语言的扩充,几乎支持所有的C语言语法;C语言:面向过程的语言(注重问题的解决方法和算法)C:面向对象的语言 (求解的方法)面向对…...
JDK 核心jar之 rt.jar
一、JDK目录展示 二、rt.jar 简介 2.1.JAR释义 在软件领域,JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等&…...
el-form表单验证:只在点击保存时校验(包含select、checkbox、radio)
1、input类型 input类型 在el-input里加入:validate-event"false" <el-form-item label"活动名称" prop"name"><el-input v-model"ruleForm.name" :validate-event"false"></el-input> </el-form-i…...
Golang基本语法(上)
1. 变量与常量 Golang 中的标识符与关键字 标识符 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。 关键字 关键字和保留字都不建议用作变量名: Go语言中有25个关键字。 此…...
jenkins使用
安装插件 maven publish over ssh publish over ssh 会将打包后的jar包,通过ssh推送到指定的服务器上,,在jenkins中设置,推送后脚本,实现自动部署jar包,, 装了这个插件之后,可以在项…...
多线程基础篇(包教包会)
文章目录 一、第一个多线程程序1.Jconsole观察线程2.线程休眠-sleep 二、创建线程三、Thread类及常见方法1. Thread 的常见构造方法2. Thread 的几个常见属性3. 启动线程 - start4. 中断线程5. 等待一个线程 四、线程状态五、线程安全问题(synchronized)(重点&#…...
Android/Java中,各种数据类型之间的互相转换,给出各种实例,附上中文注释
目录 1.字符串(String)转整数(int): 2.整数(int)转字符串(String): 3.字符串(String)转浮点数(float)&…...
机器学习知识点总结:什么是EM(最大期望值算法)
什么是EM(最大期望值算法) 在现实生活中,苹果百分百是苹果,梨百分白是梨。 生活中还有很多事物是概率分布,比如有多少人结了婚,又有多少人有工作, 如果我们想要调查人群中吸大麻者的比例呢?敏感问题很难得…...
漏洞挖掘和安全审计的技巧与策略
文章目录 漏洞挖掘:发现隐藏的弱点1. 源代码审计:2. 黑盒测试:3. 静态分析工具: 安全审计:系统的全面评估1. 渗透测试:2. 代码审计:3. 安全策略审查: 代码示例:SQL注入漏…...
[SpringBoot3]Web服务
五、Web服务 基于浏览器的B/S结构应用十分流行。SpringBoot非常适合Web应用开发,可以使用嵌入式Tomcat、Jetty、Undertow或Netty创建一个自包含的HTTP服务器。一个SpringBoot的Web应用能够自己独立运行,不依赖需要安装的Tomcat、Jetty等。SpringBoot可以…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
