{"id":2294,"date":"2026-01-28T18:17:29","date_gmt":"2026-01-28T16:17:29","guid":{"rendered":"https:\/\/www.ludovicocaldara.net\/dba\/?p=2294"},"modified":"2026-01-28T18:19:01","modified_gmt":"2026-01-28T16:19:01","slug":"dg26ai-minimized-stall","status":"publish","type":"post","link":"https:\/\/www.ludovicocaldara.net\/dba\/dg26ai-minimized-stall\/","title":{"rendered":"Data Guard 26ai &#8211; #2: Minimized Stall in Maximum Performance"},"content":{"rendered":"<p><a href=\"https:\/\/www.ludovicocaldara.net\/dba\/dg-26ai-series\/\">This post is part of a blog series.<\/a><\/p>\n<p>Did you know that Oracle Data Guard fast-start failover in maximum performance mode can briefly stall your primary database?<\/p>\n<p>Most users don\u2019t notice, but in environments with strict performance needs, these stalls can matter.<\/p>\n<p>Here\u2019s why: when the database shifts from <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/26\/refrn\/V-FAST_START_FAILOVER_CONFIG.html\">\u201cUNDER LAG\u201d to \u201cOVER LAG\u201d<\/a> status, the primary waits for the observer\u2019s acknowledgment. This pause ensures the database doesn\u2019t breach its recovery point objective set with the <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/26\/dgbkr\/oracle-data-guard-broker-properties.html#GUID-DFE7305F-318B-4DE2-99D5-76E4696843D7\">FastStartFailoverLagLimit<\/a> property, but it can last up to three seconds (default observer ping time).<\/p>\n<p><a href=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/fsfo-pre26ai-stall-acknowledge.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2295 size-full\" src=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/fsfo-pre26ai-stall-acknowledge.png\" alt=\"when transitioning to &quot;OVER LAG&quot; the primary stalls waiting for the observer's acknowlegment.\" width=\"745\" height=\"567\" srcset=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/fsfo-pre26ai-stall-acknowledge.png 745w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/fsfo-pre26ai-stall-acknowledge-300x228.png 300w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/fsfo-pre26ai-stall-acknowledge-394x300.png 394w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/a>Stalls are especially common if the standby can\u2019t keep up with primary redo generation, causing frequent state transitions.<\/p>\n<p><a href=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/26ai-lag-grace-period.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2296\" src=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/26ai-lag-grace-period.png\" alt=\"There's a grace period where the primary asks the observer to pre-acknowledge the state change before stalling.\" width=\"1003\" height=\"735\" srcset=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/26ai-lag-grace-period.png 1003w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/26ai-lag-grace-period-300x220.png 300w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/26ai-lag-grace-period-768x563.png 768w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/26ai-lag-grace-period-409x300.png 409w\" sizes=\"auto, (max-width: 1003px) 100vw, 1003px\" \/><\/a><br \/>\nNow in 26ai, the new <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/26\/dgbkr\/oracle-data-guard-broker-properties.html#GUID-9967A11B-66F3-4B06-96CC-295C68D3E35B\">FastStartFailoverLagGraceTime<\/a> property lets the observer acknowledge a \u201cpre-stall\u201d before reaching the real lag limit. That way, when the database hits the actual limit, it won\u2019t need to pause: the acknowledge\u2019s already done.<br \/>\nThis simple change removes stalls during state transitions, so even the strictest environments meet their performance goals.<\/p>\n<p><strong>What you need to do: <\/strong>set FastStartFailoverLagGraceTime to a value greater than 0 and lower or equal to 3 to make this feature effective. The default of 0 keeps the old behavior.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With 26ai, FastStartFailoverLagGraceTime cuts stalls during state changes, keeping the performance under control. <a href=\"https:\/\/www.ludovicocaldara.net\/dba\/dg26ai-minimized-stall\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[375,329],"tags":[],"class_list":["post-2294","post","type-post","status-publish","format-standard","hentry","category-oracle-ai-database-26ai","category-oracle-dg"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/2294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/comments?post=2294"}],"version-history":[{"count":3,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/2294\/revisions"}],"predecessor-version":[{"id":2393,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/2294\/revisions\/2393"}],"wp:attachment":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/media?parent=2294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/categories?post=2294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/tags?post=2294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}