Oracle 11g ADG 单实例 DG Broker 配置指南

概述

DataGuard Broker能更加容易的管理和维护多个Standby Database,它能够将主库和备库按照一定的逻辑组织起来并进行集中管理,包括创建、维护和监控 Data Guard 等任务。如果有多个备库或者RAC数据库中有个多个实例,要是进行手工配置管理,就会太过于麻烦,Oracle提供了DataGuard Broker工具,可以在一台服务器上对所有数据库进行统一的配置和管理,这些配置会自动同步到各个数据库中。管理 Broker 设置可以使用 EM 企业管理系统或 DGMGRL 命令行工具。Failover和Switchover可以在DGMGRL工具中是用一条命令切换,大大简化了我们管理的过程。

环境准备
项目 主机名 IP 地址 DB 版本 DB_NAME DB_UNIQUE_NAME
主库 orcldb1 192.168.5.10 11.2.0.4 orcl orcl
备库 orcldb2 192.168.5.11 11.2.0.4 orcl orcl_stb

注意事项:

  • DB_UNIQUE_NAME 主备库不能相同。
  • DB_NAME 主备库需保持一致。
  • 主备库 DB 版本需保持一致。
  • 需要确保Data Guard配置正常。
  • 主库和备库均使用spfile。
步骤详解
一、启用 Broker
  1. 在主库和备库上启用 dg_broker_start 参数

    sql 复制代码
    -- 检查当前设置
    SQL> SHOW PARAMETER dg_broker_start;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_start                      boolean     FALSE
    
    -- 启用dg_broker_start
    SQL> ALTER SYSTEM SET dg_broker_start = TRUE;
二、配置监听器(Primary 和 Standby)
  1. 编辑 listener.ora 文件

    • 在主库和备库的 listener.ora 文件中添加 DGMGRL 静态监听:

    主库配置:

    bash 复制代码
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = orcl_DGMGRL)
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db1)
          (SID_NAME = orcl)
        )
      )

    备库配置:

    bash 复制代码
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = orcl_stb_DGMGRL)
          (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db1)
          (SID_NAME = orcl)
        )
      )
  2. 重启监听器

    bash 复制代码
    $ lsnrctl reload

注意: 如果 listener.ora 文件不配置 DGMGRL 静态监听,SWITCHOVER 将报错 ORA-12514。

三、创建和配置 DG Broker
  1. 启动 DGMGRL 命令行工具

    bash 复制代码
    $ dgmgrl sys/oracle@orcl
  2. 创建 Broker 配置

    • 创建 Configuration,名称可以自定义:

      bash 复制代码
      DGMGRL> CREATE CONFIGURATION 'orcl_dg' AS PRIMARY DATABASE IS 'orcl' CONNECT IDENTIFIER IS orcl;
      Configuration "orcl_dg" created with primary database "orcl"
  3. 添加备库

    • 添加备库到 Configuration 中:

      bash 复制代码
      DGMGRL> ADD DATABASE orcl_stb AS CONNECT IDENTIFIER IS orcl_stb MAINTAINED AS PHYSICAL;
      Database "orcl_stb" added
  4. 启用 Configuration

    bash 复制代码
    DGMGRL> ENABLE CONFIGURATION;
    Enabled.
四、检查配置和数据库状态
  1. 显示 Configuration 信息

    bash 复制代码
    DGMGRL> SHOW CONFIGURATION;
  2. 显示主库状态

    bash 复制代码
    DGMGRL> SHOW DATABASE orcl;
  3. 显示备库状态

    bash 复制代码
    DGMGRL> SHOW DATABASE orcl_stb;
五、数据库 Switchover
  1. 从主库切换到备库

    bash 复制代码
    DGMGRL> SWITCHOVER TO orcl_stb;
    Performing switchover NOW, please wait...
    New primary database "orcl_stb" is opening...
    Operation requires shutdown of instance "orcl" on database "orcl"
    Shutting down instance "orcl"...
    ORA-01109: database not open
    Database dismounted.
    ORACLE instance shut down.
    Operation requires startup of instance "orcl" on database "orcl"
    Starting instance "orcl"...
    ORACLE instance started.
    Database mounted.
    Switchover succeeded, new primary is "orcl_stb"
  2. 从备库切回主库

    bash 复制代码
    DGMGRL> SWITCHOVER TO orcl;
六、数据库 Failover
  1. 提前开启 FLASHBACK

    sql 复制代码
    SQL> ALTER DATABASE FLASHBACK ON;
    SQL> ALTER SYSTEM SET db_recovery_file_dest_size = 50G;
  2. 执行 Failover

    bash 复制代码
    DGMGRL> FAILOVER TO orcl_stb IMMEDIATE;
  3. 恢复原主库为备库

    bash 复制代码
    DGMGRL> REINSTATE DATABASE orcl;
七、Snapshot Standby
  1. 激活 Snapshot Standby

    bash 复制代码
    DGMGRL> CONVERT DATABASE orcl_stb TO SNAPSHOT STANDBY;
  2. 切回物理备库

    bash 复制代码
    DGMGRL> CONVERT DATABASE orcl_stb TO PHYSICAL STANDBY;

注意:

  • Snapshot Standby 是 Oracle 11g 的新特性,允许 Physical Standby 数据库短时间内以 Read Write 模式运行。必须是 ADG 才支持。
  • 一旦 Snapshot Standby 被激活的时间超出了 Primary 的最大负载时间,再次的本地更新操作将会产生额外的异常。
总结

通过上述步骤,成功配置 ADG 单实例环境中的 Data Guard Broker。这些步骤不仅简化了 ADG 的管理和维护工作,还提高了系统的可靠性和可用性。

相关推荐
摇滚侠3 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试3 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
2501_937767164 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
silvamux_5 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
I Am a robert girl7 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒7 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
SelectDB8 小时前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB8 小时前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析
SelectDB8 小时前
Apache Doris + Vane:让多模态数据进入业务分析
大数据·数据库·数据分析
pjj1985410 小时前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse