oracle切换broker,Oracle学习之DATAGUARD(七) 使用Broker管理DG

一、修改Broker的配置属性

1.1 使用EDIT命令你可以修改三个级别的属性:configuration, database,instanceEDIT CONFIGURATION SET PROPERTY =

EDIT DATABASE SET PROPERTY =

EDIT INSTANCE SET PROPERTY =

如果在整个primary-standby系统中实例名不是唯一的,你可以在SET PROPERTY加上ON DATABASE

1.2 修改CONFIGURATION级别的配置

1.2.1 获得配置属性

要修改配置,首先得知道CONFIGURATION级别到底包含哪些配置项,以及每个配置项的意义。

我们可以通过如下命令来查看CONFIGURATION的详细配置。DGMGRL> show configuration verbose;

Configuration - dr1

Protection Mode: MaxPerformance

Databases:

11gdg1 - Primary database

11gdg2 - Physical standby database

Properties:

FastStartFailoverThreshold      = '30'

OperationTimeout                = '30'

FastStartFailoverLagLimit       = '30'

CommunicationTimeout            = '180'

FastStartFailoverAutoReinstate  = 'TRUE'

FastStartFailoverPmyShutdown    = 'TRUE'

BystandersFollowRoleChange      = 'ALL'

Fast-Start Failover: DISABLED

Configuration Status:

SUCCESS

可以看出CONFIGURATION控制着数据库的保护模式、是否启用快速故障转移、以及还有7个属性。

FastStartFailoverThreshold:

Observer在指定时间内一直都连不通Primary数据库,就开始进行快速故障转移。

OperationTimeout:

Broker等待 health check, get monitorable property,set property操作完成的最大时间。

FastStartFailoverLagLimit:

如果standby数据库的日志应用延迟超过这个值,则不允许进行故障转移。也就是用来保护数据最多可丢失多少。

注:其他参数具体意义,请参考《Oracle Data Guard Broker 11g Release 2 (11.2)》

1.2.2 修改属性DGMGRL>  EDIT CONFIGURATION SET PROPERTY FastStartFailoverLagLimit = 20;

Property "faststartfailoverlaglimit" updated

1.3 修改database级别属性

同样,先查看database级别到底有哪些属性DGMGRL> show database verbose 11gdg1;

Database - 11gdg1

Role:            PRIMARY

Intended State:  TRANSPORT-ON

Instance(s):

dgtst

Properties:

DGConnectIdentifier             = '11gdg1'

ObserverConnectIdentifier       = ''

LogXptMode                      = 'ASYNC'

DelayMins                       = '0'

Binding                         = 'optional'

MaxFailure                      = '0'

MaxConnections                  = '1'

ReopenSecs                      = '300'

NetTimeout                      = '30'

RedoCompression                 = 'DISABLE'

LogShipping                     = 'ON'

PreferredApplyInstance          = ''

ApplyInstanceTimeout            = '0'

ApplyParallel                   = 'AUTO'

StandbyFileManagement           = 'AUTO'

ArchiveLagTarget                = '0'

LogArchiveMaxProcesses          = '4'

LogArchiveMinSucceedDest        = '1'

DbFileNameConvert               = ''

LogFileNameConvert              = ''

FastStartFailoverTarget         = ''

InconsistentProperties          = '(monitor)'

InconsistentLogXptProps         = '(monitor)'

SendQEntries                    = '(monitor)'

LogXptStatus                    = '(monitor)'

RecvQEntries                    = '(monitor)'

SidName                         = 'dgtst'

StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=11gdg1.localdomain.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=11gdg1_DGMGRL)(INSTANCE_NAME=dgtst)(SERVER=DEDICATED)))'

StandbyArchiveLocation          = 'USE_DB_RECOVERY_FILE_DEST'

AlternateLocation               = ''

LogArchiveTrace                 = '0'

LogArchiveFormat                = '%t_%s_%r.dbf'

TopWaitEvents                   = '(monitor)'

Database Status:

SUCCESS

下面看看如何修改数据库的日志传输模式DGMGRL> EDIT DATABASE 11GDG1 SET PROPERTY LogXptMode='SYNC';

Property "logxptmode" updated

二、修改数据库状态

数据库级别除了有上面列出的那么多属性值,database还有一个state的概念。有如下TRANSPORT-ON、TRANSPORT-OFF、APPLY-ON、APPLY-OFF四种。分别表示传输日志开关、应用日志开关。DGMGRL> EDIT DATABASE 11GDG1 SET STATE=TRANSPORT-OFF;

Succeeded.

经过测试,发现TRANSPORT-OFF,并没有生效。Why?(不知道是因为什么原因导致这个设置有延迟,在后续的操作中发现,该参数是有效的)

如果将从库的日志应该改为APPLY-OFF,则从库不应用日志。此功能测试成功。DGMGRL> EDIT DATABASE 11GDG2 SET STATE=APPLY-OFF;

Succeeded.

三、修改数据库的保护模式DGMGRL> SHOW CONFIGURATION;

Configuration - dr1

Protection Mode: MaxPerformance

Databases:

11gdg1 - Primary database

11gdg2 - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:

SUCCESS

目前数据库的保护模式为最大性能。

下面我们尝试将保护模式修改为最大保护和最高可用。DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;

Error: ORA-16627: operation disallowed since no standby databases would remain to support protection mode

Failed.

我们知道,最大保护和最高可以的前提条件是日志传输模式为SYNC .所以我们要先修改日志传输模式DGMGRL> EDIT DATABASE 11gdg1 SET PROPERTY LogXptMode='SYNC';

Property "logxptmode" updated

再次修改保护模式DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;

Error: ORA-16627: operation disallowed since no standby databases would remain to support protection mode

为什么还是报错呢?我们来分析一下参数LogXptMode,这个参数其实是个反向参数。配置了11gdg1数据库的LogXptMode。表示别人向11gdg1用SYNC的方式传输日志。

我们的本意是配置主库以sync的方式向备库传输日志,那么应该改的是11gdg2的配置。DGMGRL> EDIT DATABASE 11gdg2  SET PROPERTY LogXptMode='SYNC';

Property "logxptmode" updated

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;

Succeeded.

因为考虑到以后要进行故障转移,所以需要将所有的数据库的LogXptMode都设置为SYNC.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值