Flashback On… line

Si on se refère à cette section de la documentation d’Oracle 11.2, on ne peut pas activer ni désactiver le mode Flashback database en ligne :

Use this clause to put the database in or take the database out of FLASHBACK mode. You can specify this clause only if the database is in ARCHIVELOG mode and you have already prepared a fast recovery area for the database.You can specify this clause when the database is mounted but not open.

Seulement voilà… Déjà en 10.2, vous pouvez désactiver ce mode sans arrêter la base de données, ce que confirme la note « How To Disable Flashback Database Without A Bounce [ID 833584.1]« . Et bien, le savez-vous ?
A partir d’Oracle 11.2, vous pouvez également dans certaines conditions passer en flashback alors que votre base de données est ouverte. Pour une description précise des limites et risques que vous prenez, lisez « Flashback Database Best Practices & Performance [ID 565535.1]« .

Voici une démonstration à couper le souffle 😉 :

select open_mode, flashback_on
from v$database;

OPEN_MODE FLASHBACK_ON
-------------------- ------------
READ WRITE NO


alter database flashback on;

Database altered.

select open_mode, flashback_on
from v$database;

OPEN_MODE FLASHBACK_ON
-------------------- ------------
READ WRITE YES


alter database flashback off;

Database altered.

select open_mode, flashback_on
from v$database;

OPEN_MODE FLASHBACK_ON
-------------------- ------------
READ WRITE NO

Cette nouvelle fonctionnalité ne fait pas partie de la liste des « new features » ; probablement à cause des restrictions associées. Si ça peut permettre d’éviter un arrêt/redémarrage de plus, c’est déjà ca !