首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

玩过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.

2) 连接到主库

两种情况:

在10.10.10.22(主库)连接到本地

DGMGRL>CONNECT sys;

Password:******

Connected.

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 简介与简单配置到此为止,预知切换如何,请看下文分解。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180409G14QNU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券