$title =

Modos de Proteção no Data Guard

;

$conteúdo = [

Nesse artigo irei explicar um pouco o funcionamento de cada modo de proteção no Data Guard, apesar de ser muito mais comum o modo de MaxPerformance, saber das outras possibilidades também pode ser útil em casos específicos, então bora lá.

Para começar, irei resumir um pouco como funciona cada modo de proteção:

MaxPerformance

  • É o modo de proteção default
  • Oferece o mais alto nível possível de proteção de dados sem afetar o desempenho do banco de dados primário
  • Transações são confirmadas assim que os dados de redo necessários para recuperar essa transação são escritos no online redo log local.
  • Os dados de redo do banco primário também são escritos para todos os bancos standby ASSYNC

MaxAvailability

  • Esse modo de proteção providencia o maior nível de proteção de dados possível sem comprometer a disponibilidade do banco de dados primário
  • Assim, como no modo de proteção máxima, uma transação não é confirmada até que o redo necessário para recuperar essa transação seja escrito no online redo log local e em pelo menos um standby redo log remoto.
  • Nesse modo de proteção, o banco de dados primário não é desligado se uma falha impedir que ele escreva seu fluxo de redo em um standby redo log remoto. Em vez disso, o banco de dados opera em modo não sincronizado até que a falha seja corrigida e todas as lacunas nos arquivos de redo log sejam resolvidas.

MaxProtection

  • Esse modo de proteção garante que não haja perda de dados caso o banco de dados primário venha a falhar
  • Nele os dados de redo necessários para recuperar cada transação devem ser escritos tanto no online redo log local quanto no standby redo log
  • Nesse modo, para garantir que não haja perda de dados, o banco de dados primário é desligado se uma falha impedir que ele escreva seu fluxo de redo em pelo menos um  standby redo log remoto

Agora, após explicar um pouco dos modos de proteção, vou demonstrar como podem ser feitas as alterações entre eles.

No exemplo abaixo tenho o meu banco primário no modo de Máxima Performance

DGMGRL> show configuration verbose;
Configuration - dg
Protection Mode: MaxPerformance
Members:
orcl - Primary database
orcldg - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'orcl_CFG'
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS
DGMGRL>

É importante dizer que eu não posso pular fases durante a alteração do modo de proteção, no caso, se eu tentar mudar de MaxPerformance para MaxProtection ele me retornará um erro pois ele necessitará de passar pelo modo MaxAvailability antes.

DGMGRL> edit configuration set protection mode as maxprotection;
Error: ORA-16651: upgrade to maximum protection mode not possible
Failed.
DGMGRL>

E para a MaxAvailability caso eu não tenha ao menos um standby com o transporte de redo no modo SYNC ele irá retornar erro também, igual no exemplo abaixo

DGMGRL> edit configuration set protection mode as maxavailability;
Error: ORA-16627: operation disallowed since no member would remain to support protection mode
Failed.
DGMGRL>

Então irei alterar para o modo fastsync (SYNC NO AFFIRM)

DGMGRL> edit database orcldg set property logxptmode = 'fastsync';
Property "logxptmode" updated
DGMGRL> show database orcldg logxptmode;
LogXptMode = 'fastsync'
DGMGRL>

Agora já posso realizar a alteração para MaxAvailability

DGMGRL> edit configuration set protection mode as maxavailability;
Succeeded.
DGMGRL> show configuration;
Configuration - dg
Protection Mode: MaxAvailability
Members:
orcl - Primary database
orcldg - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 52 seconds ago)
DGMGRL>

Porém essa configuração de envio de redo não funcionará para o modo de proteção MaxProtection por exemplo, devido ao envio de redo estar ASSYNC. Para esse modo só é permitido a configuração SYNC + AFFIRM

DGMGRL> edit database orcldg set property logxptmode = 'sync';
Property "logxptmode" updated
DGMGRL> show database orcldg logxptmode;
LogXptMode = 'sync'
DGMGRL> edit configuration set protection mode as maxprotection;
Succeeded.
DGMGRL> show configuration;
Configuration - dg
Protection Mode: MaxProtection
Members:
orcl - Primary database
orcldg - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 50 seconds ago)
DGMGRL>

E por fim, do MaxProtection para o MaxPerformance eu já consigo voltar diretamente

DGMGRL> edit configuration set protection mode as maxperformance;
Succeeded.
DGMGRL> show configuration;
Configuration - dg
Protection Mode: MaxPerformance
Members:
orcl - Primary database
orcldg - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 22 seconds ago)
DGMGRL>

];

$namorado(a) =

;

$category =

;

$author =

;