百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

一步一步配置DataGuard Broker(dataguard not allowed)

sinye56 2024-10-10 10:47 3 浏览 0 评论

一、DataGuard Broker介绍

DataGuard Broker能更加容易的管理和维护多个Standby Database。如果有多个备库或者RAC数据库中有个多个实例,如果进行手工配置管理,就会太过于麻烦,Oracle提供了DataGuard Broker工具,可以在一台服务器上对所有数据库进行统一的配置和管理,这些配置会自动同步到各个数据库中。Failover和Switchover可以在DGMGRL工具中是用一条命令切换,大大简化了我们管理的过程。

简单介绍一下DataGuard Broker的工作原理:Oracle DataGuard Broker分为Client Side和Server Side。

  • Client Side可以通过EM和DGMGRL两种工具对服务端进行管理和维护。
  • Server side会有一个配置文件和一个后台进程叫Data Guard Broker monitor process(DMON)。

DMON:它是一个用来管理Broker的后台进程,这个进程负责本地数据库与standby数据库的DMON进程进行通讯,当主库上接收到一个请求的时候,它会协调其他数据库上的DMON进程处理相应的请求,比如switchover。同时会更新本地系统中的配置文件,并与standby数据库上的DMON进程进行通信,更新Standby上的配置文件,DMON进程如下图:

配置文件:配置参数控制数据库状态、监控健康状况并提供其他操作特性。

二、DG_broker搭建(RAC→RAC)

1.主、备库需把log_archive_dest_2置为空在搭建DGbroker。

alter system set log_archive_dest_2='' scope=both sid='*';

2.DB_BROKER_CONFIG_FILEn参数用于指定DataGuard配置文件的路径,DG_BROKER_START参数设置实例启动的时候是否自动启动Broker。特别注意一点:RAC中需要把Broker配置文件放入ASM中。

主库ASMCAmkdir +fradg/orcl/DATAGUARDCONFIGmkdir +datadg/orcl/DATAGUARDCONFIG
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='+datadg/orcl/DATAGUARDCONFIG/dgb_config1.ora' SCOPE=BOTH sid='*';
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='+fradg/orcl/DATAGUARDCONFIG/dgb_config2.ora' SCOPE=BOTH sid='*';
alter system set dg_broker_start=false scope=both sid='*';


备库ASMCAmkdir +fradg/orcladg/DATAGUARDCONFIGmkdir +datadg/orcladg/DATAGUARDCONFIG
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='+datadg/orcladg/DATAGUARDCONFIG/dgb_config1.ora' SCOPE=BOTH sid='*';
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='+fradg/orcladg/DATAGUARDCONFIG/dgb_config2.ora' SCOPE=BOTH sid='*';

alter system set dg_broker_start=true scope=both sid='*';

设置完上面的参数后,我们还需要修改监听listener.ora文件.我们必须添加一个静态注册的service_name为db_unique_name_DGMGRL.db_domain,这个service_name会在DGMGRL重启数据库的时候用到.通过DGMGRL重启数据库时DMON进程会先将数据库关闭,然后DGMGRL在通过静态监听中的service_name连接到数据库,发送启动的命令。

3.主库添加静态监听

  • 一节点
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl_DGMGRL)(SID_NAME=orcl1)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))
  • 二节点
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl_DGMGRL)(SID_NAME=orcl2)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1))

4.备库添加静态监听

  • 一节点
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcladg_DGMGRL)(SID_NAME=orcladg1)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))
  • 二节点
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcladg_DGMGRL)(SID_NAME=orcladg2)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))

5.添加完成后依次reload监听

lsnrctl reload

reload完成后依次监听状态,查看对应服务是否注册在监听中

6.四节点Oracle用户添加tnsnames.ora

orcldb_DGMGRL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcldb_DGMGRL)
    )
  )

orcldbadg_DGMGRL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcldbadg_DGMGRL)
   )
  )

7.主库一节点配置Broker

dgmgrl sys/xxx
CREATE CONFIGURATION 'orcl_broker'(broker的名字随意起) AS PRIMARY DATABASE IS 'orcl'(主库的db_unique_name) CONNECT IDENTIFIER IS 'orcl_DGMGRL'(连接主库的service_name);

add database 'orcladg'(备库的db_unique_name) as connect identifier is 'orcladg_DGMGRL'(连接备库的service_name) maintained as physical;

enable configuration;开启broker

show configuration;检查broker配置   

switchover to xxx;主备切换

参数说明:orcl_broker是配置的名称,这里可以随便填PRIMARY DATABASE IS ‘orcl’ ,这里的orcl是指Database的db_unique_name,而connect identifier is ‘orcl_DGMGRL’这里的orcl_DGMGRL是指tnsname.ora连接到主库的net service name。

add database ‘orcladg’ ,这里的orcladg2是指database的db_unique_name,而AS CONNECT IDENTIFIER IS orcladg_DGMGRL 这里的orcladg_DGMGRL是指tnsname.ora连接到standby database的net service name。

