DataGuard 主要参数配置详解

devtools/2024/11/29 4:58:45/
1. 基本概念
  • DB_NAME:主备各节点实例使用相同的 db_name。推荐与 service_name 一致。
  • DB_UNIQUE_NAME:主备端数据库的唯一名称,设定后不可再更改。注意,如果主备 db_unique_name 不一样,需要与 LOG_ARCHIVE_CONFIG 配合使用。
  • LOG_ARCHIVE_CONFIG:列出主备库上的 DB_UNIQUE_NAME 参数。默认情况下,定义该参数能确保主备库数据库能够互相识别对方。
2. 参数配置表
参数名主站点备站点说明
DB_NAME*.DB_NAME='DB'*.DB_NAME='DB'主备各节点实例使用相同的 db_name,推荐与 service_name 一致。
DB_UNIQUE_NAME*.db_unique_name='Primary'*.db_unique_name='Standby'主备端数据库的唯一名字,设定后不可再更改。
LOG_ARCHIVE_CONFIG*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(Primary,Standby)'*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(Primary,Standby)'列出主备库上的 DB_UNIQUE_NAME 参数。
3. LOG_ARCHIVE_DEST_n 参数
  • LOG_ARCHIVE_DEST_1:本地归档路径。格式如下:
    • 主站点*.LOG_ARCHIVE_DEST_1='LOCATION=/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)'
    • 备站点*.LOG_ARCHIVE_DEST_1='LOCATION=/stdby/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)'
  • LOG_ARCHIVE_DEST_2:仅当数据库角色为 primary 时生效,指定 primary 归档 redo log 到 standby 数据库上。格式如下:
    • 主站点*.LOG_ARCHIVE_DEST_2='SERVICE=DR2 lgwr async VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE)'
    • 备站点(切换后生效):*.LOG_ARCHIVE_DEST_2='SERVICE=DR1 lgwr async VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE)'
  • LOG_ARCHIVE_DEST_3:仅当数据库角色为 standby 时生效,定义 primary 数据库的日志写到 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)'
  • LOG_ARCHIVE_DEST_STATE_n:设置为 ENABLE,激活 log_archive_dest_n 定义的属性。
4. FAL_SERVER 和 FAL_CLIENT
  • FAL_SERVER和FAL_CLIENT:处理归档裂缝(Archive Gap)。当 Primary Database的某些日志没有成功发送到Standby Database时,发生归档裂缝。配置如下:
    • 主站点*.fal_server='DR2'*.fal_client='DR1'
    • 备站点*.fal_server='DR1'*.fal_client='DR2'
5. DB_FILE_NAME_CONVERT 和 LOG_FILE_NAME_CONVERT
  • DB_FILE_NAME_CONVERT:主备盘组或数据文件存放路径不一致时,需要定义该参数进行转换。格式如下:
    • 主站点.db_file_name_convert='+DATAGRP/db/datafile/','+DG1/db/datafile/'
    • 备站点.db_file_name_convert='+DG1/db/datafile/','+DATAGRP/db/datafile/'
  • LOG_FILE_NAME_CONVERT:类似 DB_FILE_NAME_CONVERT,定义主备 log 文件的存放路径转换。
6. STANDBY_FILE_MANAGEMENT
  • STANDBY_FILE_MANAGEMENT:控制是否自动将Primary数据库增加表空间或数据文件的改动传播到物理

    Standby数据库。有两个值:

    • AUTO:自动传播。
    • MANUAL:手动复制新创建的数据文件到 Standby 服务器。
7. 其他注意事项
  • 跨 OPEN RESETLOGS 的应用:在某些情况下,Primary 数据库RESETLOGS 方式打开后,不会影响 Data Guard 的配置,Standby 数据库会自动应用 OPEN RESETLOGS 的操作。
  • 添加或删除 Redo Logs:通常建议在 Primary 数据库增加或删除 Online Redo Logs 时,手工同步相关物理 Standby 数据库中的设置,并保证 Standby Redo LogsOnline Redo Logs 至少多一组。
