Transaction

保留交易歷史以便於回滾

  • April 3, 2022

是否有一個數據庫(SQL 或 NoSQL)允許您保留所有過去事務的歷史記錄或日誌,以便您可以輕鬆回滾到任何給定的時間點(類似於 git 管理源儲存庫的方式)?在每筆交易之後建立一個檢查點可能會做同樣的工作,但保持歷史看起來更有效。

具有恢復模式數據庫的 SQL ServerFULL允許您執行point-in-time restore.

由於write ahead logging.

要了解更多資訊,您可以閱讀以下文章:SQL Server point in time restore

概述

RESTORE ... WITH STOPAT選項允許您將數據庫恢復到某個時間點。這使您能夠在發生對數據庫有害的事件之前恢復數據庫。為了使此選項起作用,數據庫需要處於恢復模式FULLBulk-Logged並且您需要進行事務日誌備份。

這裡是官方文件: Restore a SQL Server Database to a Point in Time (Full Recovery Model)

所有主要的關係數據庫都支持這一點。這個概念被稱為“時間點恢復”。

在 Postgres 中,這是使用WAL 歸檔完成的。

在 Oracle 中,這是通過在歸檔日誌模式下執行來完成的。

此外,Oracle 支持可以應用於不同級別的所謂“閃回”操作,例如閃回數據庫

對於 SQL Server,請參閱sepupic 的答案

引用自:https://dba.stackexchange.com/questions/223405