Viscosity
logo-black
  • Data
    • Database Services
      • Performance Assessment
      • Proactive Healthcheck
      • Database Migration & Consolidation
      • Performance Tuning
    • Microsoft Services
      • Microsoft Azure Services
      • Microsoft SQL Server Services
      • Microsoft Gold Azure Partner
    • Oracle Services
      • Oracle Database 19c
      • Oracle Database 23ai
      • RAC
      • GoldenGate
      • Data Guard
      • Oracle & SQL Database
    • Viscosity Remote Services
  • Apps
    • App Dev Services
    • Oracle APEX
    • Viscosity AMP
    • Viscosity-ai
    • Shane-ai
  • Cloud
    • Cloud Services
    • Hybrid Cloud
    • Viscosity Edge Cloud
    • Virtualization & Cloud Expertise
    • Microsoft Azure Services
  • Infrastructure
    • Infrastructure Services
    • Exadata
      • Exadata Resale & Services
    • Oracle Database Appliance
      • Oracle Database Appliance Resale & Services
      • ODA Health Checks
    • Zero Data Loss Recovery Appliance
    • VMware to KVM Migration
  • Events
    • Upcoming Events
    • Virtual Training
    • 2025 Past Events
    • 2024 Past Events
    • 2023 Past Events
    • 2022 Past Events
  • About
    • About Us
    • News
    • Blogs
    • Publications
    • Contact
Hit enter to search or ESC to close
ENGAGE WITH US

Oracle database , Data Guard , Oracle AI Database 26ai , Data Guard Broker

On the Tenth Day of 26ai, Viscosity Gave To Me…

By Sean Scott
December 19, 2025

New Data Guard Views in Oracle AI Database 26ai

Plus a new, undocumented behavior

Oracle AI Database 26ai introduces four new fixed views for reporting status and performance in Data Guard environments. Let’s review these changes and see how they can help database administrators better understand and manage Data Guard!

 

(Demonstrations in this post are from a simple Data Guard configuration named dg26ai, consisting of two Oracle AI Database 26ai databases (version 26.23). The primary database in these examples is orion, and the standby is taurus.)

 

v$dg_broker_property

This is perhaps the most valuable of the new views, adding long-awaited functionality (previously only available through an unsupported workaround,  querying DBMS_DRS). The notable columns in this view are:

  • MEMBER: This reports the member a configuration is associated with, which can be a configuration (in my examples, dg26ai) or one of the participating databases.
  • INSTANCE: On RAC systems, this shows instance-specific configurations.
  • DATAGUARD_ROLE: Indicates what role a member plays in the configuration. In this simple setup, you’ll see CONFIGURATION, PRIMARY, and PHYSICAL STANDBY.
  • PROPERTY: The name of the Data Guard property.
  • PROPERTY_TYPE: Use this field to distinguish between CONFIGURABLE and MONITORABLE properties.
  • VALUE: The current value for the property.
  • VALID_ROLE: Indicates the role a property applies to. This adds insight into certain properties. For example, certain properties are only used when a member is the standby.

Sample output from my environment (truncated for brevity):



MEMBER     DATAGUARD_ROLE     PROPERTY_TYP SCOPE           PROPERTY                        VALUE
---------- ------------------ ------------ --------------- ------------------------------- --------------------
dg26ai     CONFIGURATION      CONFIGURABLE CONFIGURATION   BystandersFollowRoleChange      ALL
                                                           CommunicationTimeout            180
                                                           ConfigurationSimpleName         dg26ai
                                                           ConfigurationWideServiceName    dg26ai_CFG
