Transaction
保留交易歷史以便於回滾
是否有一個數據庫(SQL 或 NoSQL)允許您保留所有過去事務的歷史記錄或日誌,以便您可以輕鬆回滾到任何給定的時間點(類似於 git 管理源儲存庫的方式)?在每筆交易之後建立一個檢查點可能會做同樣的工作,但保持歷史看起來更有效。
具有恢復模式數據庫的 SQL Server
FULL
允許您執行point-in-time restore
.由於
write ahead logging
.要了解更多資訊,您可以閱讀以下文章:SQL Server point in time restore
概述
該
RESTORE ... WITH STOPAT
選項允許您將數據庫恢復到某個時間點。這使您能夠在發生對數據庫有害的事件之前恢復數據庫。為了使此選項起作用,數據庫需要處於恢復模式FULL
,Bulk-Logged
並且您需要進行事務日誌備份。這裡是官方文件: Restore a SQL Server Database to a Point in Time (Full Recovery Model)
所有主要的關係數據庫都支持這一點。這個概念被稱為“時間點恢復”。
在 Postgres 中,這是使用WAL 歸檔完成的。
在 Oracle 中,這是通過在歸檔日誌模式下執行來完成的。
此外,Oracle 支持可以應用於不同級別的所謂“閃回”操作,例如閃回數據庫
對於 SQL Server,請參閱sepupic 的答案