熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows服務器 >> 正文

SQLServer日志文件數據丟失的恢復方法

2022-06-13   來源: Windows服務器 

  一概述

  在應用系統中數據庫往往是最核心的部分一旦數據庫毀壞或損壞將會帶來巨大的損失所以數據庫的管理越來越重要我們在做數據庫管理與維護工作中不可避免會出現各種各樣的錯誤本文針對數據庫的日志文件丟失時如何利用MDF文件恢復數據庫的方法進行了研究

  二數據庫的恢復

  當數據庫的主數據MDF文件完好無損時在丟失了LDF文件的情況下如何利用MDF文件恢復數據庫?我們把SQLServer的日志文件分為兩類一類是無活動事務的日志另一類是含活動事務的日志根據不同的日志采取不同的方法來恢復數據庫

  無活動事務的日志恢復

  無活動事務的日志丟失時我們很容易利用MDF文件直接恢復數據庫具體方法如下

  ①分離被質疑的數據庫可用企業管理器中的分離數據庫工具或者用存儲過程_detach_db分離數據庫

  ②利用MDF文件附加數據庫生成新的日志文件可用企業管理器中的附加數據庫的工具或者用存儲過程_attach_single_file_db附加數據庫

  如果數據庫的日志文件中含有活動事務利用此方法就不能恢復數據庫

  含活動事務的日志恢復

  含有活動事務的日志丟失時利用上述方法就會出現數據庫和日志文件不符合不能附加數據庫對於這種情況下我們采用如下方法

  ①新建同名數據庫AAA並設它為緊急模式

  ?停止SQLServer服務器

  ?把數據庫主數據MDF文件移走

  ?啟SQLServer服務器新建一個同名的數據庫AAA

  ?停止SQLServer服務器把移走的MDF文件再覆蓋回來

  ?啟動SQLServer服務器把AAA設為緊急模式不過默認情況下系統表是不能隨便修改的必須首先設置一下使其能被修改運行以下語句即可

  UseMaster

  Go

  _configureallowupdates

  reconfigurewithoverride

  Go

  接著運行以下語句把AAA數據庫設為緊急模式即把Sysdatabases表中AAA數據庫的status屬性設為就表示把AAA數據庫處於緊急模式

  updatesysdatabasessetstatus=wherehame=AAA

  如果沒有報告什麼錯誤就可以進行以下操作

  ②設置數據庫AAA為單用戶模式並檢查數據庫

  ?重啟SQLServer服務器

  ?把數據庫AAA設為單用戶模式

  _dboptionAAAsingleusertrue

  ?運行以下語句檢查數據庫AAA

  DBCCCHECKDB(AAA)

  如果沒有什麼大的問題就可以把數據庫的狀態改回去

  ③還原數據庫的狀態

  運行以下語句就可以把數據庫的狀態還原

  updatesysdatabasessetstatus=wherename=AAA

  _configureallowupdates

  reconfigurewithoverride

  Go

  如果沒有什麼大的問題刷新一下數據庫數據庫AAA又會出現在你面前但目前恢復工作還沒有做完此時的數據庫仍不能工作還要進行下面的處理才能真正恢復

  ④利用DTS的導入導出向導把數據庫AAA導入到一個新建數據庫中

  ?新建一個數據庫

  ?右擊選擇IMPORT功能打開導入向導

  ?目標源選擇在SQLServer數據庫之間復制對象和數據庫這樣可以把表結構數據視圖和存儲過程導入到中

  ?再用此功能把庫替換成原來的AAA庫即可

  到此為止數據庫AAA就完全恢復

  三小結

  日志文件丟失是一件非常危險的事情很有可能你的數據庫徹底毀壞SQLServer數據庫的恢復都是靠日志文件來完成所以無論如何都要保證日志文件的存在它至關重要為了使我們的數據庫萬無一失最好采用多種備份方式相結合所以我們要從心裡重視數據庫的管理與維護工作


From:http://tw.wingwit.com/Article/os/fwq/201405/30692.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.