8. 示例命令
  • 创建新的 Standby Redo Log 组

     ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/u01/app/oracle/oradata/orcl/std_redo04.log') size 500M;ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/u01/app/oracle/oradata/orcl/std_redo05.log') size 500M;ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/u01/app/oracle/oradata/orcl/std_redo06.log') size 500M;
    
  • 切换当前日志到新的日志组

    ALTER SYSTEM SWITCH LOGFILE;
    
  • 删除旧的日志组

    ALTER DATABASE DROP LOGFILE GROUP 1;
    
  • 清空重做日志组

    ALTER DATABASE CLEAR LOGFILE GROUP 3;
    
  • 备份当前最新的控制文件

    ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;
    

通过以上详细的参数配置和示例命令,可以有效地管理和配置 Oracle Data Guard 环境,确保高可用性和数据保护。


http://www.ppmy.cn/devtools/137834.html

相关文章

ffmpeg.js视频播放(转换)

chrome 临时设置SharedArrayBuffer "C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-featuresSharedArrayBuffer 引用的js及相关文件 ffmpeg.min.js ffmpeg.min.js.map ffmpeg-core.js ffmpeg-core.wasm ffmpeg-core.worker.js 以上几个现…

网络安全期末复习

第1章 网络安全概括 (1)用户模式切换到系统配置模式(enable)。 (2)显示当前位置的设置信息,很方便了解系统设置(show running-config)。 (3)显…

C++ 【异步日志模块和std::cout << 一样使用习惯替代性好】 使用示例,后续加上远程日志

简单 易用 使用示例 CLogSystem::Instance().SetLogLevel( E_LOG_LEVEL::LOG_LEVEL_INFO | E_LOG_LEVEL::LOG_LEVEL_DEBUG | E_LOG_LEVEL::LOG_LEVEL_DUMP );CLogSystem::Instance().SetFileInfo(true, "./log.txt");LogDebug() << 12;LogInfo() << &qu…

一分钟食用前端测试框架Jest

安装 其实食用Jest是很简单的,我们只需要安装Jest即可 npm install --save-dev jestyarn add --dev jestpnpm add --save-dev jest ESmodule 本身来说,Jest是不支持Esmodule的,他支持CommonJS,我们需要Babel改一下 npm i --save-dev babel-jest babel/core babel/preset-env …

【八股文】小米

文章目录 一、vector 和 list 的区别&#xff1f;二、include 双引号和尖括号的区别&#xff1f;三、set 的底层数据结构&#xff1f;四、set 和 multiset 的区别&#xff1f;五、map 和 unordered_map 的区别&#xff1f;六、虚函数和纯虚函数的区别&#xff1f;七、extern C …

SpringBoot源码-spring boot启动入口ruan方法主线分析(一)

一、SpringBoot启动的入口 1.当我们启动一个SpringBoot项目的时候&#xff0c;入口程序就是main方法&#xff0c;而在main方法中就执行了一个run方法。 SpringBootApplication public class StartApp {public static void main(String[] args) {// testSpringApplication.ru…

python excel接口自动化测试框架!

今天采用Excel继续写一个接口自动化测试框架。 设计流程图 这张图是我的excel接口测试框架的一些设计思路。 首先读取excel文件&#xff0c;得到测试信息&#xff0c;然后通过封装的requests方法&#xff0c;用unittest进行测试。 其中&#xff0c;接口关联的参数通过正则进…

c++ 主函数里的return 0写不写的区别是什么?

在 C 中&#xff0c;main 函数是程序的入口点。main 函数的标准定义如下&#xff1a; int main() {// ... 代码 ... } 或者可以带参数&#xff1a; int main(int argc, char* argv[]) {// ... 代码 ... } main 函数的返回类型是 int&#xff0c;这意味着它应该返回一个整数…