Environment
- OraOperator: v2.1.0
- Kubernetes: k3s v1.35.5 (single node), containerd
- Database image: Oracle Database 23ai (23.26.1) Enterprise Edition
Summary
When configuring the Data Guard broker on a 23ai database, the operator issues a DGMGRL
ADD DATABASE ... MAINTAINED AS PHYSICAL command. The MAINTAINED AS PHYSICAL clause was removed in
23ai, so the command fails with a syntax error and the standby is never added to the broker
configuration — leaving a single-member config (ORA-16627).
Steps to reproduce
- Primary + physical-standby SIDB pair on a 23ai EE image.
- Create the
DataguardBroker and watch the reconcile exec output.
Actual
Verbatim from the reconcile exec output:
ADD DATABASE ORCLSTBY AS CONNECT IDENTIFIER IS gold-standby:1521/ORCLSTBY MAINTAINED AS PHYSICAL;
^
Syntax error before or at "MAINTAINED"
The controller continues regardless (Object "orclstby" was not found, then sets protection mode and
"enables" FSFO), leaving a single-member configuration with ORA-16627.
A second, related gap observed at the same time: the operator sets dg_broker_start=TRUE only on the
primary, not the standby — so even the manual ADD DATABASE fails until the standby's
dg_broker_start is enabled.
Expected
On 23ai, issue ADD DATABASE <name> AS CONNECT IDENTIFIER IS '<descriptor>'; (no
MAINTAINED AS PHYSICAL), and ensure dg_broker_start=TRUE on both databases before broker
configuration.
Suggested fix
- Drop the
MAINTAINED AS PHYSICAL clause for 23ai (version-gate the DGMGRL syntax).
- Set
dg_broker_start=TRUE on the standby as well as the primary.
Workaround (one-time, manual)
On the standby: ALTER SYSTEM SET dg_broker_start=TRUE SCOPE=BOTH;
On the primary pod via dgmgrl:
ADD DATABASE ORCLSTBY AS CONNECT IDENTIFIER IS 'gold-standby:1521/ORCLSTBY';
EDIT DATABASE ORCLSTBY SET PROPERTY LogXptMode='SYNC';
ENABLE CONFIGURATION;
The operator's later reconciles then see the member present, skip ADD DATABASE, and proceed.
Environment
Summary
When configuring the Data Guard broker on a 23ai database, the operator issues a DGMGRL
ADD DATABASE ... MAINTAINED AS PHYSICALcommand. TheMAINTAINED AS PHYSICALclause was removed in23ai, so the command fails with a syntax error and the standby is never added to the broker
configuration — leaving a single-member config (
ORA-16627).Steps to reproduce
DataguardBrokerand watch the reconcile exec output.Actual
Verbatim from the reconcile exec output:
The controller continues regardless (
Object "orclstby" was not found, then sets protection mode and"enables" FSFO), leaving a single-member configuration with
ORA-16627.A second, related gap observed at the same time: the operator sets
dg_broker_start=TRUEonly on theprimary, not the standby — so even the manual
ADD DATABASEfails until the standby'sdg_broker_startis enabled.Expected
On 23ai, issue
ADD DATABASE <name> AS CONNECT IDENTIFIER IS '<descriptor>';(noMAINTAINED AS PHYSICAL), and ensuredg_broker_start=TRUEon both databases before brokerconfiguration.
Suggested fix
MAINTAINED AS PHYSICALclause for 23ai (version-gate the DGMGRL syntax).dg_broker_start=TRUEon the standby as well as the primary.Workaround (one-time, manual)
On the standby:
ALTER SYSTEM SET dg_broker_start=TRUE SCOPE=BOTH;On the primary pod via
dgmgrl:The operator's later reconciles then see the member present, skip
ADD DATABASE, and proceed.