gpt4 book ai didi

Oracle数据库 DGbroker三种保护模式的切换

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Oracle数据库 DGbroker三种保护模式的切换由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1.三种保护模式 。

  – Maximum protection 。

在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才算事务完成。如果从库宕机或者网络出现问题,主从库不能通讯,主库也立即宕机。在这种方式下,具有最高的保护等级。但是这种模式对主库性能影响很大,要求高速的网络连接.

  – Maximum availability 。

在Maximum availability模式下,如果和从库的连接正常,运行方式等同Maximum protection模式,事务也是主从库同时提交。如果从库和主库失去联系,则主库自动切换到Maximum performance模式下运行,保证主库具有最大的可用性.

  – Maximum performance 。

 在Maximum performance,主库把归档的 archived log通过arch进程传递给从库,在这种方式下,主库运行性能最高,但是不能保证数据不丢失,且丢失的数据受redo log的大小影响。在redo log过大的情况下,可能一天都没有归档一个日志,可以通过手工切换日志的方式来减小数据的丢失.

2.模式切换(Maximum performance切换至Maximum availability) 。

  a.查看保护的模式 。

     DGbroker查看:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DGMGRL> show configuration verbose;
Configuration - dgc
  Protection Mode: MaxPerformance
  Databases:
  atest1 - Primary database
  atest2 - Physical standby database
  Properties:
  FastStartFailoverThreshold  = '30'
  OperationTimeout    = '30'
  FastStartFailoverLagLimit  = '30'
  CommunicationTimeout   = '180'
  ObserverReconnect    = '0'
  FastStartFailoverAutoReinstate = 'TRUE'
  FastStartFailoverPmyShutdown = 'TRUE'
  BystandersFollowRoleChange  = 'ALL'
  ObserverOverride    = 'FALSE'
  ExternalDestination1   = ''
  ExternalDestination2   = ''
  PrimaryLostWriteAction   = 'CONTINUE'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

     sqlplus查看:

?
1
2
3
4
SQL> select database_role,protection_mode,protection_level from v$ database ;
DATABASE_ROLE  PROTECTION_MODE  PROTECTION_LEVEL
---------------- -------------------- --------------------
PRIMARY  MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

  b.查看备库的日志传输模式(参数LogXptMode(sync:同步传输/async:异步传输)) 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
DGMGRL> show database verbose 'atest2' ;
Database - atest2
  Role:   PHYSICAL STANDBY
  Intended State: APPLY- ON
  Transport Lag: 0 seconds (computed 1 second ago)
  Apply Lag:  0 seconds (computed 1 second ago)
  Apply Rate:  97.00 KByte/s
  Real Time Query: ON
  Instance(s):
  atest
  Properties:
  DGConnectIdentifier    = 'atest2'
  ObserverConnectIdentifier  = ''
  LogXptMode      = 'sync'
  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)'
  ApplyLagThreshold    = '0'
  TransportLagThreshold   = '0'
  TransportDisconnectedThreshold = '30'
  SidName       = 'atest'
  StaticConnectIdentifier   = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vijay02.database.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=atest2_DGMGRL)(INSTANCE_NAME=atest)(SERVER=DEDICATED)))'
  StandbyArchiveLocation   = '/u01/app/oracle/oradata/ATEST/archivelog'
  AlternateLocation    = ''
  LogArchiveTrace     = '0'
  LogArchiveFormat    = '%t_%s_%r.dbf'
  TopWaitEvents     = '(monitor)'
Database Status:
SUCCESS

  c.如果LogXptMode的值为async,就要将其修改为sync 。

?
1
2
DGMGRL> edit database atest1 set property logxptmode=sync;
Property "logxptmode" updated

  d.修改完之后再次确认LogXptMode的值,如步骤b 。

  e.切换模式(如果切换失败,则再次去确认备库LogXptMode的值) 。

?
1
2
DGMGRL> edit configuration set protection mode as maxavailability;
Succeeded.

  f. 确认数据库的的保护模式,如步骤a 。

  g.需要注意的是,步骤c中修改的sync是备库的值,切记! 。

 3.个人小结:

  a.三种模式在可以在DGbroker中自由切换(使用步骤2的方式)(在测试库中),正常情况下,数据库能迅速反应过来(查看保护模式的时候).

  b.使用Maximum performance的时候,参数(备库)LogXptMode设置为async就好/ 。

  c.使用Maximum protection或者Maximum availability的时候,参数(备库)LogXptMode要设置为sync.

  d.(经测试)使用Maximum protection时,当备库出现异常(如网络问题,数据库宕机),主库会挂起(告警日志会报如下错误),当备库恢复正常之后,主库也会恢复.

LGWR: Error 1034 attaching to RFS for reconnect 。

  e.使用Maximum protection时,在当备库出现异常的情况下,当主库挂起时,(主库)可以强制切换到 Maximum performance,但当重新切回Maximum protection(在备库恢复时),主库需重启.

?
1
2
3
4
5
6
7
8
9
10
DGMGRL> edit configuration set protection mode as maxprotection;
Operation requires shutdown of instance "atest" on database "atest1"
Shutting down instance "atest" ...
Unable to connect to database
ORA-12545: Connect failed because target host or object does not exist
Failed.
Warning: You are no longer connected to ORACLE.
Please complete the following steps to finish the operation:
  shut down instance "atest" of database "atest1"
  start up instance "atest" of database "atest1"

以上内容是小编给大家分享的Oracle数据库 DGbroker三种保护模式的切换的相关内容,希望大家喜欢,同时也感谢大家一直以来对我网站的支持与厚爱.

最后此篇关于Oracle数据库 DGbroker三种保护模式的切换的文章就讲到这里了,如果你想了解更多关于Oracle数据库 DGbroker三种保护模式的切换的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com