Oracle Dataguard 需要配置的参数详解

news2025/1/8 15:55:45

Oracle Dataguard 需要配置的参数详解

目录

  • Oracle Dataguard 需要配置的参数详解
    • 一、数据库名:DB_NAME
    • 二、数据库唯一名:DB_UNIQUE_NAME
    • 三、LOG_ARCHIVE_CONFIG
    • 四、LOG_ARCHIVE_DEST_1
    • 五、LOG_ARCHIVE_DEST_2
    • 六、LOG_ARCHIVE_DEST_3
    • 七、LOG_ARCHIVE_DEST_STATE_n
    • 七、FAL_SERVER 与 FAL_CLIENT
    • 七、DB_FILE_NAME_CONVERT
    • 七、LOG_FILE_NAME_CONVERT
    • 七、STANDBY_FILE_MANAGEMENT

一、数据库名:DB_NAME

db_name参数用于标识数据库的名称。

主备各节点使用相同的db_name,推荐与service_name一致。例如:

主库:*.DB_NAME='HISDB'
备库:*.DB_NAME='HISDB'

二、数据库唯一名:DB_UNIQUE_NAME

主库与备库的唯一名称。如果主备db_unique_name不一样,需要与LOG_ARCHIVE_CONFIG配合使用。例如:

主库:*.db_unique_name='HISDB'
备库:*.db_unique_name='HISDBDG'

三、LOG_ARCHIVE_CONFIG

列出主备库上的DB_UNIQUE_NAME参数。定义该参数能确保主备库能够互相识别对方。当主备库的db_unique_name不一致时必须设置如下参数。例如:

主库:*.db_unique_name='HISDB'
备库:*.db_unique_name='HISDBDG'
主库:*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(HISDB,HISDBDG)'
备库:*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(HISDB,HISDBDG)'

如在主备库db_unique_name不一致的情况下未配置LOG_ARCHIVE_CONFIG则会出现如下报错:

ORA-16057: DGID from server not in Data Guard configuration

当主备库的db_unique_name一致时,LOG_ARCHIVE_CONFIG参数设置为空。例如:

主库:*.db_unique_name='HISDB'
备库:*.db_unique_name='HISDB'
主库:*.LOG_ARCHIVE_CONFIG=''
备库:*.LOG_ARCHIVE_CONFIG=''

四、LOG_ARCHIVE_DEST_1

设置本地归档路径。主库与备库需要定义各自的online redo log的归档地址,以系统实际的存放路径为准。格式如下:

主库:*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=hisdb'     -- db_unique_name: 主库的唯一名

备库:*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=hisdbdg'   -- db_unique_name: 备库的唯一名

五、LOG_ARCHIVE_DEST_2

log_archive_dest_2Oracle Dataguard最重要的参数之一,它定义了redo log的传输方式(sync or async)以及传输目标(即:standby apply node),直接决定了Oracle Dataguard的数据保护级别。

格式如下:

主库:*.log_archive_dest_2='service=hisdbdg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=hisdbdg'
-- service值: 是tnsnames.ora文件中定义的网络服务名。在主库中service参数为备库的网络服务名。
-- DB_UNIQUE_NAME值:当前节点设置的均为另一端数据库的 db_unique_name。主库设置为:hisdbdg

备库:*.log_archive_dest_2='service=hisdb lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=hisdb'
-- service值: 是tnsnames.ora文件中定义的网络服务名。在备库中service参数为主库的网络服务名。
-- DB_UNIQUE_NAME值:当前节点设置的均为另一端数据库的 db_unique_name。主库设置为:hisdb。

六、LOG_ARCHIVE_DEST_3

该参数仅当数据库角色为standby时生效,定义主库的日志写到备库的standby redo log中。

格式如下:

主库:*.LOG_ARCHIVE_DEST_3='LOCATION=/archivelog/standbylog/ VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) '
备库:*.LOG_ARCHIVE_DEST_3='LOCATION=/arch/arch3/ VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE)'
-- LOCATION定义的路径以本节点能读写的实际路径为准。

