none
sql server 2005 差異備份無法還原,因為資料庫尚未還原到之前正確的狀態? RRS feed

  • 一般討論

  • 請問大大,
    我把我的環境說明一下,
    我是安裝SQL Server企業版在windows 2003企業版上,新增了二個備份裝置,一個叫Full,一個叫Diff,
    再新增二個維護計畫,一個叫Full ,一個叫Diff,
    Diff維護計畫是星期一到星期五晚上做差異備份,使用Diff備份裝置,
    Full維護計畫是星期六晚上做完整備份,使用Full備份裝置,
    想把備份還原到另一台sql server 2005時,先指定Full.bak還原完整備份,並使用with norecovery,還原成功時,資料庫呈現"正在還原",
    繼續還原差異備份,指定Diff.bak,還原時會出現下面的錯誤訊息:

    System.Data.SqlClient.SqlError: 此差異備份無法還原,因為資料庫尚未還原到之前正確的狀態。 (Microsoft.SqlServer.Smo)

    有先用restore headeronly from disk = 'D:\Diff.bak'  ,   restore verifyonly from disk = 'D:\Diff.bak'
    也出現  '檔案 1 上的備份組有效' 的訊息,依然會出現下面問題

    System.Data.SqlClient.SqlError: 此差異備份無法還原,因為資料庫尚未還原到之前正確的狀態。 (Microsoft.SqlServer.Smo)


    我有試過在原本的SQL Server上還原也是會一樣的問題發生。

    • 已變更類型 Alex ChuoModerator 2009年11月19日 上午 07:07 提問者未有後續回應
    2009年10月22日 上午 05:49

所有回覆

  • 最後一個完整備分到下一個最接近的差異備份中間,有沒有在做其他的備份???
    感覺好像是LSN亂掉沒有接序著還原,或是交易記錄檔中斷....
    2009年10月22日 上午 08:08
  • 大大,
    只有用維護計畫每天固定備份,沒有做其他備份,
    如果要檢查,該如何檢查?
    2009年10月22日 上午 08:13
  • 如果方便的話,貼一下您執行的 T-SQL
    還原差異備份時,有用 RECOVERY 參數去還原最新的差異備份嗎
    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    2009年10月22日 上午 08:26
    版主
  • 大大,
    在還原差異備份時,沒有用recovery參數。

    是分別執行下面二種T-SQL,
    RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19,  NOUNLOAD,  STATS = 10
    GO


    RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19,  NORECOVERY,  NOUNLOAD,  STATS = 10
    GO

    2009年10月22日 上午 09:05
  • hi

    Diff維護計畫是星期一到星期五晚上做差異備份,使用Diff備份裝置,(在這之前有先做FULL備份嗎??)
    是先DIFF後FULL??

    參考如何:還原差異資料庫備份
    http://technet.microsoft.com/zh-tw/library/ms178105.aspx


    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月22日 上午 09:10
    版主
  • 大大,
    是在星期一設定維護計畫,所以是等到下星期二時,
    有一個星期六的Full,跟星期一的Diff,來做測試。
    2009年10月23日 上午 01:26
  • 怎麼你的完整備份和差異備份檔案都一樣???

    嘗試看看

    --先完整備份還原

    RESTORE DATABASE mydb

    FROM DISK = N'D:\bk\full.bak'

    WITH NORECOVERY

    --後差異備份還原

    RESTORE DATABASE mydb

    FROM DISK=N'D:\bk\full.diff'

    WITH NORECOVERY

    參考
    http://technet.microsoft.com/zh-tw/library/ms186858.aspx#restoring_full_n_differential_db_backups
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月23日 上午 01:48
    版主
  • 大大,

    在還原差異備份時,沒有用recovery參數。

    是分別執行下面二種T-SQL,
    1  RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19,  NOUNLOAD,  STATS = 10
    GO


    2  RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19,  NORECOVERY,  NOUNLOAD,  STATS = 10
    GO
    -------------------------------------------------------------------------------
    上面的指令都是還原Diff,
    我是先還原full,再用第一個指令,不行,
    再重新還原full,再用第二個指令,也不行。

    2009年10月23日 上午 01:57
  • 沒有用recovery參數。不至於引響太大

    這樣呢??(NOUNLOAD,STATS都拿掉)
    2  RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19,  NORECOVERY
    GO
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月23日 上午 02:22
    版主
  • 大大,
    RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19,  NORECOVERY
    GO

    執行後,出現下面訊息:

    訊息 3136,層級 16,狀態 1,行 1
    此差異備份無法還原,因為資料庫尚未還原到之前正確的狀態。
    訊息 3013,層級 16,狀態 1,行 1
    RESTORE DATABASE 正在異常結束。
    2009年10月23日 上午 02:38
  • 對了,你有備份ldf嗎??
    如果沒有的話那在最後一次就要指定recovery了

    RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19, RECOVERY
    GO

    在嘗試看看
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月23日 上午 03:29
    版主
  • 大大,
    RESTORE DATABASE [ENW] FROM  DISK = N'D:\Diff.bak' WITH  FILE = 19, RECOVERY
    GO

    一樣出現:

    訊息 3136,層級 16,狀態 1,行 1
    此差異備份無法還原,因為資料庫尚未還原到之前正確的狀態。
    訊息 3013,層級 16,狀態 1,行 1
    RESTORE DATABASE 正在異常結束。

    ---------------------------------------------------------------------
    後來我新增一個備份裝置叫Backup,
    把full跟diff維護計畫都指定到Backup備份裝置,備份時間中間相差一小時,
    測試還原到另一台sql server 2005上,很順利的還原成功。
    備份到不同備份裝置,在還原上會有問題嗎?要注意什麼嗎?
    希望備份到不同的備份裝置,比較好管理。
    2009年10月23日 上午 05:32
  • 不能這樣備份(因為MSDB在FULL備份時會紀錄備份裝置路徑,之後會依此路徑尋找相關差異備份檔案)

    在管理上看你是要利用檔名或附檔名來區分full和diff
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月23日 下午 12:11
    版主
  • 大大,
    您的建議是用同一備份裝置?還是不同備份裝置?
    2009年10月26日 上午 01:41
  • 同一備份裝置

    在同一路徑利用檔名或附檔名來區別管理備份檔案

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月26日 上午 04:46
    版主