织梦CMS - 轻松建站从此开始!

abg欧博官网|登陆|游戏|

网易乐得Oracle DG Broker 系列:DGB 初探

时间:2025-01-10 07:21来源: 作者:admin 点击: 33 次
玩过Oracle的同学都知道,手动来一次数据库主备切换,再等应用修改连接数据库的信息后重启,最终等到业务确认OK,怎么也得半个小时吧,要是白天切换还好(呵呵,你觉得老板会同意么?),大晚上呢?困不困?偶尔一次还好,要是业务多,增长快,遇到下面的情况,怎么办?难道说只有一种结局了么?天无绝人之路,幸亏

玩过Oracle的同学都知道,手动来一次数据库主备切换,再等应用修改连接数据库的信息后重启,最终等到业务确认OK,怎么也得半个小时吧,要是白天切换还好(呵呵,你觉得老板会同意么?),大晚上呢?困不困?偶尔一次还好,要是业务多,增长快,遇到下面的情况,怎么办?




难道说只有一种结局了么?




天无绝人之路,幸亏有DG Broker,我等DB狗才得以幸免于难,今后我们将分系列,从DG Broker的简单介绍和配置,一直讲到如何在半夜主库挂掉时,也可以安心呼呼睡大觉……



一、DG Broker简介


DG Broker 是一个分布式管理框架,可将DG系统中的主库和所有备库当做一个整体来实现集中自动化管理DG的创建、维护和监控。


1. DGB 管理模型

主要包括:

configuration(所有数据库配置的集合)、database 和instance


2. DGB组件



Client Side:我们使用DGMGRL命令行工具来管理DGB

Server Side:DG Monitor包括一组进程(主要是DMON)和配置文件。


Data Guard Monitor (DMON) Process

DMON进程与本地数据库和其他数据库的DMON进程进行交互,执行请求。DMON进程还负责监控代理配置的健康和确保每个数据库都和配置保持一致。



配置文件:

sys@test> show parameter dg_broker_config_file

NAME TYPE VALUE

------------------------------------

dg_broker_config_file1 string home/oracle/app/product/11.2.

0/db_1/dbs/dr1test_std.dat

dg_broker_config_file2 string home/oracle/app/product/11.2.

0/db_1/dbs/dr2test_std.dat


二、DG B测试环境


OS:linux Redhat 7

oracle:11.2.0.4

10.10.10.22 主库 DB_UNIQUE_NAME test_pri

10.10.10.21 物理备库 DB_UNIQUE_NAME test_std

10.10.10.30 逻辑备库 DB_UNIQUE_NAME test_his

DG broker  配置名称为 test

sys密码:123456


三、DGB简单配置


1. 前提条件

1) 主备库必须已经存在(官方文档废话,不存在我怎么切?)

2) DG_BROKER_START参数

所有配置中的数据库的 DG_BROKER_START 参数设置为true。

主库和备库都执行

> alter system set DG_BROKER_START=true;

System altered.

>show parameter DG_BROKER_START

NAME TYPE VALUE

------------------------------------

dg_broker_start boolean TRUE

3) 必须使用server parameter file(SPFILE)文件启动数据库。

因为DGB启动的时候需要从spfile中导入参数值到DGB的配置文件中。

CREATE SPFILE FROM PFILE='pfilename';

未使用spfile的实例,就重启使用spfile。

启动实例后,设置DG_BROKER_START=TRUE。


查看是否使用spfile

> show parameter spfile;

NAME TYPE VALUE

------------------------------------

spfile string home/oracle/app/product/11.2.

0/db_1/dbs/spfiletest.ora


或者


> select distinct ISSPECIFIED from v$spparameter;

ISSPEC

------

TRUE

FALSE


4) 连接串

所有主备库都应配置tnsname.ora中的连接串,保证自己可以tnsping通自己并且任意两个库都可以互通。


2. 创建配置文件、添加物理备库

1) 调用DGMGRL

-bash-4.2$ dgmgrl

DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production

Copyright (c) 2000, 2009, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.

DGMGRL>


2) 连接到主库

两种情况:

在10.10.10.22(主库)连接到本地

DGMGRL>CONNECT sys;