...
orion      PRIMARY            CONFIGURABLE INSTANCE        StaticConnectIdentifier         (DESCRIPTION=(ADDRES
                                           MEMBER          AlternateLocation
                                                           ApplyInstanceTimeout            0
                                                           ApplyInstances                  0
                                                           ApplyLagThreshold               30
...
                              MONITORABLE  INSTANCE        SidName                         (monitor)
                                                           TopWaitEvents                   (monitor)
                                           MEMBER          InconsistentLogXptProps         (monitor)
                                                           LogXptStatus                    (monitor)
...
taurus     PHYSICAL STANDBY   CONFIGURABLE INSTANCE        StaticConnectIdentifier         (DESCRIPTION=(ADDRES
                                           MEMBER          AlternateLocation
                                                           ApplyInstanceTimeout            0
                                                           ApplyInstances                  0
                                                           ApplyLagThreshold               30
...
                              MONITORABLE  INSTANCE        SidName                         (monitor)
                                                           TopWaitEvents                   (monitor)
                                           MEMBER          InconsistentLogXptProps         (monitor)
                                                           LogXptStatus                    (monitor)

 

When evaluating Data Guard environments, I often see “bespoke reporting,” efforts to extract Data Guard status and state information or mimic the results of Broker output by querying non-Data Guard tables and views. The addition of v$dg_broker_property should help alleviate this practice!

 

v$dg_broker_role_change

This view compiles Data Guard role changes, switchover and failover, performed in the configuration. Most of the columns should be self-explanatory, but one I’d like to highlight is FS_FAILOVER_REASON. If you’re running Fast-Start Failover (and you should, it’s a requirement for Gold, Platinum, and Diamond reference architectures for mission-critical workloads under Oracle’s latest Maximum Availability Architecture Best Practices), FSFO performs failover automatically. This column identifies the condition FSFO detected that initiated the event.

 

On my test system, this view shows my two switchover tests:



EVENT      STANDBY_TY OLD_PRIMAR NEW_PRIMAR BEGIN_TIME                       END_TIME
---------- ---------- ---------- ---------- -------------------------------- --------------------------------
Switchover Physical   orion      taurus     18-DEC-25 03.19.43.000000000 PM  18-DEC-25 03.19.53.000000000 PM
Switchover Physical   taurus     orion      18-DEC-25 03.24.39.000000000 PM  18-DEC-25 03.24.44.000000000 PM

 

v$fast_start_failover_config

Like v$dg_broker_property, this addition to the database catalog offers database administrators reporting access for their Fast-Start Failover configuration. One notable thing about this view, in RAC environments, the OBSERVER_PRESENT column reports YES on all member instances if the Observer is connected to any instance.

 

v$fs_lag_histogram

When Fast-Start Failover is enabled, Data Guard calculates the FSFO lag every minute. Histograms for those lag checks are available here, and you can use this view, together with v$fs_observer_histogram, to establish values for two important FSFO properties: FastStartFailoverLagLimit and FastStartFailoverThreshold, as follows:

 

After setting up Data Guard, enable Fast-Start Failover in Observe Only mode. In Observe Only mode, FSFO captures information about events that would have triggered a failover event, without actually performing a failover. Importantly, Data Guard still collects latency statistics in Observe Only mode, providing the information you need to understand and adjust to your network conditions.

 

Run things this way for a representative trial period, then use the contents of these views to determine the ideal failover settings in your environment:

  • FastStartFailoverThreshold: Set this value based on the WAIT_TIME threshold in v$fs_observer_histogram, using a value greater than the maximum wait between Observer ping failures.
  • FastStartFailoverLagLimit: Set this to a value larger than the maximum LAG_TIME reported from v$fs_lag_histogram.

Setting these limits according to known network throughput allows DBAs to tune their Data Guard environments, preventing false positives.

 

New Behavior

One change I’ve noticed in Oracle AI Database 26ai Data Guard is a change to Data Guard Broker behavior when adding a database to a configuration. The maintained as physical clause of the add database command was deprecated in 11g, but I wasn't able to find any documentation showing it was desupported.

 

The command works in 19c but fails in 26ai. (The help output for the add database command is also different.)

 

Oracle Database 19c



DGMGRL>  add database taurus as connect identifier is 'TAURUS:1521/taurus' maintained as physical;
Database "taurus" added

DGMGRL> help add database

Adds a member to the broker configuration

Syntax:

  ADD { RECOVERY_APPLIANCE | DATABASE | FAR_SYNC } <object name>
    [AS CONNECT IDENTIFIER IS <connect identifier>];

 

Oracle AI Database 26ai

 


DGMGRL>  add database taurus as connect identifier is 'TAURUS:1521/taurus' maintained as physical;
  add database taurus as connect identifier is 'TAURUS:1521/taurus' maintained as physical;

Syntax error before or at "maintained"

DGMGRL> help add database

Adds a member to the broker configuration

Syntax:

  ADD CONFIGURATION [<configuration-name>]
    CONNECT IDENTIFIER IS <connect-identifier>;

  ADD { DATABASE | FAR_SYNC | MEMBER | RECOVERY_APPLIANCE } <db-unique-name>
    [AS CONNECT IDENTIFIER IS <connect-identifier>];

  ADD PLUGGABLE DATABASE <pdb-name> AT <target-db-unique-name>
    SOURCE IS <source-pdb-name> AT <source-db-unique-name>
    [PDBFileNameConvert IS <filename-convert-string>]
    [<create-pluggable-database-options>];

 

Yes, I know! I’ve been using a long-deprecated clause for years out of habit, propagating the syntax from one version to the next, and I should know better. Shame on me!

 

After speaking with Ludovico Caldara, the Data Guard Product Manager, I learned that a desupport notice was probably overlooked in version 12.1, and that the supporting code was removed in 2021.

 

Happy Holidays! 🎄

 

 

Ready to Take Your Oracle Skills to the Next Level?

Join OraPub, Viscosity’s training hub for Oracle professionals, packed with expert-led courses and exclusive paid member benefits.

Check out Viscosity’s event page for upcoming virtual and on-site training opportunities. 

 

Unlock Your OraPub Membership
Upcoming Viscosity Events

 

All posts
About Author
Sean Scott

Sean is an Oracle ACE Director, Oracle Cloud Infrastructure Certified Architect Professional, and Oracle Autonomous Database Certified Specialist. He's a Managing Principal Consultant with Viscosity North America, where he designs highly available and scalable databases, leads database modernization and migration projects, and coaches database teams on their journeys toward DevOps and automation. Sean is a featured speaker at user group conferences and events around the world and author of the Apress book, "Oracle on Docker: Running Oracle Databases in Linux Containers."

You might also like
SUBMIT YOUR COMMENT
logo footer

Viscosity's core expertise includes:

Data Transformation, Emerging Technology, High Availability & Scalability Solutions, Cloud Migrations, Performance Tuning, Data Integrations, Machine Learning, APEX Development, and Custom Application Development.


Solutions

Resources

Partnerships

Careers

Clients

 

Contact
Email: sales@viscosityna.com

Telephone:
(469) 444-1380

Address:
3016 Communications Pkwy Suite 200, Plano, TX 75093

Copyright 2025. All Rights Reserved by Viscosity North America.