七、LOG_ARCHIVE_DEST_STATE_n

设置为ENABLE,激活log_archive_dest_n定义的属性。

格式如下:

主库:
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'

备库:
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'

七、FAL_SERVER 与 FAL_CLIENT

FALFetch Archive Log)是Oracle Dataguard主备之间GAP的处理机制。

当主库的某些日志没有成功发送到备库,这时候会产生Archive GAP。缺失的这些日志就是GAPOracle Dataguard能够自动检测、解决GAP,不需要DBA的介入。此时需要配置FAL_CLIENTFAL_SERVER这两个参数。

FAL是备库主动发起的取日志的过程,备库就是FAL_CLIENT,它从FAL_SERVER中取这些GAPFAL_SERVER可以是主库, 也可以是其他的备库。

FAL_CLIENTFAL_SERVER两个参数都是Oracle监听中的网络服务名。FAL_CLIENT通过网络向FAL_SERVER发送请求,FAL_SERVER通过网络向FAL_CLIENT发送缺失的日志。因此,FAL_CLIENTFAL_SERVER发送请求时,会携带FAL_CLIENT参数值,用来告诉FAL_SERVER应该向哪里发送缺少的日志。

格式如下:

-- fal_client用于接受日志,fal_server用于发送日志。
-- 无论是主库或备库,fal_server=对方,fal_client=自己
主库:
*.fal_server='HISDBDG'
*.fal_client='HISDB'
备库:
*.fal_server='HISDB'
*.fal_client='HISDBDG'

七、DB_FILE_NAME_CONVERT

主库与备库上数据文件的存放路径不一致的时候,需要定义该参数进行转换,否则standby apply后无法创建与主库一致的数据文件并报错。

格式如下:

-- 格式: 
-- 主库配置格式: *.db_file_name_convert= 备库数据文件目录,主库数据文件目录
-- 备库配置格式: *.db_file_name_convert= 主库数据文件目录,备库数据文件目录
主库:*.db_file_name_convert='/usr/local/oradata/hisdbdg/','/usr/local/oradata/hisdb/'
备库:*.db_file_name_convert='/usr/local/oradata/hisdb/','/usr/local/oradata/hisdbdg/'

七、LOG_FILE_NAME_CONVERT

DB_FILE_NAME_CONVERT类似,定义主备log文件的存放路径转换。如果主、备库的联机日志路径不一致,则需要设置log_file_name_convert参数。但如果主备库数据文件以及日志文件路径一致则不需要设置该参数。

格式如下:

-- 主库配置格式: *. log_file_name_convert=备库log目录,主库log目录
-- 备库配置格式: *. log_file_name_convert=主库log目录,备库log目录

主库:*.log_file_name_convert='/usr/local/oradata/hisdbdg/','/usr/local/oradata/hisdb/'
备库:*.log_file_name_convert='/usr/local/oradata/hisdb/','/usr/local/oradata/hisdbdg/'

七、STANDBY_FILE_MANAGEMENT

初始化参数STANDBY_FILE_MANAGEMENT作用于standby数据库 ,用来控制是否自动将主库增加表空间或数据文件的改动,传播到物理备库。该参数有两个值:

AUTO:如果该参数值设置为AUTO,则主库执行的表空间创建操作也会被传播到物理备库上执行。

MANUAL:如果设置为MANUAL或未设置任何值(默认值是MANUAL),需要手工复制新创建的数据文件到物理备库。

在主库端删除表空间时,会影响到物理备库端的数据文件和表空间,初始化参数STANDBY_FILE_MANAGEMENT的属性值设置决定了该事件是否需要DBA介入。

STANDBY_FILE_MANAGEMENT设置为AUTO时,在主库删除表空间,则备库也会自动删除相关的表空间,无需人工干预。

STANDBY_FILE_MANAGEMENT参数设置为MANUAL时,在主库删除表空间时,备库只会将表空间和数据文件从数据字典中删除,表空间涉及的物理文件仍需要手工删除。

