Google | Yahoo! | FaceBook |
  • 首頁 > 知識庫 > SQL-SERVER Log毀損還原好的DB
  • SQL-SERVER Log毀損還原好的DB

    如果因為各類原因,導致僅剩下原始的資料檔案(*.mdf),而交易記錄檔遺失或損毀時,您可以
    利用以下的方法,來進行復原作業:

    1. 先利用 Enterprise Manager建立一個與原本資料庫相同的名稱。
    2. 停止SQL Server 運行。

    3. 將原始的資料檔案(*.mdf),覆蓋成為新資料庫的資料檔案(*.mdf)。
    4. 刪除到該資料庫的交易記錄檔(*.ldf)。

    5. 重新啟動 SQL Server ,該資料庫會出現(有疑問)的資訊。

    -- 6. 啟動 Query Analyzer,執行以下的程式碼:
    /*
    若啟用 allow updates (設成 1),則只要具備適當的使用權限,任何使用者都可以利用特定的更新直接
    更新系統資料表,也可以建立更新系統資料表的預存程序。
    */
    use master
    go
    exec sp_configure 'allow updates',1
    go
    RECONFIGURE WITH OVERRIDE
    go

    --7. 設定該資料庫會成為:緊急模式 (emergency mode)的狀態
    update sysdatabases
    set status=-32768
    where dbid=DB_ID('資料庫名稱')

    --8. 利用 dbcc rebuild_log 來重新建立交易記錄檔,執行完成後,資料庫會成為:(僅供 DBO 使用)的狀態

    dbcc rebuild_log('資料庫名稱','交易記錄檔的名稱、所在路徑')

    /* 例如: 資料庫為: db01, 交易記錄檔的路徑與檔案是在c:\ -- (可自訂)
    dbcc rebuild_log('db01','C:\DB01_Log.LDF')
    */

    -- 9. 檢查指定的資料庫,但不顯示所有提示訊息,資料不一致等錯誤訊息,依舊會呈現。
    DBCC CHECKDB ('資料庫名稱')
    WITH NO_INFOMSGS

    --10. 調整該資料庫恢復上線,取消(僅供 DBO 使用)狀態
    EXEC sp_dboption 'db01','dbo use only','false'
IP:18.116.24.111