8.常用命令:

show configuration;
show database orcl;
show database orcladg;
show database verbose orcl;
show database verbose orcladg;
show instance verbose orcl1 on database orcl;
show instance verbose orcl2 on database orcl;
show instance verbose orcladg1 on database orcladg;
show instance verbose orcladg2 on database orcladg;

墨天轮原文链接:https://www.modb.pro/db/113953?sjhy(复制到浏览器或者点击一步一步配置DataGuard Broker - 墨天轮立即查看)

关于作者

张鹏远,云和恩墨西区技术顾问,Oracle 11g OCP。拥有OBCA、OGCA证书;热衷于技术钻研,对于Oracle、Mysql、Postgres有所了解。致力于将积累的技术与行业实践进行分享!健身狂热分子;吃喝达人。

END

相关推荐

CTO偷偷传我的系统性能优化十大绝招(万字干货)

上篇引言:取与舍软件设计开发某种意义上是“取”与“舍”的艺术。关于性能方面,就像建筑设计成抗震9度需要额外的成本一样,高性能软件系统也意味着更高的实现成本,有时候与其他质量属性甚至会冲突,比如安全性、...

提升效率!VMware虚拟机性能优化十大实用技巧

我40岁,干跨境婚恋中介的。为服务各国用户,常得弄英语、日语、俄语系统环境,VMware虚拟机帮了不少忙。用久了发现优化下性能,效率能更高。今儿就来聊聊优化技巧和同类软件。一、VMware虚拟...

低延迟场景下的性能优化实践

本文摘录自「全球C++及系统软件技术大会」ScottMeyers曾说到过,如果你不在乎性能,为什么要在C++这里,而不去隔壁的Pythonroom呢?今天我们就从“低延迟的概述”、“低延迟系...

Linux性能调优之内存负载调优的一些笔记

写在前面整理一些Linux内存调优的笔记,分享给小伙伴博文没有涉及的Demo,理论方法偏多,可以用作内存调优入门博文内容涉及:Linux内存管理的基本理论寻找内存泄露的进程内存交换空间调优不同方式的...

优化性能套路:带你战胜这只后段程序员的拦路虎

来源|极客时间《卖桃者说》作者|池建强编辑|成敏你好,这里是卖桃者说。今天给大家推荐一篇文章,来自倪朋飞老师的专栏《Linux性能优化实战》,文章主要讲的是优化性能的套路,这几乎是每个后端程序员...

SK海力士CXL优化解决方案已成功搭载于Linux:带宽提升30%,性能提升12%以上

SK海力士宣布,已将用于优化CXL(ComputeExpressLink)存储器运行的自研软件异构存储器软件开发套件(HMSDK)中主要功能成功搭载于全球最大的开源操作系统Linux上,不但提升了...

Linux内核优化:提升系统性能的秘诀

Linux内核优化:提升系统性能的艺术在深入Linux内核优化的世界之前,让我们先来理解一下内核优化的重要性。Linux内核是操作系统的核心,负责管理系统资源和控制硬件。一个经过精心优化的内核可以显著...

Linux系统性能优化:七个实战经验

Linux系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。Linux系统管理员可能经常会遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个web服务,经常出现网页无法打开、打开速...

腾讯面试:linux内存性能优化总结

【1】内存映射Linux内核给每个进程都提供了一个独立且连续的虚拟地址空间,以便进程可以方便地访问虚拟内存;虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同字长的处理器,地址空间的范围也不同...

Linux文件系统性能调优《参数优化详解》

由于各种的I/O负载情形各异,Linux系统中文件系统的缺省配置一般来说都比较中庸,强调普遍适用性。然而在特定应用下,这种配置往往在I/O性能方面不能达到最优。因此,如果应用对I/O性能要求较高,除...

Nginx 性能优化(吐血总结)

一、性能优化考虑点当我需要进行性能优化时,说明我们服务器无法满足日益增长的业务。性能优化是一个比较大的课题,需要从以下几个方面进行探讨当前系统结构瓶颈了解业务模式性能与安全1、当前系统结构瓶颈首先需要...

Linux问题分析与性能优化

排查顺序整体情况:top/htop/atop命令查看进程/线程、CPU、内存使用情况,CPU使用情况;dstat2查看CPU、磁盘IO、网络IO、换页、中断、切换,系统I/O状态;vmstat2查...

大神级产品:手机装 Linux 运行 Docker 如此简单

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:灵昱Termux作为一个强大的Android终端模拟器,能够运行多种Linux环境。然而,直接在Termux上运行Docker并不可行,需要...

新手必须掌握的Linux命令

Shell就是终端程序的统称,它充当了人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是...

Linux 系统常用的 30 个系统环境变量全解析

在Linux系统中,环境变量起着至关重要的作用,它们犹如隐藏在系统背后的“魔法指令”,掌控着诸多程序的运行路径、配置信息等关键要素。尤其在shell脚本编写时,巧妙运用环境变量,能让脚本如虎...

取消回复欢迎 发表评论: