{"id":170,"date":"2014-10-31T22:33:09","date_gmt":"2014-11-01T01:33:09","guid":{"rendered":"http:\/\/www.fernandosimon.com\/blog\/?p=170"},"modified":"2015-01-25T23:22:57","modified_gmt":"2015-01-26T02:22:57","slug":"oracle-e-maa-artigo-viii-fast-start-failover","status":"publish","type":"post","link":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/","title":{"rendered":"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover"},"content":{"rendered":"<p style=\"text-align: justify;\">Depois de configurar o Broker, precisamos de um \u00faltimo passo para garantir que os requisitos b\u00e1sicos do MAA estejam contemplados. Nos \u00faltimos artigos passamos por alguns passos que provavelmente voc\u00ea n\u00e3o iria realizar em produ\u00e7\u00e3o (e nem gostaria), fizemos o <a href=\"http:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-vi-failover-broker\/\" target=\"_blank\">failover<\/a> e o <a href=\"http:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-vii-switchover-broker\/\" target=\"_blank\">switchover<\/a> (ambos com o broker \u2013 que configuramos <a href=\"http:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-v-broker\/\" target=\"_blank\">aqui<\/a>).<\/p>\n<p style=\"text-align: justify;\"><strong>OITAVO ARTIGO<\/strong><\/p>\n<p style=\"text-align: justify;\">Neste artigo vamos configurar\/adicionar ao ambiente a figura do Observer, ser\u00e1 habilitado o Fast-Start Failover (FSFO) no Broker para permitir um monitoramento em tempo real do ambiente. Com isso, em uma eventual falha do ambiente primary o standby ir\u00e1 assumir o papel sem ser necess\u00e1rio executar qualquer comando.<\/p>\n<p style=\"text-align: justify;\"><!--more Continue lendo...--><\/p>\n<p style=\"text-align: justify;\"><strong>AMBIENTE<\/strong><\/p>\n<p style=\"text-align: justify;\">At\u00e9 o momento, temos o banco \u201cmaa\u201d operando como primary e o banco \u201cmaastb\u201d operando como standby. Al\u00e9m disso temos o Broker configurado e gerenciando o ambiente, mas n\u00e3o temos o Fast-Start Failover monitorando o ambiente. Aqui, vamos configur\u00e1-lo para ter garantia em eventuais falhas.<\/p>\n<p style=\"text-align: justify;\"><strong>FAST-START FAILOVER<\/strong><\/p>\n<p style=\"text-align: justify;\">Como disse acima, o ambiente ainda n\u00e3o est\u00e1 sendo monitorado de forma autom\u00e1tica, mas j\u00e1 temos a replica\u00e7\u00e3o ocorrendo de forma ativa e garantindo o Maximum Availability. Temos o Broker que nos ajuda a manter a configura\u00e7\u00e3o de ambos os sites correta e permite uma opera\u00e7\u00e3o mais facilitada atrav\u00e9s de um \u00fanico console. Como mostrado em artigos anteriores o switchover e failover atrav\u00e9s do Broker s\u00e3o bem mais \u201csimples\u201d do que os manuais (<a href=\"http:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-ii-failover\/\" target=\"_blank\">aqui<\/a> e <a href=\"http:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-iv-switchover\/\" target=\"_blank\">aqui<\/a>).<\/p>\n<p style=\"text-align: justify;\">Mas e se o evento de falha ocorrer no meio da noite? Voc\u00ea tem uma equipe operando o seu ambiente em 24&#215;7? Claro que isso depende do tamanho do ambiente e sua criticidade, mas em muitos casos n\u00e3o existe tal equipe e voc\u00ea ainda assim tem que manter seu ambiente em alta disponibilidade. Ent\u00e3o, o que voc\u00ea faz?<\/p>\n<p style=\"text-align: justify;\">A resposta \u00e9 simples: Fast-Start Failover. Mas o que \u00e9 isso? O Fast-Start Failover \u00e9 uma funcionalidade do DataGuard (habilitada atrav\u00e9s do Broker ou Enterprise Manager) que em uma indisponibilidade do primary faz a troca autom\u00e1tica de papeis com um standby definido. Claro que para isso \u00e9 necess\u00e1rio configurar e definir alguns detalhes.<\/p>\n<p style=\"text-align: justify;\">Antes de tudo um ponto que acredito ser crucial \u00e9 garantir que a sua aplica\u00e7\u00e3o esteja preparada para conseguir conectar em ambos os locais (primary e santdby). No momento de uma falha a troca de papeis ser\u00e1 autom\u00e1tica e sua aplica\u00e7\u00e3o tem que estar preparada para conectar no novo primary automaticamente, voc\u00ea deve garantir que o TNS utilizado est\u00e1 correto (com as duas entradas de host e com service_name).<\/p>\n<p style=\"text-align: justify;\">O segundo detalhe \u00e9 configurar o Observer, ele \u00e9 um dos requisitos do Fast-Start Failover e tem a fun\u00e7\u00e3o crucial de validar\/verificar\/testar\/garantir a disponibilidade do primary. De forma resumida vamos fazer a seguinte analogia: o Observer \u201cpergunta\u201d de tempos em tempos para o primary se ele est\u00e1 online, para o standby faz a mesma pergunta e tamb\u00e9m verifica se este est\u00e1 vendo o primary. Em uma indisponibilidade do primary o Observer registra a falha do primary e pergunta ao standby se ele est\u00e1 \u201cvendo\u201d o primary se a reposta for negativa e n\u00e3o houver conex\u00e3o\/volta do primary dentro do prazo definido a troca de papeis \u00e9 iniciada.<\/p>\n<p style=\"text-align: justify;\"><strong>Observer<\/strong><\/p>\n<p style=\"text-align: justify;\">Como descrito acima o Observer \u00e9 fundamental para o funcionamento do Fast-Start Failover, sem ele \u00e9 imposs\u00edvel garantir de forma automatizada que o ambiente est\u00e1 funcionando corretamente. Ele opera de forma separada do primary, standby e do Broker; fica instalado em um servidor separado.<\/p>\n<p style=\"text-align: justify;\">Aqui um detalhe, tenho por regra deixar o Observer no mesmo site que o ambiente primary. Utilizo assim, pois na eventualidade de uma falha de comunica\u00e7\u00e3o do site standby n\u00e3o ocorre troca de papeis, primary, Observer e aplica\u00e7\u00e3o ficam no mesmo site.<\/p>\n<p style=\"text-align: justify;\">A configura\u00e7\u00e3o do Observer \u00e9 bem simples, na realidade voc\u00ea s\u00f3 precisa instalar o Oracle Client em qualquer servidor e na escolha dos pacotes garantir que o DGMGRL estar\u00e1 instalado. Aqui no artigo ele foi instalado em um Linux.<\/p>\n<p style=\"text-align: justify;\">Depois de instalado o Client Oracle o \u00fanico passo passo \u00e9 configurar o TNS para contemplar tanto entradas para o primary quanto ao standby. Abaixo foi realizada a altera\u00e7\u00e3o do TNS e os testes de acesso a ambos:<\/p>\n<pre class=\"\">[oracle@sbdobs ~]$ vi \/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/network\/admin\/tnsnames.ora\r\n[oracle@sbdobs ~]$ cat \/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/network\/admin\/tnsnames.ora\r\nmaa =\r\n  (DESCRIPTION =\r\n\t(ADDRESS = (PROTOCOL = TCP)(HOST = rac11pri-scan.tjsc.jus.br)(PORT = 1521))\r\n\t(CONNECT_DATA =\r\n\t  (SERVER = DEDICATED)\r\n\t  (SERVICE_NAME = maa)\r\n\t)\r\n  )\r\n\r\nmaastb =\r\n  (DESCRIPTION =\r\n\t(ADDRESS = (PROTOCOL = TCP)(HOST = rac11stb-scan.tjsc.jus.br)(PORT = 1521))\r\n\t(CONNECT_DATA =\r\n\t  (SERVER = DEDICATED)\r\n\t  (SERVICE_NAME = maastb)\r\n\t)\r\n  )\r\n\r\n[oracle@sbdobs ~]$\r\n[oracle@sbdobs ~]$ tnsping maa\r\n\r\nTNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 06-JUL-2014 23:18:57\r\n\r\nCopyright (c) 1997, 2011, Oracle.  All rights reserved.\r\n\r\nUsed parameter files:\r\n\r\n\r\nUsed TNSNAMES adapter to resolve the alias\r\nAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac11pri-scan.tjsc.jus.br)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = maa)))\r\nOK (60 msec)\r\n[oracle@sbdobs ~]$ tnsping maastb\r\n\r\nTNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 06-JUL-2014 23:19:02\r\n\r\nCopyright (c) 1997, 2011, Oracle.  All rights reserved.\r\n\r\nUsed parameter files:\r\n\r\n\r\nUsed TNSNAMES adapter to resolve the alias\r\nAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac11stb-scan.tjsc.jus.br)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = maastb)))\r\nOK (0 msec)\r\n[oracle@sbdobs ~]$\r\n<\/pre>\n<p style=\"text-align: justify;\"><strong>CONFIGURANDO FAST-START FAILOVER NO BROKER<\/strong><\/p>\n<p style=\"text-align: justify;\">Depois de instalar o Observer e ajustar o seu TNS precisamos configurar Fast-Start Failover no Broker. Considero que o primeiro passo \u00e9 verificar se o ambiente est\u00e1 operando em Maximum Availability (fiz isso atrav\u00e9s do Broker):<\/p>\n<pre class=\"\">DGMGRL&gt; SHOW CONFIGURATION VERBOSE;\r\n\r\nConfiguration - dgrac\r\n\r\n  Protection Mode: MaxAvailability\r\n  Databases:\r\n\tmaa    - Primary database\r\n\tmaastb - Physical standby database\r\n\r\n  Properties:\r\n\tFastStartFailoverThreshold      = '30'\r\n\tOperationTimeout                = '30'\r\n\tFastStartFailoverLagLimit       = '30'\r\n\tCommunicationTimeout            = '180'\r\n\tFastStartFailoverAutoReinstate  = 'TRUE'\r\n\tFastStartFailoverPmyShutdown    = 'TRUE'\r\n\tBystandersFollowRoleChange      = 'ALL'\r\n\r\nFast-Start Failover: DISABLED\r\n\r\nConfiguration Status:\r\nSUCCESS\r\n\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Acima, observe que o Fast-Start Failover aparece como DISABLED, isso significa que nada foi configurado ou que n\u00e3o foi definido nenhum de seus par\u00e2metros. Se voc\u00ea quiser confirmar basta executar os comandos abaixo (note que foi verificado para cada banco participante do DG):<\/p>\n<pre class=\"\">DGMGRL&gt; SHOW DATABASE maa FastStartFailoverTarget\r\n  FastStartFailoverTarget = ''\r\nDGMGRL&gt; SHOW DATABASE maastb FastStartFailoverTarget\r\n  FastStartFailoverTarget = ''\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">A configura\u00e7\u00e3o inicial do Fast-Start Failover \u00e9 simples, basta adicionar\/configurar no Broker o par\u00e2metro <em>FastStartFailoverTarget<\/em>. Atrav\u00e9s deste voc\u00ea define qual o alvo para cada ambiente que comp\u00f5e seu DataGuard. \u00c9 necess\u00e1rio especificar para ao primary qual o standby preferencial em caso de troca de papeis; e para o standby qual o primary (tem que fazer isso para cada standby existente).<\/p>\n<pre class=\"\">DGMGRL&gt; EDIT DATABASE maa SET PROPERTY FastStartFailoverTarget = maastb;\r\nProperty \"faststartfailovertarget\" updated\r\nDGMGRL&gt; EDIT DATABASE maastb SET PROPERTY FastStartFailoverTarget = maa;\r\nProperty \"faststartfailovertarget\" updated\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Para verificar como est\u00e1 a configura\u00e7\u00e3o do Fast-Start Failover basta executar o comando abaixo no Broker, diferentemente dos anteriores este cont\u00eam mais detalhes. Observe o par\u00e2metro<em> Threshold<\/em>, ele nos informa depois de quanto tempo de indisponibilidade do primary \u00e9 que ocorre a troca de papeis. Perceba que este \u00e9 tempo em segundos at\u00e9 que a troca inicie efetivamente, se voc\u00ea tem requisitos menores que esse tempo vai ter que reduzi-lo (lembre-se de contar que ainda ter\u00e1 o tempo gasto na troca em si). Caso voc\u00ea queira aumentar este valor utilize o comando abaixo.<\/p>\n<pre class=\"\">DGMGRL&gt; SHOW FAST_START FAILOVER;\r\n\r\nFast-Start Failover: DISABLED\r\n\r\n  Threshold:        30 seconds\r\n  Target:           (none)\r\n  Observer:         (none)\r\n  Lag Limit:        30 seconds\r\n  Shutdown Primary: TRUE\r\n  Auto-reinstate:   TRUE\r\n\r\nConfigurable Failover Conditions\r\n  Health Conditions:\r\n\tCorrupted Controlfile          YES\r\n\tCorrupted Dictionary           YES\r\n\tInaccessible Logfile            NO\r\n\tStuck Archiver                  NO\r\n\tDatafile Offline               YES\r\n\r\n  Oracle Error Conditions:\r\n\t(none)\r\n\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">A documenta\u00e7\u00e3o da Oracle sugere que em ambientes com Oracle RAC esse valor deve ser aumentado para evitar casos de falso positivos. Quando uma inst\u00e2ncia do Oracle RAC falha pode existir um \u201ccongelamento\u201d das outras at\u00e9 a reorganiza\u00e7\u00e3o do cluster e isso pode gerar ao Observer a falsa impress\u00e3o de queda completa do Primary (isso est\u00e1 descrito no Oracle\u00ae Data Guard Broker 11g Release 2):<\/p>\n<pre>DGMGRL&gt; EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 60;\r\nProperty \"faststartfailoverthreshold\" updated\r\nDGMGRL&gt;\r\nDGMGRL&gt; SHOW CONFIGURATION FastStartFailoverThreshold;\r\n  FastStartFailoverThreshold = '60'\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\"><strong>Iniciando o Observer<\/strong><\/p>\n<p style=\"text-align: justify;\">O primeiro passo a ser feito \u00e9 iniciar o Observer. Isso pode ser feito atrav\u00e9s de alguns comandos, o primeiro \u00e9 com o DGMGRL:<\/p>\n<pre>[oracle@sbdobs ~]$ dgmgrl -logfile \/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/dgmgrl-obs-maa.log\r\nDGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production\r\n\r\nCopyright (c) 2000, 2009, Oracle. All rights reserved.\r\n\r\nWelcome to DGMGRL, type \"help\" for information.\r\nDGMGRL&gt; CONNECT sys@maa;\r\nPassword:\r\nConnected.\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Veja que ele foi iniciado passando como par\u00e2metro o LOGFILE para direcionar a sa\u00edda para um arquivo. Isso n\u00e3o \u00e9 um requisito mas \u00e9 uma boa pr\u00e1tica para permitir acessar o log do que ocorreu com o Observer. Caso inicie mais de um Observer (para DG\u2019s diferentes) no mesmo servidor voc\u00ea deve usar arquivo separados.<\/p>\n<p style=\"text-align: justify;\">At\u00e9 o momento o Observer n\u00e3o foi iniciado, para isso basta executar o seguinte comando:<\/p>\n<pre>DGMGRL&gt; START OBSERVER FILE = '\/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/observer-maa.log'\r\n<\/pre>\n<p style=\"text-align: justify;\">Com isso o Observer estar\u00e1 presente no ambiente e o Broker e o Fast-Start Failover pode ser habilitado. O par\u00e2metro FILE serve para definir o local onde fica o arquivo bin\u00e1rio de controle do Observer e evita que mais de um seja iniciado para o mesmo DG (por padr\u00e3o o local do arquivo \u00e9 no diret\u00f3rio atual em que foi chamado o dgmgrl).<\/p>\n<p style=\"text-align: justify;\">Um detalhe, ao iniciar o Observer o console n\u00e3o retorna e fica \u201cpreso\u201d, esse \u00e9 o m\u00e9todo padr\u00e3o e for\u00e7a voc\u00ea a deixar sess\u00f5es (com o X ou WTS) abertas no servidor. Existe a possibilidade de iniciar o Observer e retornar ao console, mas voc\u00ea ter\u00e1 que definir os dois arquivos de log conforme abaixo (veja tamb\u00e9m como fica o processo no Linux):<\/p>\n<pre>[oracle@sbdobs ~]$ dgmgrl -logfile \/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/dgmgrl-obs-maa.log sys\/oracle@maastb \"START OBSERVER FILE = '\/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/observer-maa.log'\" &amp;\r\n[1] 5351\r\n[oracle@sbdobs ~]$ DGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production\r\n\r\nCopyright (c) 2000, 2009, Oracle. All rights reserved.\r\n\r\nWelcome to DGMGRL, type \"help\" for information.\r\nConnected.\r\n\r\n[oracle@sbdobs ~]$\t\r\n[oracle@sbdobs ~]$ ps -ef |grep dgmgrl\r\noracle    5351  5252  0 22:18 pts\/1    00:00:00 dgmgrl -logfile \/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/dgmgrl-obs-maa.log                   START OBSERVER FILE = '\/u01\/app\/oracle\/product\/11.2.0.3\/client_1\/observer-maa.log'\r\noracle    5357  5252  0 22:19 pts\/1    00:00:00 grep dgmgrl\r\n[oracle@sbdobs ~]$\r\n<\/pre>\n<p style=\"text-align: justify;\">Para parar qualquer Observer utilizar o comando \u201cSTOP OBSERVER\u201d atrav\u00e9s do dgmgrl conectado ao DG.<\/p>\n<p style=\"text-align: justify;\"><strong>Habilitando Fast-Start Failover<\/strong><\/p>\n<p style=\"text-align: justify;\">Depois de todos os requisitos cumpridos podemos habilitar o Fast-Start Failover no Broker. Primeiro veja abaixo como est\u00e1 a configura\u00e7\u00e3o:<\/p>\n<pre class=\"\">DGMGRL&gt; SHOW FAST_START FAILOVER;\r\n\r\nFast-Start Failover: DISABLED\r\n\r\n  Threshold:        60 seconds\r\n  Target:           (none)\r\n  Observer:         sbdobs\r\n  Lag Limit:        30 seconds\r\n  Shutdown Primary: TRUE\r\n  Auto-reinstate:   TRUE\r\n\r\nConfigurable Failover Conditions\r\n  Health Conditions:\r\n\tCorrupted Controlfile          YES\r\n\tCorrupted Dictionary           YES\r\n\tInaccessible Logfile            NO\r\n\tStuck Archiver                  NO\r\n\tDatafile Offline               YES\r\n\r\n  Oracle Error Conditions:\r\n\t(none)\r\n\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Verifique que o par\u00e2metro Observer j\u00e1 est\u00e1 preenchido, bem como o Threshold definido com o que especificamos. Al\u00e9m disso temos que a configura\u00e7\u00e3o est\u00e1 DISABLED e nenhum Target para monitoramento est\u00e1 aparecendo. Para habilitar o Fast-Start Failover basta executar o seguinte comando:<\/p>\n<pre class=\"\">DGMGRL&gt; ENABLE FAST_START FAILOVER;\r\nEnabled.\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Se olharmos no log do Broker neste momento teremos a seguinte informa\u00e7\u00e3o:<\/p>\n<pre>07\/07\/2014 05:53:53\r\nENABLE FAST_START FAILOVER\r\nFast-Start Failover (FSFO) has been enabled between:\r\n  Primary = \"maa\"\r\n  Standby = \"maastb\"\r\n07\/07\/2014 05:53:58\r\nCommand ENABLE FAST_START FAILOVER completed\r\n<\/pre>\n<p style=\"text-align: justify;\">A partir deste momento temos o nosso ambiente DG configurado e com o monitoramento atrav\u00e9s do Fast-Start Failover. No caso de indisponibilidade o ambiente prim\u00e1rio \u201cmaa\u201d ir\u00e1 trocar os papeis com o \u201cmaastb\u201d sem a necessidade de interven\u00e7\u00e3o humana.<\/p>\n<p style=\"text-align: justify;\">Por fim, a configura\u00e7\u00e3o final do Fast-Start Failover ser\u00e1:<\/p>\n<pre class=\"\">DGMGRL&gt; SHOW FAST_START FAILOVER;\r\n\r\nFast-Start Failover: ENABLED\r\n\r\n  Threshold:        60 seconds\r\n  Target:           maastb\r\n  Observer:         sbdobs\r\n  Lag Limit:        30 seconds (not in use)\r\n  Shutdown Primary: TRUE\r\n  Auto-reinstate:   TRUE\r\n\r\nConfigurable Failover Conditions\r\n  Health Conditions:\r\n\tCorrupted Controlfile          YES\r\n\tCorrupted Dictionary           YES\r\n\tInaccessible Logfile            NO\r\n\tStuck Archiver                  NO\r\n\tDatafile Offline               YES\r\n\r\n  Oracle Error Conditions:\r\n\t(none)\r\n\r\nDGMGRL&gt; SHOW CONFIGURATION VERBOSE;\r\n\r\nConfiguration - dgrac\r\n\r\n  Protection Mode: MaxAvailability\r\n  Databases:\r\n\tmaa    - Primary database\r\n\tmaastb - (*) Physical standby database\r\n\r\n  (*) Fast-Start Failover target\r\n\r\n  Properties:\r\n\tFastStartFailoverThreshold      = '60'\r\n\tOperationTimeout                = '30'\r\n\tFastStartFailoverLagLimit       = '30'\r\n\tCommunicationTimeout            = '180'\r\n\tFastStartFailoverAutoReinstate  = 'TRUE'\r\n\tFastStartFailoverPmyShutdown    = 'TRUE'\r\n\tBystandersFollowRoleChange      = 'ALL'\r\n\r\nFast-Start Failover: ENABLED\r\n\r\n  Threshold:        60 seconds\r\n  Target:           maastb\r\n  Observer:         sbdobs\r\n  Lag Limit:        30 seconds (not in use)\r\n  Shutdown Primary: TRUE\r\n  Auto-reinstate:   TRUE\r\n\r\nConfiguration Status:\r\nSUCCESS\r\n\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\"><strong>Erros de Observer<\/strong><\/p>\n<p style=\"text-align: justify;\">Caso ocorra algum erro no Observer (como ficar off-line por falha do servidor) os erros poder\u00e3o ser consultados atrav\u00e9s do console do dgmgrl como demonstrado abaixo:<\/p>\n<pre class=\"\">DGMGRL&gt; SHOW CONFIGURATION VERBOSE;\r\n\r\nConfiguration - dgrac\r\n\r\n  Protection Mode: MaxAvailability\r\n  Databases:\r\n\tmaa    - Primary database\r\n\t  Warning: ORA-16819: fast-start failover observer not started\r\n\r\n\tmaastb - (*) Physical standby database\r\n\t  Warning: ORA-16819: fast-start failover observer not started\r\n\r\n  (*) Fast-Start Failover target\r\n\r\n  Properties:\r\n\tFastStartFailoverThreshold      = '60'\r\n\tOperationTimeout                = '30'\r\n\tFastStartFailoverLagLimit       = '30'\r\n\tCommunicationTimeout            = '180'\r\n\tFastStartFailoverAutoReinstate  = 'TRUE'\r\n\tFastStartFailoverPmyShutdown    = 'TRUE'\r\n\tBystandersFollowRoleChange      = 'ALL'\r\n\r\nFast-Start Failover: ENABLED\r\n\r\n  Threshold:        60 seconds\r\n  Target:           maastb\r\n  Observer:         (none)\r\n  Lag Limit:        30 seconds (not in use)\r\n  Shutdown Primary: TRUE\r\n  Auto-reinstate:   TRUE\r\n\r\nConfiguration Status:\r\nWARNING\r\n\r\nDGMGRL&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Verifique que neste caso n\u00e3o existe mais o monitoramento do Fast-Start Failover, sem o Observer n\u00e3o existe a garantia e a troca de papeis n\u00e3o ir\u00e1 ocorrer em caso de falhas e nada ir\u00e1 ocorrer em caso de falha do primary. Para corrigir basta subir o Observer que automaticamente o Fast-Start Failover ir\u00e1 voltar a normalidade.<\/p>\n<p style=\"text-align: justify;\"><strong>AMBIENTE FINAL<\/strong><\/p>\n<p style=\"text-align: justify;\">Com o Fast-Start Failover temos um ambiente configurado e que segue as melhores pr\u00e1ticas do MAA. No momento temos um ambiente Oracle RAC Primary que est\u00e1 replicado atrav\u00e9s de Data Guard e operando em Maximum Availability (em Real-Time), sendo que o ambiente Standby tamb\u00e9m \u00e9 um Oracle RAC com as mesmas configura\u00e7\u00f5es. Al\u00e9m disso temos tudo isso sendo monitorado atrav\u00e9s de Fast-Start Failover que garante em caso de falha do ambiente primary o chaveamento para o standby sem qualquer necessidade de interven\u00e7\u00e3o humana.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depois de configurar o Broker, precisamos de um \u00faltimo passo para garantir que os requisitos b\u00e1sicos do MAA estejam contemplados. Nos \u00faltimos artigos passamos por alguns passos que provavelmente voc\u00ea n\u00e3o iria realizar em produ\u00e7\u00e3o (e nem gostaria), fizemos o failover e o switchover (ambos com o broker \u2013 que configuramos aqui). OITAVO ARTIGO Neste [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[50,41,6,53,54,5],"tags":[],"class_list":["post-170","post","type-post","status-publish","format-standard","hentry","category-broker","category-data-guard","category-exadata","category-fast-start-failover","category-observer","category-oracle"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover<\/title>\n<meta name=\"description\" content=\"Configurando o Fast-Start Failover em um ambiente Oracle com Maximum Availability Architecture (MAA), Data Guard (DG) e RAC. Dicas, detalhes e truques\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover\" \/>\n<meta property=\"og:description\" content=\"Configurando o Fast-Start Failover em um ambiente Oracle com Maximum Availability Architecture (MAA), Data Guard (DG) e RAC. Dicas, detalhes e truques\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/\" \/>\n<meta property=\"og:site_name\" content=\"Fernando Simon\" \/>\n<meta property=\"article:published_time\" content=\"2014-11-01T01:33:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-01-26T02:22:57+00:00\" \/>\n<meta name=\"author\" content=\"Simon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/\"},\"author\":{\"name\":\"Simon\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"headline\":\"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover\",\"datePublished\":\"2014-11-01T01:33:09+00:00\",\"dateModified\":\"2015-01-26T02:22:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/\"},\"wordCount\":1587,\"commentCount\":1,\"articleSection\":[\"Broker\",\"Data Guard\",\"Exadata\",\"Fast-Start Failover\",\"Observer\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/\",\"name\":\"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#website\"},\"datePublished\":\"2014-11-01T01:33:09+00:00\",\"dateModified\":\"2015-01-26T02:22:57+00:00\",\"author\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"description\":\"Configurando o Fast-Start Failover em um ambiente Oracle com Maximum Availability Architecture (MAA), Data Guard (DG) e RAC. Dicas, detalhes e truques\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fernandosimon.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#website\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/\",\"name\":\"Fernando Simon\",\"description\":\"Have you hugged your backup today?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.fernandosimon.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\",\"name\":\"Simon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g\",\"caption\":\"Simon\"},\"sameAs\":[\"http:\/\/www.fernandosimon.com\"],\"url\":\"https:\/\/www.fernandosimon.com\/blog\/author\/simon\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover","description":"Configurando o Fast-Start Failover em um ambiente Oracle com Maximum Availability Architecture (MAA), Data Guard (DG) e RAC. Dicas, detalhes e truques","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/","og_locale":"en_US","og_type":"article","og_title":"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover","og_description":"Configurando o Fast-Start Failover em um ambiente Oracle com Maximum Availability Architecture (MAA), Data Guard (DG) e RAC. Dicas, detalhes e truques","og_url":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/","og_site_name":"Fernando Simon","article_published_time":"2014-11-01T01:33:09+00:00","article_modified_time":"2015-01-26T02:22:57+00:00","author":"Simon","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#article","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/"},"author":{"name":"Simon","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"headline":"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover","datePublished":"2014-11-01T01:33:09+00:00","dateModified":"2015-01-26T02:22:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/"},"wordCount":1587,"commentCount":1,"articleSection":["Broker","Data Guard","Exadata","Fast-Start Failover","Observer","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/","url":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/","name":"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#website"},"datePublished":"2014-11-01T01:33:09+00:00","dateModified":"2015-01-26T02:22:57+00:00","author":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"description":"Configurando o Fast-Start Failover em um ambiente Oracle com Maximum Availability Architecture (MAA), Data Guard (DG) e RAC. Dicas, detalhes e truques","breadcrumb":{"@id":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fernandosimon.com\/blog\/oracle-e-maa-artigo-viii-fast-start-failover\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fernandosimon.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle e MAA \u2013 Artigo VIII \u2013 Fast-Start Failover"}]},{"@type":"WebSite","@id":"https:\/\/www.fernandosimon.com\/blog\/#website","url":"https:\/\/www.fernandosimon.com\/blog\/","name":"Fernando Simon","description":"Have you hugged your backup today?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fernandosimon.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9","name":"Simon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a3dbc48de62fffb1829befb4a588d789ec6dc5e05977afabb3407a5f37a16482?s=96&d=mm&r=g","caption":"Simon"},"sameAs":["http:\/\/www.fernandosimon.com"],"url":"https:\/\/www.fernandosimon.com\/blog\/author\/simon\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5ofTp-2K","_links":{"self":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/comments?post=170"}],"version-history":[{"count":0,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/170\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/media?parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/categories?post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/tags?post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}