当前位置: 首页 > article >正文

Oracle Dataguard 需要配置的参数详解

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.kler.cn/a/469891.html

相关文章:

  • 深度学习中多个损失怎么平衡?
  • Flutter鸿蒙化 在鸿蒙应用中添加Flutter页面
  • 云手机 —— 手机矩阵的 “超级外挂
  • go如何从入门进阶到高级
  • 安卓漏洞学习(十六):unicorn在逆向中的使用
  • 51单片机(二)中断系统与外部中断实验
  • amis系列开发
  • 位向量系统函数
  • [CTF/网络安全] 攻防世界 ics-06 解题详析
  • 【.net core】微信支付相关问题解决(持续更新)
  • Linux终端输入删除键backspace显示^H,输入上下左右键显示^A^B^C^D原理以及详细解决办法!
  • 大数据入门
  • 西门子1200 ModbusTCP通信(服务器)
  • 笔记本如何录屏幕视频和声音?快速入门的两种方法
  • Python批量修改所有文件后缀
  • maven中<dependencyManagement>与<dependencies>两个标签的区别
  • 十四、Vue 混入(Mixins)详解
  • 谷云科技iPaaS V7.0+企业级AI Agent产品全新发布
  • Web网页制作之JavaScript的应用
  • 解决在VS2019/2022中编译c++项目报错fatal error C1189: #error : “No Target Architecture“
  • python 操作xml文件
  • 5G工业路由器品牌,5G赋能,重塑工业路由器新标杆
  • LabVIEW项目如何选择数据库
  • 【shell编程】报错信息:Redirection Error(包含7种解决方法)
  • 【记录】Angr|Angr 的 call_state 是怎么保证不同架构的函数的参数正常传递进去的?
  • 古玩玉器交易系统|Java|SSM|VUE| 前后端分离