Is there a database (either SQL or NoSQL) which allows you to keep a history or log of all past transactions so that you can easily rollback to any given point in time (similar to how git manages a source repository)? Taking a checkpoint after every transaction probably will do the same job, but keeping a history looks more efficient.


2 Answers 2


SQL Server with database in FULL recovery model permits you to do a point-in-time restore.

There is no need in "Taking a checkpoint after every transaction" because of write ahead logging.

To know more about it you can read the followin article: SQL Server point in time restore


The RESTORE ... WITH STOPAT option allows you to restore your database to a point in time. This gives you the ability to restore a database prior to an event that occurred that was detrimental to your database. In order for this option to work, the database needs to be either in the FULL or Bulk-Logged recovery model and you need to be doing transaction log backups.

And here is the official documentation: Restore a SQL Server Database to a Point in Time (Full Recovery Model)


All major relational databases support this. The concept is known as "point in time recovery".

In Postgres this is done using WAL archiving.

In Oracle this is done by running in archivelog mode.

Additionally Oracle supports so called "flashback" operations that can be applied on different levels, e.g. flashback database

For SQL Server, see sepupic's answer

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.