嘗試修改SQL Server的重做日誌檔案,使其按照修改的結果執行重做,結果失敗
今天上午有時間完成自己一直未實施的一個想法,即修改SQL Server的重做日誌,看是否能讓SQL Server按照自己的修改執行重做操作,結果讓人失望,大致原因應該是重做日誌檔案日誌記錄會有校驗和之類的機制,修改後,SQL Server不認了。不過也算了卻一樁心事。
大致過程如下:
執行資料庫全庫備份。
執行事務日誌備份。
update表t中的一個列值,如把b=‘aaaa’,改為'bbbb'。
檢視上述update產生的重做記錄,記下其LSN號碼。
根據LSN號碼,計算其在日誌檔案中的位置,使用WinHex在重做日誌檔案中查詢對應的日誌記錄,並把其中的bbbb對應的十六進位制資料62626262改為65656565,即eeee。
執行事務日誌尾部備份,從而備份上述修改過的日誌內容。
執行全庫恢復。
由第一次日誌備份執行恢復。
由第二次日誌日誌備份執行恢復,結果報錯如下:
已為資料庫 'dbfull',檔案 'dbfull' (位於檔案 1 上)處理了 0 頁。
已為資料庫 'dbfull',檔案 'dbfull_log' (位於檔案 1 上)處理了 3 頁。
訊息 9004,級別 16,狀態 3,伺服器 APPLE,第 1 行
處理資料庫 'dbfull' 的日誌時出錯。如果可能,請從備份還原。如果沒有可用備份,可能需要重新生成日誌。
訊息 3013,級別 16,狀態 1,伺服器 APPLE,第 1 行
RESTORE LOG 正在異常終止。
2010-07-20補充:
只要把資料庫設定為無資料頁IO校驗機制,上述實驗即可成功,也就是說:資料庫的資料頁IO校驗機制同時對資料檔案和重做日誌檔案生效。
設定資料庫無資料頁校驗機制的命令:
alter database db_name set page_verify none
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/37724/viewspace-1024115/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上修改重做日誌檔案的大小
- 修改Oracle重做日誌檔案的大小Oracle
- MySQL 修改InnoDB重做日誌檔案的數量或大小MySql
- 重做日誌檔案損壞測試
- SQL Server重做日誌管理機制SQLServer
- 丟失聯機重做日誌檔案的恢復
- 重做日誌檔案中的SCN
- 聯機重做日誌、歸檔日誌、備用重做日誌
- 16、重做日誌檔案的狀態及重做日誌組的狀態說明
- 重做日誌檔案的相關操作
- SQL效能小測試得出的驚人結果:60%失敗SQL
- Oracle重做日誌檔案基礎Oracle
- oracle 聯機重做日誌檔案Oracle
- 如何更改線上重做日誌檔案的大小
- 聯機重做日誌檔案的恢復
- 丟失所有重做日誌檔案的恢復例子丟失所有重做日誌檔案的恢復例子如下:
- Oracle重做日誌檔案損壞或丟失後的恢復Oracle
- Oracle的重做日誌Oracle
- 重做日誌
- 重做日誌(redo log)相關總結
- Oracle11g redo log 建立、新增、刪除(重做日誌組,重做日誌檔案)Oracle
- 聯機重做日誌丟失的恢復
- Oracle歸檔日誌比聯機重做日誌小很多的情況總結Oracle
- 按照第二章的配置修改了server.xml,結果tomcat無法啟動ServerXMLTomcat
- 重做日誌的恢復
- 執行結果
- 記錄一則clear重做日誌檔案的案例
- 重做日誌管理
- 【備份恢復】恢復 丟失已歸檔重做日誌檔案
- TestNG執行結果分析與失敗截圖功能介紹
- SQL Server日誌檔案總結及日誌滿的處理SQLServer
- 查詢SQL Server 2005資料庫重做日誌的資訊SQLServer資料庫
- logmnr分析歸檔重做日誌
- 為oracle新增重做日誌組及重做日誌成員Oracle
- 重做日誌大小的設定
- 在ORACLE中對線上重做日誌檔案進行調整Oracle
- 丟失當前current重做日誌檔案下恢復資料庫資料庫
- redo重做日誌管理