<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    love fish大鵬一曰同風起,扶搖直上九萬里

    常用鏈接

    統(tǒng)計

    積分與排名

    friends

    link

    最新評論

    恢復丟失的SQL Server日志

    日志文件丟失是一件非常危險的事情,很有可能你的數(shù)據(jù)庫徹底毀壞。SQL Server數(shù)據(jù)庫的恢復都是靠日志文件來完成,所以無論如何都要保證日志文件的存在。  

    ????? 一、 概述

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

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

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

      1. 無活動事務的日志恢復

      無活動事務的日志丟失時,我們很容易利用MDF文件直接恢復數(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ù)庫的日志文件中含有活動事務,利用此方法就不能恢復數(shù)據(jù)庫。

      2. 含活動事務的日志恢復

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

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

      ·停止SQL Server服務器;

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

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

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

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

    Use Master
    Go
    sp_configure ’allow updates’,1
    reconfigure with override
    Go

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

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

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

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

      ·重啟SQL Server服務器;

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

    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)在你面前,但目前恢復工作還沒有做完,此時的數(shù)據(jù)庫仍不能工作,還要進行下面的處理,才能真正恢復。

      ④利用DTS的導入導出向?qū)В褦?shù)據(jù)庫AAA導入到一個新建數(shù)據(jù)庫BBB中

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

      ·右擊BBB,選擇IMPORT功能,打開導入向?qū)В?br />
      ·目標源選擇"在SQL Server數(shù)據(jù)庫之間復制對象和數(shù)據(jù)庫",這樣可以把表結構,數(shù)據(jù)視圖和存儲過程導入到BBB中

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

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

      三、 小結

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

    posted on 2006-10-13 09:21 liaojiyong 閱讀(310) 評論(0)  編輯  收藏 所屬分類: MSSQL

    主站蜘蛛池模板: 亚洲国产女人aaa毛片在线| 狠狠亚洲婷婷综合色香五月排名| 亚洲小视频在线观看| 爱丫爱丫影院在线观看免费| 国产a v无码专区亚洲av| 一级做a爰片久久毛片免费看| 国产一级淫片免费播放| 美女免费精品高清毛片在线视| 四虎永久在线免费观看| 一区二区三区免费在线观看| 国产黄色一级毛片亚洲黄片大全| 国产黄在线观看免费观看不卡 | 中文字幕永久免费视频| 国产亚洲精品成人a v小说| 热久久这里是精品6免费观看| 亚洲AV无码久久精品蜜桃| 亚洲视频在线观看免费视频| 亚洲jizzjizz在线播放久| 日韩成人免费aa在线看| 一级毛片大全免费播放下载| 国产亚洲精品福利在线无卡一| 久久久久国产精品免费网站| 亚洲13又紧又嫩又水多| 四虎影永久在线高清免费| 99久久婷婷免费国产综合精品| 色婷婷亚洲十月十月色天| 久久精品免费一区二区喷潮| 无遮挡a级毛片免费看| 亚洲欧洲日产国码av系列天堂 | 亚洲精品国产美女久久久| 最好看最新的中文字幕免费| 亚洲日韩AV无码一区二区三区人| 国产乱弄免费视频| 久久国产免费一区二区三区| 亚洲综合av一区二区三区 | 免费国产高清视频| 一个人免费视频在线观看www | 黄床大片30分钟免费看| 亚洲影院在线观看| 免费亚洲视频在线观看| 97在线视频免费|