日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁西西教程數(shù)據(jù)庫教程 → 恢復(fù)丟失的SQLServer日志文件 避免導(dǎo)致數(shù)據(jù)庫徹底毀壞

      恢復(fù)丟失的SQLServer日志文件 避免導(dǎo)致數(shù)據(jù)庫徹底毀壞

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時間:2010/7/11 11:54:20字體大。A-A+

      作者:佚名點擊:214次評論:0次標簽: 日志

      .NET日志記錄組件(NLog)Vv2.0.0.2000 官方安裝版
      • 類型:系統(tǒng)其它大小:6.3M語言:英文 評分:5.0
      • 標簽:
      立即下載

      主要是介紹SQLServer日志文件丟失的正確恢復(fù)方法。在實際操作中SQLServer日志文件丟失是一件令人十分頭疼的事情,以下的文章主要是針對這一問題給出的答案,以下就是正文的主要內(nèi)容描述。

      一、 概述

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

      二、 數(shù)據(jù)庫的恢復(fù)

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

      1. 無活動事務(wù)的日志恢復(fù)

      無活動事務(wù)的日志丟失時,我們很容易利用MDF文件直接恢復(fù)數(shù)據(jù)庫,具體方法如下:

      ①.分離被質(zhì)疑的數(shù)據(jù)庫,可用企業(yè)管理器中的”分離數(shù)據(jù)庫工具”,或者用存儲過程sp_detach_db分離數(shù)據(jù)庫;

      ②利用MDF文件附加數(shù)據(jù)庫生成新的日志文件,可用企業(yè)管理器中的”附加數(shù)據(jù)庫”的工具,或者用存儲過程sp_attach_single_file_db附加數(shù)據(jù)庫。

      如果數(shù)據(jù)庫的日志文件中含有活動事務(wù),利用此方法就不能SQLServer日志文件丟失的恢復(fù)數(shù)據(jù)庫。

      2. 含活動事務(wù)的日志恢復(fù)

      含有活動事務(wù)的日志丟失時,利用上述方法就會出現(xiàn)”數(shù)據(jù)庫和日志文件不符合,不能附加數(shù)據(jù)庫”。對于這種情況下,我們采用如下方法:

      ①新建同名數(shù)據(jù)庫AAA,并設(shè)它為緊急模式

      停止SQL Server服務(wù)器;

      把數(shù)據(jù)庫主數(shù)據(jù)MDF文件移走;

      啟SQL Server服務(wù)器,新建一個同名的數(shù)據(jù)庫AAA;

      停止SQL Server服務(wù)器,把移走的MDF文件再覆蓋回來;

      啟動SQL Server服務(wù)器,把AAA設(shè)為緊急模式,不過默認情況下,系統(tǒng)表是不能隨便修改的,必須首先設(shè)置一下使其能被修改,運行以下語句即可:

       

      代碼片段:
      Use Master

      Go

      sp_configure ’allow updates’,1

      reconfigure with override

      Go

      接著運行以下語句,把AAA數(shù)據(jù)庫設(shè)為緊急模式,即把Sysdatabases表中AAA數(shù)據(jù)庫的status屬性設(shè)為’37268’,就表示把AAA數(shù)據(jù)庫處于緊急模式。

      update sysdatabases set status=32768 where hame=’AAA’

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

      數(shù)據(jù)庫

       

      ②設(shè)置數(shù)據(jù)庫AAA為單用戶模式,并檢查數(shù)據(jù)庫

      重啟SQL Server服務(wù)器;

      把數(shù)據(jù)庫AAA設(shè)為單用戶模式

      Sp_dboption ’AAA’, ’single user’, ’true’

      運行以下語句,檢查數(shù)據(jù)庫AAA

      DBCC CHECKDB(’AAA’)

      如果沒有什么大的問題就可以把數(shù)據(jù)庫的狀態(tài)改回去。

      ③還原數(shù)據(jù)庫的狀態(tài)

      運行以下語句,就可以把數(shù)據(jù)庫的狀態(tài)還原:

       

      代碼片段:

      update sysdatabases set status=28 where name=’AAA’

      sp_configure ’allow updates’,0

      reconfigure with override

      Go
       


      如果沒有什么大的問題,刷新一下數(shù)據(jù)庫,數(shù)據(jù)庫AAA又會出現(xiàn)在你面前,但目前恢復(fù)工作還沒有做完,此時的數(shù)據(jù)庫仍不能工作,還要進行下面的處理,才能真正恢復(fù)。

      ④利用DTS的導(dǎo)入導(dǎo)出向?qū),把?shù)據(jù)庫AAA導(dǎo)入到一個新建數(shù)據(jù)庫BBB中

      新建一個數(shù)據(jù)庫BBB;

      右擊BBB,選擇IMPORT功能,打開導(dǎo)入向?qū)?

      目標源選擇”在SQL Server數(shù)據(jù)庫之間復(fù)制對象和數(shù)據(jù)庫”,這樣可以把表結(jié)構(gòu),數(shù)據(jù)視圖和存儲過程導(dǎo)入到BBB中

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

      到此為止,數(shù)據(jù)庫AAA就完全恢復(fù)。

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

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)