Sql server資料庫記錄修改追蹤和恢復的解決方案
Sql server資料庫記錄修改追蹤和恢復的解決方案
在專案開發中,可能很多人都遇到這樣客戶要求:使用者運算元據庫關鍵記錄時要記錄使用者的ID,時間,修改的內容等,在必要的情況下要回滾到某一時刻的記錄內容。如何解決?這裡我根據自己的工作經驗總結了三種解決方案,如有不當或者更好的方案請賜教 : )。
1.資料表冗餘記錄法
在關鍵的資料庫表中,加入 "建立時的日期時間"、"建立使用者"、"修改或刪除時的日期時間"、"修改或刪除使用者"、"記錄狀態" 等欄位,當然了欄位名可以簡化,這裡為了更好的說明。“記錄狀態”包括“當前可用”和“存檔”兩種狀態。當使用者修改記錄時,要執行兩步操作 1).更新當前資料庫記錄,記錄修改者和時間,把“記錄狀態”改成“存檔”。2)新建一條記錄,把修改者和時間作為建立者和時間存入,儲存新的記錄內容,而“記錄狀態”為“當前可用”。 如果使用者刪除記錄,只是執行第一步操作即可。
這種方案可以用程式在前臺方便的察看記錄修改歷史情況,並可以很容易的回滾到“某一時刻”,這裡的回滾不是真正的回滾,仍然要在表裡新建記錄,和上面提到的修改記錄操作相同,只不過記錄的內容是“某一時刻”的內容而已。
使用這種方法會造成資料庫表中記錄的過多儲存,在查詢和統計時效能會有影響。
2.新建資料表記錄操作
在資料庫中為關鍵資料表建立對應的“操作記錄表”,所有對關鍵記錄的修改、刪除甚至讀取都可以記錄在“操作記錄表”中,具體的實施可以在程式程式碼中控制,但更好的方法是可以使用觸發器控制。
這種方案也可以在前臺方便的察看記錄修改歷史情況,並可以很容易的回滾到“某一時刻”。但由於為每一個關鍵資料表都建立了“操作記錄表”也造成了Sql server的效能影響。
另外有第三方提供了採用這種方案的輔助程式:OmniAudit
下載http://www.ttdown.com/SoftView/SoftView_27817.html
3.使用Sql Server日誌
我們知道Sql Server資料庫除了資料檔案外,還有日誌檔案,日誌檔案記錄資料庫的變化情況,如果我們能察看日誌檔案的內容也就等於知道了資料庫的操作歷史,但是微軟沒有提供諸如察看sql日誌的方法和介面等,好在有一個軟體提供了這種功能:
Lumigent Entegra For SQL Server ,下載頁面http://www.ttdown.com/SoftView/SoftView_30135.html
它能跟蹤資料庫的所有改動情況,並且提供回滾功能,還可以匯出操作歷史等。
這種方案的好處是不為資料庫增加任何負擔就可以察看記錄修改歷史情況,並可以很容易的回滾到“某一時刻”。但是必須使用第三方的軟體,而不能在自己程式的前臺操作。另外Lumigent Entegra For SQL Server v2.3.1對中文支援不太好,有些鬱悶。
在專案開發中,可能很多人都遇到這樣客戶要求:使用者運算元據庫關鍵記錄時要記錄使用者的ID,時間,修改的內容等,在必要的情況下要回滾到某一時刻的記錄內容。如何解決?這裡我根據自己的工作經驗總結了三種解決方案,如有不當或者更好的方案請賜教 : )。
1.資料表冗餘記錄法
在關鍵的資料庫表中,加入 "建立時的日期時間"、"建立使用者"、"修改或刪除時的日期時間"、"修改或刪除使用者"、"記錄狀態" 等欄位,當然了欄位名可以簡化,這裡為了更好的說明。“記錄狀態”包括“當前可用”和“存檔”兩種狀態。當使用者修改記錄時,要執行兩步操作 1).更新當前資料庫記錄,記錄修改者和時間,把“記錄狀態”改成“存檔”。2)新建一條記錄,把修改者和時間作為建立者和時間存入,儲存新的記錄內容,而“記錄狀態”為“當前可用”。 如果使用者刪除記錄,只是執行第一步操作即可。
這種方案可以用程式在前臺方便的察看記錄修改歷史情況,並可以很容易的回滾到“某一時刻”,這裡的回滾不是真正的回滾,仍然要在表裡新建記錄,和上面提到的修改記錄操作相同,只不過記錄的內容是“某一時刻”的內容而已。
使用這種方法會造成資料庫表中記錄的過多儲存,在查詢和統計時效能會有影響。
2.新建資料表記錄操作
在資料庫中為關鍵資料表建立對應的“操作記錄表”,所有對關鍵記錄的修改、刪除甚至讀取都可以記錄在“操作記錄表”中,具體的實施可以在程式程式碼中控制,但更好的方法是可以使用觸發器控制。
這種方案也可以在前臺方便的察看記錄修改歷史情況,並可以很容易的回滾到“某一時刻”。但由於為每一個關鍵資料表都建立了“操作記錄表”也造成了Sql server的效能影響。
另外有第三方提供了採用這種方案的輔助程式:OmniAudit
下載http://www.ttdown.com/SoftView/SoftView_27817.html
3.使用Sql Server日誌
我們知道Sql Server資料庫除了資料檔案外,還有日誌檔案,日誌檔案記錄資料庫的變化情況,如果我們能察看日誌檔案的內容也就等於知道了資料庫的操作歷史,但是微軟沒有提供諸如察看sql日誌的方法和介面等,好在有一個軟體提供了這種功能:
Lumigent Entegra For SQL Server ,下載頁面http://www.ttdown.com/SoftView/SoftView_30135.html
它能跟蹤資料庫的所有改動情況,並且提供回滾功能,還可以匯出操作歷史等。
這種方案的好處是不為資料庫增加任何負擔就可以察看記錄修改歷史情況,並可以很容易的回滾到“某一時刻”。但是必須使用第三方的軟體,而不能在自己程式的前臺操作。另外Lumigent Entegra For SQL Server v2.3.1對中文支援不太好,有些鬱悶。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-553439/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 備份和恢復SQL Server資料庫SQLServer資料庫
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 伺服器SQL server資料庫被加密恢復方案伺服器SQLServer資料庫加密
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- SQL Server 系統資料庫恢復SQLServer資料庫
- SQL Server 資料庫備份還原和資料恢復SQLServer資料庫資料恢復
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- SQL Server和Oracle間的資料同步解決方案SQLServerOracle
- sql server跟蹤資料庫SQLServer資料庫
- SQL追蹤和事件追蹤SQL事件
- SQL Server 2008資料庫恢復模式詳解SQLServer資料庫模式
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- SQL Server資料庫恢復常見問題SQLServer資料庫
- SQL Server無日誌資料庫恢復模式SQLServer資料庫模式
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- SQL Server 資料庫基本記錄(二)SQLServer資料庫
- SQL Server 資料庫基本記錄(三)SQLServer資料庫
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- 資料庫恢復方案資料庫
- 備份和恢復SQL Server資料庫+壓縮ACCESS的類(方法)SQLServer資料庫
- SQL Server 資料庫引擎怎樣記錄完整備份後修改過的資料SQLServer資料庫
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- SQL Server資料庫多資料檔案恢復技術SQLServer資料庫
- 關於SQL Server資料庫備份和恢復特性介紹SQLServer資料庫
- 修改SQL Server資料庫地址SQLServer資料庫
- 複製的SQL Server 7資料庫的恢復方法 (轉)SQLServer資料庫
- SQL Server資料庫出現邏輯錯誤的資料恢復SQLServer資料庫資料恢復
- Oracle ASM故障資料恢復解決方案OracleASM資料恢復
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【伺服器資料恢復】xen server儲存庫(sr)常見故障的資料恢復方案伺服器資料恢復Server
- [Sql server]資料庫備份的三個恢復模型(轉)SQLServer資料庫模型