在主库端执行数据文件重命名操作:

如果主库重命名了一个或多个数据文件,该项修改并不会自动传播到备库。即使设置了初始化参数STANDBY_FILE_MANAGEMENTAUTO也不行,要让备库的数据文件与主库保持一致,只能手工操作。

添加或删除Redo logs文件:

如果在主重置日志文件大小或增加删除日志组,如果STANDBY_FILE_MANAGEMENT参数值设置为AUTO的话,这种操作也会被传播到物理备库库。

通常建议,当在主库增加或删除Online Redo logs时,一定记得手工同步相关物理备库中的相关设置,同时也要考虑好Standby Redo logsOnline Redo logs之间的关系,即保证Standby Redo logsOnline Redo logs要至少多一组。

注意在备库端操作前务必将STANDBY_FILE_MANAGEMENT设置为MANUAL,如果物理备库的日志文件与主库路径不同的话,应该通过初始化参数LOG_FILE_NAME_CONVERT的设置,让其自动进行转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2273302.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Power BI如何连接Azure Databricks数据源?

故事背景: 近期有朋友询问,自己公司有一些项目使用了Azure Databricks用于数据存储。如何使用Power BI Desktop桌面开发软件连接Azure Databricks的数据源呢? 解决方案: 其实Power BI是提供了连接Azure Databricks数据源的选项的,只是配置…

了解RabbitMQ中的Exchange:深入解析与实践应用

在分布式系统设计中,消息队列(Message Queue)扮演着至关重要的角色,而RabbitMQ作为开源消息代理软件的佼佼者,以其高性能、高可用性和丰富的功能特性,成为了众多开发者的首选。在RabbitMQ的核心组件中&…

前端通过后端返回的数据流下载文件

