好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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三种保护模式的切换的详细内容...

  阅读:33次