A method of performing a snapshot query in a database undergoing recovery
allows access to the database during rollback or undo operations. The
method includes allowing the query to detect whether a redo lock is
present on a data item and if so, waiting until subsequent rollback
operations release the lock. If another user has placed an exclusive lock
on a data item of the database, the query may continue by reading a
version of the data item form the version store. In an embodiment where a
mirror database is used for recovery, the constant redo operations have
an associated version store. Upon failover to the mirror database,
queries may begin during the undo phase of recovery by allowing a query
to read the version store of redo operations.