欢迎来到福编程网,本站提供各种互联网专业知识!
您的位置:网站首页 > 数据库 > Oracle

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

发布时间:2015-12-22 作者:vijayfly 来源:转载
这篇文章主要介绍了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. DGMGRL> show configuration verbose;
  2. Configuration - dgc
  3. Protection Mode: MaxPerformance
  4. Databases:
  5. atest1 - Primary database
  6. atest2 - Physical standby database
  7. Properties:
  8. FastStartFailoverThreshold = '30'
  9. OperationTimeout = '30'
  10. FastStartFailoverLagLimit = '30'
  11. CommunicationTimeout = '180'
  12. ObserverReconnect = '0'
  13. FastStartFailoverAutoReinstate = 'TRUE'
  14. FastStartFailoverPmyShutdown = 'TRUE'
  15. BystandersFollowRoleChange = 'ALL'
  16. ObserverOverride = 'FALSE'
  17. ExternalDestination1 = ''
  18. ExternalDestination2 = ''
  19. PrimaryLostWriteAction = 'CONTINUE'
  20. Fast-Start Failover: DISABLED
  21. Configuration Status:
  22. SUCCESS

sqlplus查看:

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

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

代码
  1. DGMGRL> show database verbose 'atest2';
  2. Database - atest2
  3. Role: PHYSICAL STANDBY
  4. Intended State: APPLY-ON
  5. Transport Lag: 0 seconds (computed 1 second ago)
  6. Apply Lag: 0 seconds (computed 1 second ago)
  7. Apply Rate: 97.00 KByte/s
  8. Real Time Query: ON
  9. Instance(s):
  10. atest
  11. Properties:
  12. DGConnectIdentifier = 'atest2'
  13. ObserverConnectIdentifier = ''
  14. LogXptMode = 'sync'
  15. DelayMins = '0'
  16. Binding = 'optional'
  17. MaxFailure = '0'
  18. MaxConnections = '1'
  19. ReopenSecs = '300'
  20. NetTimeout = '30'
  21. RedoCompression = 'DISABLE'
  22. LogShipping = 'ON'
  23. PreferredApplyInstance = ''
  24. ApplyInstanceTimeout = '0'
  25. ApplyParallel = 'AUTO'
  26. StandbyFileManagement = 'AUTO'
  27. ArchiveLagTarget = '0'
  28. LogArchiveMaxProcesses = '4'
  29. LogArchiveMinSucceedDest = '1'
  30. DbFileNameConvert = ''
  31. LogFileNameConvert = ''
  32. FastStartFailoverTarget = ''
  33. InconsistentProperties = '(monitor)'
  34. InconsistentLogXptProps = '(monitor)'
  35. SendQEntries = '(monitor)'
  36. LogXptStatus = '(monitor)'
  37. RecvQEntries = '(monitor)'
  38. ApplyLagThreshold = '0'
  39. TransportLagThreshold = '0'
  40. TransportDisconnectedThreshold = '30'
  41. SidName = 'atest'
  42. StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vijay02.database.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=atest2_DGMGRL)(INSTANCE_NAME=atest)(SERVER=DEDICATED)))'
  43. StandbyArchiveLocation = '/u01/app/oracle/oradata/ATEST/archivelog'
  44. AlternateLocation = ''
  45. LogArchiveTrace = '0'
  46. LogArchiveFormat = '%t_%s_%r.dbf'
  47. TopWaitEvents = '(monitor)'
  48. Database Status:
  49. SUCCESS

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

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

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

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

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

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

相关推荐