Password:******

Connected.

DGMGRL>

CONNECT sys;


默认连接到本地,连接远程加@连接串

例如在10.10.10.22连接到远程备库10.10.10.21

DGMGRL> CONNECT sys@test_std;

Password:******

Connected.


3) 创建代理配置文件、添加数据库。

创建代理配置文件,首先定义配置包含主库的概要文件,主备库的概要文件名称的设置和DB_UNIQUE_NAME相同。


主库:

> show parameter db_unique_name

NAME TYPE VALUE

------------------------------------ 

db_unique_name string TEST_PRI


备库:

> show parameter db_unique_name

NAME TYPE VALUE

------------------------------------ 

db_unique_name string test_std


创建配置文件:

DGMGRL>CREATE CONFIGURATION 'test' AS PRIMARY DATABASE IS 'TEST_PRI' CONNECT IDENTIFIER IS TEST_PRI;

Configuration "test" created with primary database "TEST_PRI"


4) 查看配置信息

DGMGRL> SHOW CONFIGURATION;


Configuration - test


Protection Mode: MaxPerformance

Databases:

TEST_PRI - Primary database


Fast-Start Failover: DISABLED


Configuration Status:

DISABLED


5) 在配置文件中添加备库。


DGMGRL>ADD DATABASE test_std AS CONNECT IDENTIFIER IS test_std;

Database "test_std" added


DGMGRL> show configuration;

Configuration - test

Protection Mode: MaxPerformance

Databases:

TEST_PRI - Primary database

test_std - Physical standby database


Fast-Start Failover: DISABLED


Configuration Status:

DISABLED


添加历史库(逻辑备库):

DGMGRL> ADD DATABASE test_HIS AS CONNECT IDENTIFIER IS test_HIS;

Database "test_his" added


这一步请确认可以在主库上以sys用户远程登录到备库。否则报:

Error: ORA-01017: invalid username/password; logon denied


添加逻辑备库是和物理备库同样的步骤,DGB会自己识别备库是物理还是逻辑。


3. 启用配置文件和数据库

1) 启用配置中所有数据库,用如下命令:

DGMGRL>ENABLE CONFIGURATION;


过程如下:

先查看,状态为disabled

DGMGRL> show configuration;


Configuration - test


Protection Mode: MaxPerformance

Databases:

TEST_PRI - Primary database

test_std - Physical standby database


Fast-Start Failover: DISABLED


Configuration Status:

DISABLED


启用:

DGMGRL> enable configuration;

Enabled.


再确认状态:为success


DGMGRL> show configuration;


Configuration - test


Protection Mode: MaxPerformance

Databases:

TEST_PRI - Primary database

test_std - Physical standby database


Fast-Start Failover: DISABLED


Configuration Status:

SUCCESS



2) 启用数据库

这个步骤不是必须的,除非之前用DISABLE DATABASE禁用过备库。通常,启用配置同样会启用备库。

启用备库:

DGMGRL> ENABLE DATABASE test_std;

Enabled.

确认:

DGMGRL> show database test_std;


Database - test_std


Role: PHYSICAL STANDBY

Intended State: APPLY-ON

Transport Lag: 0 seconds (computed 0 seconds ago)

Apply Lag: 0 seconds (computed 0 seconds ago)

Apply Rate: 16.00 KByte/s

Real Time Query: ON

Instance(s):

test


Database Status:

SUCCESS



DG Broker 简介与简单配置到此为止,预知切换如何,请看下文分解。


往期精彩文章

__________________________

网易中间件Cetus开源啦

春节大放送|MGR开篇

连接cetus中间件Hang住怎么办

MySQL5.7 XA事务丢失

GTID真的来了

MySQL统计信息简介

网易北京研发中心DBA招募令

DBA女神讲解区块链原理


网易乐得DBA组负责网易乐得电商、网易邮箱、网易技术部数据库日常运维

负责数据库私有云平台的开发和维护

负责数据库及数据库中间件的开发和测试等

分享最前沿实用数据库干货

关注网易乐得DBA

精深数据库神功


(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-07-02 05:07 最后登录:2025-07-02 05:07
栏目列表
推荐内容