{"id":461,"date":"2019-03-18T19:46:53","date_gmt":"2019-03-18T22:46:53","guid":{"rendered":"http:\/\/www.fernandosimon.com\/blog\/?p=461"},"modified":"2020-06-11T13:22:48","modified_gmt":"2020-06-11T16:22:48","slug":"observer-where","status":"publish","type":"post","link":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/","title":{"rendered":"Observer, Where?"},"content":{"rendered":"\r\n<p style=\"text-align: justify;\">Some months ago I got one error with Oracle Data Guard and now I had time to review it again and write this article. Just to be clear since the beginning, the discussion here is not about the error itself, but about the circumstances that generated it.<\/p>\r\n<p style=\"text-align: justify;\">The environment described here follows, at least, the most common best practices for DG by Oracle. Have 1 dedicated server for each one: Primary Database, Physical Standby Database, and Observer. The primary and standby reside in different data centers in different cities, dedicated network for interconnecting between sites, protection mode was Maximum Availability, and runs with Fast-Start Failover enabled (with 30 seconds for threshold). The version here is 12.2 but will be the same for 19c. So, nothing so bad in the environment, basic DG configuration trying to follow the best practices.<\/p>\r\n<p style=\"text-align: justify;\"><!--more More...--><\/p>\r\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-465 size-full\" src=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png\" alt=\"\" width=\"391\" height=\"285\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png 391w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig-300x219.png 300w\" sizes=\"auto, (max-width: 391px) 100vw, 391px\" \/><\/a>But, one day, application servers running, primary Linux DB server running, but the database itself down. Looking for the cause, found in the broker log (simulated in my test environment):<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">03\/10\/2019 12:48:05\r\nLGWR: FSFO SetState(st=2 \"UNSYNC\", fl=0x2 \"WAIT\", ob=0x0, tgt=0, v=0)\r\nLGWR: FSFO SetState(\"UNSYNC\", 0x2) operation requires an ack\r\n        Primary database will shutdown within 30 seconds if permission\r\n         is not granted from Observer or FSFO target standby to proceed\r\nLGWR:   current in-memory FSFO state flags=0x40001, version=46\r\n03\/10\/2019 12:48:19\r\nA Fast-Start Failover target switch is necessary because the primary cannot reach the Fast-Start Failover target standby database\r\nA target switch was not attempted because the observer has not pinging primary recently.\r\nFSFP network call timeout. Killing process FSFP.\r\n03\/10\/2019 12:48:36\r\nNotifying Oracle Clusterware to disable services and monitoring because primary will be shutdown\r\nPrimary has heard from neither observer nor target standby\r\n        within FastStartFailoverThreshold seconds. It is\r\n        likely an automatic failover has already occurred.\r\n        The primary is shutting down.\r\nLGWR: FSFO SetState(st=8 \"FO PENDING\", fl=0x0 \"\", ob=0x0, tgt=0, v=0)\r\nLGWR: Shutdown primary instance 1 now because the primary has been isolated\r\n<\/pre>\r\n<p style=\"text-align: justify;\">And in the alertlog:<\/p>\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">2019-03-10T12:48:35.860142+01:00\r\nStarting background process FSFP\r\n2019-03-10T12:48:35.870802+01:00\r\nFSFP started with pid=30, OS id=6055\r\n2019-03-10T12:48:36.875828+01:00\r\nPrimary has heard from neither observer nor target standby within FastStartFailoverThreshold seconds.\r\nIt is likely an automatic failover has already occurred. Primary is shutting down.\r\n2019-03-10T12:48:36.876434+01:00\r\nErrors in file \/u01\/app\/oracle\/diag\/rdbms\/orcl\/orcl\/trace\/orcl_lgwr_2472.trc:\r\nORA-16830: primary isolated from fast-start failover partners longer than FastStartFailoverThreshold seconds: shutting down\r\nLGWR (ospid: 2472): terminating the instance due to error 16830\r\n<\/pre>\r\n<p style=\"text-align: justify;\">But this is (and was) not a DG problem, the DG made what was design to do. Primary lost the communication with the Standby and Observer and after the Fast-Start Failover threshold, FSFP killed the primary because it doesn\u2019t know if it was evicted and want to avoid split-brain (or something similar). Worked as designed!<\/p>\r\n<p style=\"text-align: justify;\">As I wrote before the main question here is not the ORA-XXXX error, but the circumstances. In this case, by design definition (and probably based in the docs), chosen to put the observer in the same site than standby. But, because one failure in the standby datacenter (just in the enclosure that runs blades for Oracle stuffs, the application continued to runs), the entire database was unavailable. One outage in standby datacenter, shut down the primary database even DG running in Maximum Availability mode.<\/p>\r\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Failure-STB-V2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-462\" src=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Failure-STB-V2.png\" alt=\"\" width=\"601\" height=\"336\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Failure-STB-V2.png 601w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Failure-STB-V2-300x168.png 300w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\r\n<p style=\"text-align: justify;\">As you can imagine, because of the design decision \u201cwhere to put the observer\u201d, everything was down. If the observer was running in the primary datacenter, nothing supposed to occurs. But here it is the point for this post: \u201c<em><strong>Where you put the Observer?<\/strong><\/em>\u201d, \u201c<strong><em>Primary site? Standby site?<\/em><\/strong>\u201d, and \u201c<strong>Why<\/strong>?\u201d, \u201c<strong>How you based this decision?<\/strong>\u201d. It appears to be a simple question to answer, but there are a lot of pros and cons, and there is not much information about that.<\/p>\r\n<p style=\"text-align: justify;\">If you search in the Oracle docs they recommend to put the observer in a third datacenter, isolated from the others, or in the same network than application, or in the standby datacenter. Here: <a href=\"https:\/\/www.oracle.com\/technetwork\/database\/availability\/maa-roletransitionbp-2621582.pdf\">https:\/\/www.oracle.com\/technetwork\/database\/availability\/maa-roletransitionbp-2621582.pdf<\/a> (page 9). But, where are the pros and cons of the decision? And how many clients have a third datacenter? And if you search about were put the observer over the google, the 99% spread the same information (that go in the opposite of docs) \u201cprimary site\u201d. But again, \u201cWhy?\u201d.<\/p>\r\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Observer-Where.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-464\" src=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Observer-Where.png\" alt=\"\" width=\"519\" height=\"365\" srcset=\"https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Observer-Where.png 519w, https:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/Observer-Where-300x211.png 300w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a>The observer in primary site:<\/p>\r\n<ul style=\"text-align: justify;\">\r\n<li>Pros: Protect for most failures (primary DB crash failure, DB logical crash as an example), low impact network issues for the observer (usually same LAN than primary).<\/li>\r\n<li>Cons: Not protect (not switch) in case of a whole primary datacenter failure.<\/li>\r\n<li>When to use: When you want to avoid \u201cfalse positive\u201d switches in case of network problems against standby datacenter or you \u201cnot trust\u201d in standby datacenter. Or because all transactions are important (will explain later).<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify;\">The observer in standby site:<\/p>\r\n<ul style=\"text-align: justify;\">\r\n<li>Pros: Protect against whole primary datacenter failure.<\/li>\r\n<li>Cons: Heavy dependency from the network between sites (need even multiple paths), can suffer \u201cfalse positives\u201d switches since standby site decides even if primary is running correctly (similar than related here) or maybe disable auto reinstate of primary at the broker. When the database is more important than transactions, maybe Maximum Availability is not suitable (explain later).<\/li>\r\n<li>When to use: When you want to protect the database and when your system and network infrastructure between datacenter are reliable.<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify;\">Observer Third datacenter:<\/p>\r\n<ul style=\"text-align: justify;\">\r\n<li>Pro: Cover all scenarios of failures.<\/li>\r\n<li>Cons: Heavily dependent on the good network to avoid \u201cfalse positives\u201d or will suffer from fast-start failover disabled. It will be more expensive.<\/li>\r\n<li>When to use: When you want to protect for most of the possible scenarios.<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify;\">Bellow just one idea about a good design for high availability for database and applications. This came directly from the Oracle docs about \u201cRecovering from Unscheduled Outages &#8211; <a href=\"https:\/\/docs.oracle.com\/database\/121\/HABPT\/E40019-02.pdf\">https:\/\/docs.oracle.com\/database\/121\/HABPT\/E40019-02.pdf<\/a>\u201d<\/p>\r\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/habpt014.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-463\" src=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/habpt014.gif\" alt=\"\" width=\"663\" height=\"636\"><\/a><\/p>\r\n<p style=\"text-align: justify;\">Above I talked about transactions and Maximum Availability that it is deeply related here. Remember that the primary database shut down only after the fast start failover threshold? This means that the primary database received transactions for 30 seconds before shutting down. If you put the observer in standby site you can suffer from data loss (of course that failover, by design, means that) because standby side decides everything.<\/p>\r\n<p style=\"text-align: justify;\">If you do that, maybe you need to operate in Maximum Protection to have zero data loss. This is more clear, or critical if your database receives connections from applications that are not in the same datacenter and can connect in both at the same time. In Maximum Protection, you avoid that primary commit data in moments of possible failures, but you will put some overhead in every transaction operating in sync mode (<a href=\"https:\/\/www.oracle.com\/technetwork\/database\/availability\/sync-2437177.pdf\">https:\/\/www.oracle.com\/technetwork\/database\/availability\/sync-2437177.pdf<\/a>). So, you need to decide if have database running is more important than transactions.<\/p>\r\n<p style=\"text-align: justify;\">Of course that every strategy has pros and cons. The observer in the primary is easier, maybe it can allow you to use less strict protection and continue to have high transaction protection, but not handle full datacenter failure. The observer in standby can protect from datacenter failure but it is possible that you need to handle more \u201cfalse positive\u201d switches of primary DB or even complete primary shutdown (as related here) in the case of a standby datacenter failure. Adding the fact that maybe your application needs to allow some data loss, or if not, you may need to operate in maximum protection. Observer in the third site can be the best option for data protection, but will be more expensive and heavily network and operational dependent.<\/p>\r\n<p style=\"text-align: justify;\">As you can see, there is not an easy design. Even a simple choice, like the observer location, will leave plenty of decisions to be made. With Oracle 12.2 and beyond (including 19c) you have better options to handle it, I will pass over this in the next post about multiple observers, but there is no (yet) 100% solution to cover all possible scenarios.<\/p>\r\n<p style=\"text-align: justify;\">Martin Bracher, Dr. Martin Wunderli, and Torsten Rosenwald made a good cover of this in the past. You can check the presentations here:<\/p>\r\n<ul style=\"text-align: justify;\">\r\n<li style=\"text-align: left;\"><a href=\"https:\/\/www.doag.org\/formes\/pubfiles\/303232\/2008-K-IT-Bracher-Dataguard_Observer_ohne_Rechenzentrum.pdf\">https:\/\/www.doag.org\/formes\/pubfiles\/303232\/2008-K-IT-Bracher-Dataguard_Observer_ohne_Rechenzentrum.pdf<\/a><\/li>\r\n<li style=\"text-align: left;\"><a href=\"https:\/\/www.trivadis.com\/sites\/default\/files\/downloads\/fsfo_understood_decus07.pdf\">https:\/\/www.trivadis.com\/sites\/default\/files\/downloads\/fsfo_understood_decus07.pdf<\/a><\/li>\r\n<li style=\"text-align: left;\"><a href=\"https:\/\/www.doag.org\/formes\/pubfiles\/218046\/FSFO.pdf\">https:\/\/www.doag.org\/formes\/pubfiles\/218046\/FSFO.pdf<\/a><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify;\">I recommend read the docs too:<\/p>\r\n<ul style=\"text-align: justify;\">\r\n<li style=\"text-align: left;\"><a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/dgbkr\/data-guard-broker.pdf\">https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/dgbkr\/data-guard-broker.pdf<\/a><\/li>\r\n<li style=\"text-align: left;\"><a href=\"https:\/\/www.oracle.com\/technetwork\/database\/availability\/maa-roletransitionbp-2621582.pdf\">https:\/\/www.oracle.com\/technetwork\/database\/availability\/maa-roletransitionbp-2621582.pdf<\/a><\/li>\r\n<li style=\"text-align: left;\"><a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/sbydb\/data-guard-concepts-and-administration.pdf\">https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/sbydb\/data-guard-concepts-and-administration.pdf<\/a><\/li>\r\n<li style=\"text-align: left;\"><a href=\"https:\/\/docs.oracle.com\/database\/121\/HABPT\/E40019-02.pdf\">https:\/\/docs.oracle.com\/database\/121\/HABPT\/E40019-02.pdf<\/a><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify;\">If you have comments, please do it.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Some months ago I got one error with Oracle Data Guard and now I had time to review it again and write this article. Just to be clear since the beginning, the discussion here is not about the error itself, but about the circumstances that generated it. The environment described here follows, at least, the [&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":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[30,41,29,53,54,5],"tags":[67,66,68,65],"class_list":["post-461","post","type-post","status-publish","format-standard","hentry","category-banco-de-dados","category-data-guard","category-database","category-fast-start-failover","category-observer","category-oracle","tag-data-guard","tag-database","tag-fast-start-failover","tag-oracle"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Observer, Where? - Fernando Simon<\/title>\n<meta name=\"description\" content=\"Where you put the Observer in Data Guard config? Appears to be easy question to answer, but check and avoid errors like ORA-16830.\" \/>\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\/observer-where\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Observer, Where? - Fernando Simon\" \/>\n<meta property=\"og:description\" content=\"Where you put the Observer in Data Guard config? Appears to be easy question to answer, but check and avoid errors like ORA-16830.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/\" \/>\n<meta property=\"og:site_name\" content=\"Fernando Simon\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-18T22:46:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-11T16:22:48+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png\" \/>\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=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/\"},\"author\":{\"name\":\"Simon\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"headline\":\"Observer, Where?\",\"datePublished\":\"2019-03-18T22:46:53+00:00\",\"dateModified\":\"2020-06-11T16:22:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/\"},\"wordCount\":1198,\"commentCount\":6,\"image\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png\",\"keywords\":[\"Data Guard\",\"Database\",\"Fast-Start Failover\",\"Oracle\"],\"articleSection\":[\"Banco de Dados\",\"Data Guard\",\"Database\",\"Fast-Start Failover\",\"Observer\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/\",\"url\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/\",\"name\":\"Observer, Where? - Fernando Simon\",\"isPartOf\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png\",\"datePublished\":\"2019-03-18T22:46:53+00:00\",\"dateModified\":\"2020-06-11T16:22:48+00:00\",\"author\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9\"},\"description\":\"Where you put the Observer in Data Guard config? Appears to be easy question to answer, but check and avoid errors like ORA-16830.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage\",\"url\":\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png\",\"contentUrl\":\"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fernandosimon.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Observer, Where?\"}]},{\"@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":"Observer, Where? - Fernando Simon","description":"Where you put the Observer in Data Guard config? Appears to be easy question to answer, but check and avoid errors like ORA-16830.","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\/observer-where\/","og_locale":"en_US","og_type":"article","og_title":"Observer, Where? - Fernando Simon","og_description":"Where you put the Observer in Data Guard config? Appears to be easy question to answer, but check and avoid errors like ORA-16830.","og_url":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/","og_site_name":"Fernando Simon","article_published_time":"2019-03-18T22:46:53+00:00","article_modified_time":"2020-06-11T16:22:48+00:00","og_image":[{"url":"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png","type":"","width":"","height":""}],"author":"Simon","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#article","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/"},"author":{"name":"Simon","@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"headline":"Observer, Where?","datePublished":"2019-03-18T22:46:53+00:00","dateModified":"2020-06-11T16:22:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/"},"wordCount":1198,"commentCount":6,"image":{"@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage"},"thumbnailUrl":"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png","keywords":["Data Guard","Database","Fast-Start Failover","Oracle"],"articleSection":["Banco de Dados","Data Guard","Database","Fast-Start Failover","Observer","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.fernandosimon.com\/blog\/observer-where\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/","url":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/","name":"Observer, Where? - Fernando Simon","isPartOf":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage"},"image":{"@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage"},"thumbnailUrl":"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png","datePublished":"2019-03-18T22:46:53+00:00","dateModified":"2020-06-11T16:22:48+00:00","author":{"@id":"https:\/\/www.fernandosimon.com\/blog\/#\/schema\/person\/386da956604bca0d5be5dd52210c1dd9"},"description":"Where you put the Observer in Data Guard config? Appears to be easy question to answer, but check and avoid errors like ORA-16830.","breadcrumb":{"@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fernandosimon.com\/blog\/observer-where\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#primaryimage","url":"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png","contentUrl":"http:\/\/www.fernandosimon.com\/blog\/wp-content\/uploads\/2019\/03\/BaseConfig.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.fernandosimon.com\/blog\/observer-where\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fernandosimon.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Observer, Where?"}]},{"@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-7r","_links":{"self":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/461","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=461"}],"version-history":[{"count":0,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/posts\/461\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/media?parent=461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/categories?post=461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandosimon.com\/blog\/wp-json\/wp\/v2\/tags?post=461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}