后端返回文件流,下载的文件无法读取,损坏,原因是因为接口处理没有加 blob类型 downloadFile(row.fileId).then(res > { // res 即后端返回的数据流 const blob new Blob([res.data]) if (blob && blob.size 0) { this.$notify.error(内容为空,无法下载…

基于 GEE Sentinel-1 数据集提取水体

目录 1 水体提取原理 2 完整代码 3 运行结果 1 水体提取原理 水体提取是地理信息和遥感技术的关键应用之一,对于多个领域都具有重要的应用价值。它有助于更好地管理水资源,保护环境,减少灾害风险,促进可持续发展,以…

BloombergGPT: A Large Language Model for Finance——面向金融领域的大语言模型

这篇文章介绍了BloombergGPT,一个专门为金融领域设计的大语言模型(LLM)。以下是文章的主要内容总结: 背景与动机: 大语言模型(如GPT-3)在多个任务上表现出色,但尚未有针对金融领域的…

ansible-api分析(VariableManager变量)

一. 简述: ansible是一个非常强大的工具,可以支持多种类型(字符,数字,列表,字典等)的变量。除了有大量的内置变量及fact变量,也可以通过多种方式进行变量自定义 。不同方式定义的变量,优先级也不太一样,之…

2025年PMP考试最新报名通知

经PMI和中国国际人才交流基金会研究决定,中国大陆地区2025年第一期PMI认证考试定于3月15日举办。在基金会网站报名参加本次PMI认证考试的考生须认真阅读下文,知悉考试安排及注意事项,并遵守考试有关规定。 一、时间安排 (一&#…

Mysql--基础篇--数据类型(整数,浮点数,日期,枚举,二进制,空间类型等)

MySQL提供了多种数据类型,用于定义表中列的数据格式。选择合适的数据类型不仅可以提高查询性能,还能确保数据的完整性和准确性。 一、数值类型 数值类型用于存储整数、浮点数和定点数。根据精度和范围的不同,数值类型可以分为以下几类&…

1-Transformer算法解读

目录 一.RNN与Transfrmer 二.word2vec 三.自注意力机制 四.辅助向量Q/K/V 五.计算过程 六.整体架构​编辑 七.Bert 一.RNN与Transfrmer RNN(循环神经网络)和Transformer都是深度学习中用于处理序列数据的模型,但它们在结构和性能上有显著的区别。以下是它们的一些…

Java Web开发进阶——Spring Boot与Spring Data JPA

Spring Data JPA 是 Spring 提供的一种面向数据访问的持久化框架,它简化了 JPA 的实现,为开发者提供了一种快速操作数据库的方式。在结合 Spring Boot 使用时,开发者能够快速完成数据库访问层的开发。 1. 介绍Spring Data JPA 1.1 什么是Spr…

【计算机操作系统:一、绪论】

第1章 绪论 1.1 操作系统在计算机系统中的地位 1.1.1 存储程序式计算机的结构和特点 存储程序式计算机(Stored Program Computer)是现代计算机的基础,其概念源于冯诺依曼(John von Neumann)提出的模型。这种计算机架…

如何查看服务器上的MySQL/Redis等系统服务状态和列表

如果呢你知道系统服务名称,要看状态很简单: systemctl status server-name 比如 systemctl status nginxsystemctl status redis # 等 这是一个nginx的示例: 那问题是 当你不知道服务名称时该怎么办。举个例子,比如mysql在启动…

安科瑞Acrel-1000DP分布式光伏监控系统在浙江安吉成3234.465kWp分布式光伏发电项目中的应用

摘 要:分布式光伏发电站是指将光伏发电组件安装在用户的建筑物屋顶、空地或其他适合的场地上,利用太阳能进行发电的一种可再生能源利用方式,与传统的大型集中式光伏电站相比,分布式光伏发电具有更灵活的布局、更低的建设成本和更高…

探索 Vue.js 的动态样式与交互:一个有趣的样式调整应用

修改日期备注2025.1.3初版 一、前言 今天和大家分享在 Vue.js 学习过程中开发的超酷的小应用。这个应用可以让我们通过一些简单的交互元素,如复选框、下拉菜单和输入框,来动态地改变页面上元素的样式哦 让我们一起深入了解一下这个项目的实现过程&…

大数据-268 实时数仓 - ODS层 将 Kafka 中的维度表写入 DIM

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! MyBatis 更新完毕目前开始更新 Spring,一起深入浅出! 目前已经更新到了: H…

把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用

将vue项目发布成npm库文件,第三方通过npm依赖安装使用;使用最近公司接了一个项目,这个项目需要集成到第三方页面,在第三方页面点击项目名称,页面变成我们的项目页面;要求以npm库文件提供给他们;…

Kafka为什么要放弃Zookeeper

1.Kafka简介 Apache Kafka最早是由Linkedin公司开发,后来捐献给了Apack基金会。 Kafka被官方定义为分布式流式处理平台,因为具备高吞吐、可持久化、可水平扩展等特性而被广泛使用。目前Kafka具体如下功能: 消息队列,Kafka具有系统解耦、流…

【JVM】总结篇-类的加载篇之 类的加载器 和ClassLoader分析

文章目录 类的加载器ClassLoader自定义类加载器双亲委派机制概念源码分析优势劣势如何打破Tomcat 沙箱安全机制JDK9 双亲委派机制变化 类的加载器 获得当前类的ClassLoader clazz.getClassLoader() 获得当前线程上下文的ClassLoader Thread.currentThread().getContextClassLoa…

java 转义 反斜杠 Unexpected internal error near index 1

代码: String str"a\\c"; //出现异常,Unexpected internal error near index 1 //System.out.println(str.replaceAll("\\", "c"));//以下三种都正确 System.out.println(str.replace(\\, c)); System.out.println(str.r…

el-table 实现纵向多级表头

为了实现上图效果,最开始打算用el-row、el-col去实现,但发现把表头和数据分成两大列时,数据太多时会导致所在格高度变高。但由于每一格数据肯定不一样,为保持高度样式一致,就需要我们手动去获取最高格的高度之后再设置…