{"id":2349,"date":"2026-02-19T01:40:49","date_gmt":"2026-02-18T23:40:49","guid":{"rendered":"https:\/\/www.ludovicocaldara.net\/dba\/?p=2349"},"modified":"2026-02-19T01:40:49","modified_gmt":"2026-02-18T23:40:49","slug":"dg26ai-primarydatabasecandidates","status":"publish","type":"post","link":"https:\/\/www.ludovicocaldara.net\/dba\/dg26ai-primarydatabasecandidates\/","title":{"rendered":"Data Guard 26ai &#8211; #15: Prevent standby databases from becoming primary"},"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>Often, Data Guard setups use many standby databases, but only some should ever become primary. Others might serve as clone masters, reporting, testing, or staging only.<br \/>\nPreviously, you couldn\u2019t prevent an unwanted switchover or failover to these restricted standby databases. This was risky: customers must keep production workloads off test systems.<br \/>\nOracle Database 26ai introduces a new broker property: <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/26\/dgbkr\/oracle-data-guard-broker-properties.html#GUID-8B434476-81E6-4835-A103-A4174DC322CD\">PrimaryDatabaseCandidates<\/a>. Set this to specify which databases can become primary. If you try to switch or fail over to a database not on the list, the broker blocks it.<\/p>\n<p><a href=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-scaled.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2350\" src=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-1024x443.png\" alt=\"Once PrimaryDatabaseCandidates property is set with a list of DBs, switchover and failover to other DBs fails.\" width=\"584\" height=\"253\" srcset=\"https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-1024x443.png 1024w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-300x130.png 300w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-768x332.png 768w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-1536x664.png 1536w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-2048x886.png 2048w, https:\/\/www.ludovicocaldara.net\/dba\/wp-content\/uploads\/2026\/01\/dg26ai-primarydatabasecandidates-500x216.png 500w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p>You can update the candidate list at any time, so it\u2019s flexible in emergencies.<\/p>\n<p>Note: this only blocks broker-initiated switchovers and failovers. Manual SQL conversions bypass this check.<\/p>\n<p>This enhancement has also been back-ported to 19.26.<br \/>\nMy colleague Alex Blyth\u2019s blogged about this property in the context of <a href=\"https:\/\/blogs.oracle.com\/exadata\/exadata-exascale\">Exascale<\/a>: <a href=\"https:\/\/alexblyth.net\/2026\/01\/12\/using-data-guard-broker-to-prevent-a-standby-database-becoming-the-primary\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/alexblyth.net\/2026\/01\/12\/using-data-guard-broker-to-prevent-a-standby-database-becoming-the-primary\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can now limit which standby databases can become primary in Data Guard 26ai, preventing accidental switchovers or failovers via the broker interface. <a href=\"https:\/\/www.ludovicocaldara.net\/dba\/dg26ai-primarydatabasecandidates\/\">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":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[375,329],"tags":[],"class_list":["post-2349","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\/2349","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=2349"}],"version-history":[{"count":3,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/2349\/revisions"}],"predecessor-version":[{"id":2426,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/2349\/revisions\/2426"}],"wp:attachment":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/media?parent=2349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/categories?post=2349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/tags?post=2349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}