{"id":9873,"date":"2017-03-18T16:43:32","date_gmt":"2017-03-18T15:43:32","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/"},"modified":"2017-03-18T16:43:32","modified_gmt":"2017-03-18T15:43:32","slug":"how-many-members-for-standby-redo-logs","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/","title":{"rendered":"How many members for standby redo logs?"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\nI see lot of databases with two members for redo logs and also two members for standby redo logs. Why not, but when asking I realized that there are some mis-comprehension about it. And what was recommended 10 years ago may be different today.<br \/>\n<!--more--><\/p>\n<h3>Online and Stanbdy redo logs<\/h3>\n<p>Your transactions happen on the primary database and are written to the online redo logs before the modification is done on datafiles. And when you commit you wait to be sure that the redo is on persistence storage. If you loose the current redo log group, then your database crashes and you loose the latest transactions. This is why we multiplex the online redo logs. Even if you are 100% confident on your storage high availability the risk of human error dropping a file exists and is considerably lower if there a two files.<br \/>\nFor additional protection, in case you loose all the primary redo members, Data Guard synchronizes the transaction to a second site by shipping the redo stream. There, on the standby site, the redo is written to the standby redo logs.<\/p>\n<p>The online redo logs are used only on the primary site, and should better be named primary redo logs. You create them on the standby site only to be prepared for failover, when it will become the primary and opened read-write. But let&#8217;s be clear: online redo logs are not used when database is not online, and mount is not online.<\/p>\n<p>The standby redo logs are not standby at all. They are actively used on the standby site and this is why thew are called &#8216;standby. On the primary, they are not used, just there to be ready when the primary becomes a standby after a failover.<\/p>\n<h3>Members<\/h3>\n<p>We have seen why we multiplex the online redo logs:<\/p>\n<ul>\n<li>it protects the transactions because without multiplexing you loose transactions when loosing one group<\/li>\n<li>it protects the instance availability because without multiplexing you crash the instance when loosing one group<\/li>\n<\/ul>\n<p>But this is different with standby redo logs. <\/p>\n<ul>\n<li>it is an additional protection. Transactions are still persistent on the primary even if you loose a standby log group.<\/li>\n<li>the primary is still available even if one standby cannot be SYNC<\/li>\n<\/ul>\n<p>Of course, if in Maximum Protection mode the availability of the primary is compromised when the standby cannot apply the redo in SYNC. But in this protection mode you probably have multiple standby and the loss of one standby redo log on one standby site it not a problem.<\/p>\n<h3>Redo transport and redo apply<\/h3>\n<p>I said that transactions are still persisted on the primary, but even without standby redo logs they are still shipped to standby site, but in ASYNC mode. This means that in order to loose transactions in case of the loss of a standby redo log group, you need to experience this file loss, and primary site failure and network failure at the same time. The probability for this is very low and having an additional member do not lower the risk.<\/p>\n<p>Of course, I&#8217;ve tested what happens. I have two standby redo log members and I removed all of them one minute ago:<\/p>\n<pre><code>DGMGRL for Linux: Release 12.2.0.1.0 - Production on Fri Mar 17 14:47:45 2017\n&nbsp;\nCopyright (c) 1982, 2016, Oracle and\/or its affiliates.  All rights reserved.\n&nbsp;\nWelcome to DGMGRL, type \"help\" for information.\nConnected to \"ORCLA\"\nConnected as SYSDBA.\n&nbsp;\nDatabase - orclb\n&nbsp;\n  Role:               PHYSICAL STANDBY\n  Intended State:     APPLY-ON\n  Transport Lag:      0 seconds (computed 0 seconds ago)\n  Apply Lag:          1 minute 30 seconds (computed 0 seconds ago)\n  Average Apply Rate: 0 Byte\/s\n  Active Apply Rate:  0 Byte\/s\n  Maximum Apply Rate: 0 Byte\/s\n  Real Time Query:    ON\n  Instance(s):\n    ORCLB\n&nbsp;\n  Database Warning(s):\n    ORA-16853: apply lag has exceeded specified threshold\n    ORA-16857: member disconnected from redo source for longer than specified threshold\n    ORA-16826: apply service state is inconsistent with the DelayMins property\n    ORA-16789: standby redo logs configured incorrectly\n<\/code><\/pre>\n<p>As you can see, when there is no member remaining, the APPLY is stuck but transport still happens, in ASYNC to archived logs.<br \/>\nThe standby alert log mentions the failure:<\/p>\n<pre><code>2017-03-17T14:51:21.209611+01:00\nErrors in file \/u01\/app\/oracle\/diag\/rdbms\/orclb\/ORCLB\/trace\/ORCLB_rsm0_6568.trc:\nORA-00313: open failed for members of log group 5 of thread 1\nORA-00312: online log 5 thread 1: '\/u01\/oradata\/ORCLB\/onlinelog\/m5.log'\nORA-27048: skgfifi: file header information is invalid\nAdditional information: 2\nORA-00312: online log 5 thread 1: '\/u01\/oradata\/ORCLB\/onlinelog\/o1_mf_5_dbvmxd52_.log'\nORA-27048: skgfifi: file header information is invalid\nAdditional information: 2<\/code><\/pre>\n<p>and the SYNC mode cannot continue without standby redo logs:<\/p>\n<pre><code>03\/17\/2017 14:58:15\nFailed to open SRL files. ORA-313\nRedo Apply is running without NODELAY option while DelayMins=0\nFailed to open SRL files. ORA-313\nError: LogXptMode value 'SYNC' of requires this database to have standby redo logs, but they are not configured correctly.\n03\/17\/2017 14:59:15\nFailed to open SRL files. ORA-313\nRedo Apply is running without NODELAY option while DelayMins=0\nFailed to open SRL files. ORA-313\nError: LogXptMode value 'SYNC' of requires this database to have standby redo logs, but they are not configured correctly.<\/code><\/pre>\n<p>Sure, you don&#8217;t want to loose the standby redo member. But the risk is not higher than loosing any other files, and this is why there is no reason to multiplex it. Standby redo logs are not the same as the primary online redo logs. On similar hardware, you need same size and you need one more group, but no reason to multiplex the same.<\/p>\n<h3>Documentation<\/h3>\n<p>The confusion may come from old documentation. The <a href=\"https:\/\/docs.oracle.com\/cd\/B19306_01\/server.102\/b14239\/create_ps.htm#i1225703\" target=\"_blank\" rel=\"noopener noreferrer\">10<em>g<\/em> documentation<\/a> says:<br \/>\n<em>For increased availability, consider multiplexing the standby redo log files, similar to the way that online redo log files are multiplexed.<\/em><br \/>\nThis documentation dates from 2005 and systems have changed about availability of files. <\/p>\n<p>More recent documentation is the white paper on <a href=\"http:\/\/www.oracle.com\/technetwork\/database\/availability\/sync-2437177.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Best Practices for Synchronous Redo Transport<\/a> which mentions: <em>It is critical for performance that standby redo log groups only contain a single member<\/em><\/p>\n<h3>So what?<\/h3>\n<p>At the time of 10<em>g<\/em> we had a LUN for redo logs and were not concerned by the size, but more by its unavailability. Things change. Losing a file, and only one file, today is extremely rare. We are more concerned about consolidation and performance. Having 4 online groups, 200MB or 500MB, and 5 standby groups, all multiplexed, for many databases will take space. And this space you want to allocate it on the fastest disks because user commits wait on log writes (on primary and standby except in Max Performance). You don&#8217;t want to over-allocate the space here. Better have larger online redo logs. And your goal is that network shipping + standby log writing takes not longer than local write to online redo logs, so that Data Guard protection do not increase commit latency. Multiplexing standby redo logs increases the risk to get longer writes on standby site. <\/p>\n<p>So if you have your standby redo logs multiplexed, it&#8217;s not wrong. But things change and today you may prefer to save space and performance overhead with only one member.<\/p>\n<p>Before writing this blog post, my poll on twitter had 40 votes. Only 28% mentioned no multiplexing. But twitter poll is not exact science as you can see that 8 people answered 42 members \ud83d\ude09<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">Because I&#39;ve seen lot of misunderstanding about it, I&#39;m curious to know how many members you have in your standby redo logs<\/p>\n<p>&mdash; Franck Pachot (@FranckPachot) <a href=\"https:\/\/twitter.com\/FranckPachot\/status\/842774090020732928?ref_src=twsrc%5Etfw\">March 17, 2017<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . I see lot of databases with two members for redo logs and also two members for standby redo logs. Why not, but when asking I realized that there are some mis-comprehension about it. And what was recommended 10 years ago may be different today.<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[221,96],"type_dbi":[],"class_list":["post-9873","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-data-guard","tag-oracle"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How many members for standby redo logs? - dbi Blog<\/title>\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.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How many members for standby redo logs?\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . I see lot of databases with two members for redo logs and also two members for standby redo logs. Why not, but when asking I realized that there are some mis-comprehension about it. And what was recommended 10 years ago may be different today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-18T15:43:32+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"How many members for standby redo logs?\",\"datePublished\":\"2017-03-18T15:43:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/\"},\"wordCount\":936,\"commentCount\":0,\"keywords\":[\"Data Guard\",\"Oracle\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/\",\"name\":\"How many members for standby redo logs? - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2017-03-18T15:43:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/how-many-members-for-standby-redo-logs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How many members for standby redo logs?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/oracle-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How many members for standby redo logs? - dbi Blog","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.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/","og_locale":"en_US","og_type":"article","og_title":"How many members for standby redo logs?","og_description":"By Franck Pachot . I see lot of databases with two members for redo logs and also two members for standby redo logs. Why not, but when asking I realized that there are some mis-comprehension about it. And what was recommended 10 years ago may be different today.","og_url":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/","og_site_name":"dbi Blog","article_published_time":"2017-03-18T15:43:32+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"How many members for standby redo logs?","datePublished":"2017-03-18T15:43:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/"},"wordCount":936,"commentCount":0,"keywords":["Data Guard","Oracle"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/","url":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/","name":"How many members for standby redo logs? - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2017-03-18T15:43:32+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/how-many-members-for-standby-redo-logs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How many members for standby redo logs?"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=9873"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9873\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9873"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}