Per ongeluk Active data guard gebruikt – een beveiliging

Oracle Data Guard heeft naast de physical standby oplossing ook nog Active Data Guard ook bekend als real-time query. Het verschil met een ‘gewone’ physical standby zit in het feit dat bij Active Data Guard de standby omgeving ook geschikt is om queries te verwerken terwijl wijzigingen uit de primary worden toegepast op de standby database, redo apply.

Oracle 11g Release 2 : Opening a Physical Standby Database

Oracle 12c Release 1 : Opening a Physical Standby Database 

Wanneer je een physical standby database opent zonder de redo apply op die physical standby te stoppen, wordt zonder waarschuwing de database geopend. Je hebt nu een standby omgeving die open is voor query én waarin de wijzigingen uit de primaire omgeving worden verwerkt. Je bent nu in overtreding als je geen Active Data Guard licentie hebt, want voor deze functionaliteit is een aparte licentie vereist.

Om te voorkomen dat Active Data Guard wordt gebruikt terwijl je daar geen licentie voor hebt, moet redo apply gestopt worden op de physical standby database. Pas daarna kan de physical standby database geopend worden, zonder dat de licentie voorwaarden worden overtreden. Het is heel realistisch dat dit op een gegeven moment wordt vergeten.

Om het per ongeluk activeren van Active Data Guard te voorkomen kun je een beveiliging inbouwen met de hidden parameter _query_on_physical. Door deze op FALSE te zetten kan de physical standby database niet geopend worden, zonder de redo apply eerst te stoppen op de physical standby database. De default waarde van deze parameter is TRUE

Als dit toch geprobeerd wordt verschijnt de melding:

ALTER DATABASE OPEN
*
ERROR at line 1: ORA-16669: instance cannot be opened because the Active Data Guard option is disabled

Om nu toch de standby database te kunnen openen, moeten de volgende stappen worden doorlopen:

Data Guard Broker:

DGMGRL>edit database 'DB_STBY' set state=APPLY-OFF;

Sqlplus:

SQL> alter database open;

Om hierna de database weer als physical standby te openen:

Sqlplus:

SQL> shutdown immediate;
SQL> startup mount;

Data Guard Broker:

DGMGRL> edit database 'DB_STBY' set state=APPLY-ON; 

Samenvattend lijkt het nuttig om de parameter _query_on_physical expliciet te zetten om dure vergissingen te voorkomen, als je niet in het bezit bent van de Activie Data Guard licenties en wel de physical standby database wilt gebruiken voor queries.

Scroll to Top