SQL Server 大型事務日志備份與修復問題
問:我在備份時注意到一些異常現象,希望您能解釋一下。我們需要經常備份 62GB 的生產數據庫,以刷新應用程序開發人員所使用的數據。我們總是先刪除舊副本然后再還原新副本。還原的副本與生產數據庫大小相同,而且數據看起來也一樣,但是與備份過程相比,還原過程所需的時間要長很多。這是怎么回事?為什么還原比備份需要更長的時間?
答:其實這不屬于異常現象。根據您所處的環境,這種現象通常是預料之中的。備份和還原所需的時間之所以不同,是由于每個流程必須執行的步驟不同。
備份數據庫包含兩個步驟。主要就是對數據庫執行 IO 讀取操作以及對備份設備執行 IO 寫入操作:
備份步驟 1 讀取數據文件中所有分配的數據,然后將其寫入備份設備。
備份步驟 2 讀取某些事務日志,然后將其寫入備份設備。
所需的事務日志數量可能會差異很大,但其數量一定能將還原的數據庫恢復到相同的時間點
而還原數據庫最多可能包含四個步驟。涉及的工作要比讀寫 IO 復雜得多:
還原步驟 1 如果數據庫文件不存在,則創建它們。
還原步驟 2 從備份中讀取所有數據和事務日志,然后將其寫入相關的數據庫文件。
還原步驟 3 對事務日志運行恢復過程的“重做”階段。
還原步驟 4 對事務日志運行恢復過程的“撤消”階段。
兩個備份步驟所需時間與還原步驟 2 所需時間大致相同(假定硬件配置類似并且服務器上沒有用戶活動)。如果數據文件較大并且需要進行零初始化(這在 SQL Server 2000 中是需要執行的操作,在 SQL Server 2005 中是默認操作),則還原步驟 1 可能需要較長時間。
為避免花費較長時間,請不要在開始還原之前刪除現有文件。或者,也可以啟用即時初始化,以便快速創建這些文件(有關詳細信息,請訪問 msdn.microsoft.com/-library/ms175935.aspx)。
還原步驟 3 和 4 是對還原的數據庫進行恢復,以便確保事務一致性;此流程與崩潰恢復期間對數據庫執行的操作流程相同。恢復操作所需時間取決于需要處理的事務日志量。例如,如果在進行備份時恰好有一個長時間運行的事務處于活動狀態,則該事務的所有事務日志都會被備份進來,因此屆時不得不進行回滾。
關鍵字:SQL Server 、事務、日志
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解