none
只有MDF沒有LDF如何附加? RRS feed

  • 問題

  • 我使用的是SQL  SERVER 2008
    舊主機損毀了.只搶救回原資料庫的.MDF
    我想附加上新主機.但是因為沒有.LDF的關係所以沒辦法附加

    我Google後找到了一些方法
    (http://www.dotblogs.com.tw/ricochen/archive/2010/01/11/12962.aspx)
    照他的步驟進行資料庫救援

    但是這句 DBCC CHECKDB([XXX])
    每次都會出現錯誤
    訊息 946,層級 14,狀態 1,行 1
    無法開啟資料庫 'XXX' 版本 539。請將資料庫升級成最新的版本。

    我已經昇級至SQL Server 2008 SP1(KB968369)
    但是還是一樣
    請問有人知道如何解決嗎?
    • 已移動 Alex ChuoModerator 2010年1月13日 下午 06:23 (從:資料庫與程式開發(SQL Server Development))
    2010年1月13日 上午 06:37

解答

  • 請您嘗試使用以下指令:

    sp_attach_single_file_db @dbname= 'dbname', @physname= 'Path\File.mdf'
    若無法成功, 請提供錯誤訊息.

    • 已標示為解答 小小郭 2010年1月13日 下午 04:57
    2010年1月13日 上午 10:05

所有回覆

  • Hi,

    您原先的主機上的資料庫版本也是SQL Server 2008?


    Lolota
    歡迎參加MSDN&TechNet技術社群交流活動 (時間:1/9(六) 11:30-17:30(台中金典),1/16(六) 11:30-17:30(台北微軟),1/23(六) 11:30-17:30(高雄微軟辦公室)),
    MSDN老爹TechNet小妹將盛裝出席, 要一睹風采, 就趕快報名!!
    2010年1月13日 上午 07:08
  • Hi,

    您原先的主機上的資料庫版本也是SQL Server 2008?


    Lolota
    歡迎參加MSDN&TechNet技術社群交流活動 (時間:1/9(六) 11:30-17:30(台中金典),1/16(六) 11:30-17:30(台北微軟),1/23(六) 11:30-17:30(高雄微軟辦公室)),
    MSDN老爹TechNet小妹 將盛裝出席, 要一睹風采, 就趕快報名!!

    我只是被指派為負責救援..並不知道原本主機的版本..
    請問一下,假如是資料庫版本不同導致此錯誤..
    那有沒有辦法將原來版本(SQL2000或SQL2005)的單獨MDF檔升為SQL2008版本MDF檔??
    然後我再進行救援..
    2010年1月13日 上午 07:17
  • Hi,

    在重新建立的資料庫, 在選項頁籤中將 相容層級改到2000 or 2005, 試看看可不可以.
    (記得舊的資料庫備份還是要另外備份一份)


    Lolota
    歡迎參加MSDN&TechNet技術社群交流活動 (時間:1/9(六) 11:30-17:30(台中金典),1/16(六) 11:30-17:30(台北微軟),1/23(六) 11:30-17:30(高雄微軟辦公室)),
    MSDN老爹TechNet小妹將盛裝出席, 要一睹風采, 就趕快報名!!
    2010年1月13日 上午 07:22
  • Hi,

    在重新建立的資料庫, 在選項頁籤中將 相容層級改到2000 or 2005, 試看看可不可以.
    (記得舊的資料庫備份還是要另外備份一份)


    Lolota
    歡迎參加MSDN&TechNet技術社群交流活動 (時間:1/9(六) 11:30-17:30(台中金典),1/16(六) 11:30-17:30(台北微軟),1/23(六) 11:30-17:30(高雄微軟辦公室)),
    MSDN老爹TechNet小妹 將盛裝出席, 要一睹風采, 就趕快報名!!
    新資料庫相容層級改2000-->不行
    新資料庫相容層級改2005-->也不行

    看來還是要找相對應的版本才能進行資料救援的動作
    還是謝謝你提供方法
    2010年1月13日 上午 08:00
  • 請您嘗試使用以下指令:

    sp_attach_single_file_db @dbname= 'dbname', @physname= 'Path\File.mdf'
    若無法成功, 請提供錯誤訊息.

    • 已標示為解答 小小郭 2010年1月13日 下午 04:57
    2010年1月13日 上午 10:05
  • hi
    先嘗試看看
    你失敗在這步驟
    但是這句 DBCC CHECKDB([XXX])
    每次都會出現錯誤
    訊息 946,層級 14,狀態 1,行 1
    無法開啟資料庫 'XXX' 版本 539。請將資料庫升級成最新的版本。

    539看上去依該是SQL2000

    這時先把該MDF複製起來,再依照blogs步驟重做一次
    但在複製MDF檔案時,別拿原本SQL2000 MDF檔案
    拿剛剛CHECK失敗的MDF檔案覆蓋
    再執行 DBCC CHECKDB嘗試看看


    如果你的MDF檔案只有單一實體檔案(因為我習慣切多檔案)
    可以嘗試微軟技術支援中心-Vera提供的方法

    good luck  :)

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2010年1月13日 上午 10:19
    版主
  • 1. 不可以降版掛載,例如 SQL Server 2005 SP2 的資料庫不可以掛載在 SQL Server 2005 SP1 的電腦。當然 SQL Server 2008 的也不可以掛載在 SQL Server 2000 or 2005.
    2. 請務必確認原主機的版本,不然就算同樣是 SQL Server 2000 好了,SP6 的資料庫也是不能掛在 SP5 的主機。
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    2010年1月13日 上午 10:24
    版主
  • 請您嘗試使用以下指令:

    sp_attach_single_file_db @dbname= 'dbname', @physname= 'Path\File.mdf'
    若無法成功, 請提供錯誤訊息.


    此法成功
    資料庫已救回
    感謝各位的幫忙
    2010年1月13日 下午 04:57
  • 指令为:sp_attach_single_file_db @dbname= 'bs_Data', @physname= 'F:\bs_Data.mdf'

     

    错误讯息;
    文件激活失败。物理文件名称'C:\Program Files\Microsoft SQL Server\MSSQL\data\bs_Log.LDF'可能不正确。
    无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。如果事务日志文件被手动删除或者由于硬件或环境问题而丢失,则可能出现此错误。
    消息 1813,级别 16,状态 2,第 1 行
    无法打开新数据库 'bs_Data'。CREATE DATABASE 中止。

     

    版本信息如下:

    Microsoft SQL Server Management Studio      10.0.4000.0
    Microsoft Analysis Services 客户端工具      10.0.4000.0
    Microsoft 数据访问组件 (MDAC)      6.1.7600.16385
    Microsoft MSXML      3.0 6.0
    Microsoft Internet Explorer      9.0.8112.16421
    Microsoft .NET Framework      2.0.50727.4952
    操作系统      6.1.7600

     

    望尽快给出解决方案,谢谢!

    2011年3月30日 上午 03:54
  • 我使用的也是SQL SERVER 2008

    sp_attach_single_file_db @dbname= 'dbname', @physname= 'Path\File.mdf'这个指令仍然没有成功

    可以指点一下吗?

    2011年3月30日 上午 04:01
  • Sounds the db was not detached properly, can't attach in this case.
    2011年3月30日 下午 01:56