System Change Numbers and Flashback Query
How ProvenDB for Oracle integrates with Oracle Flashback and SCNs
ProvenDB for Oracle can create proofs for the current state of the database or for a database point in time. These "point in time" proofs are created when the --includeScn option is specified in the
anchor command, or when ProvenDB for Oracle is running in
Point in time proofs require Oracle Flashback to be enabled and can take advantage of Oracle Flashback Data Archive if enabled.
When a point in time proof is created, ProvenDB for Oracle takes note of the current System Change Number (SCN) of the database. Table data is retrieved for that SCN, and the key for each rows hash incorporates the SCN. For instance, in a point in time proof, the key for a specific row proof might be:
which would specify a proof for RowId
AAAR5UAAMAAAAVvAAg and SCN
When validating such a proof, ProvenDB for Oracle will attempt to retrieve the RowId for the SCN using a flashback query. This query may fail if Flashback Data Arvchive is not enabled or if the
undo_retention period has been exceeded.
Even if Oracle Flashback Data Archive is not enabled a point in time proof might still be useful if the
--validateoptions were specified when the
anchorcommand was run. In this case, proofs for all rowIds within the proof scope will be exported to the proof file and can be validated independently of the proof.
Updated over 2 years ago