none
多個NDF檔案整併至MDF的問題 RRS feed

解答

  • If they are in same filegroup, you can use 'dbcc shrinkfile (file_id, emptyfile)' to move data to other files then remove that file from filegroup. Repeat dbcc for all .ndf files, the db will have only .mdf file finally.
    2012年3月15日 下午 12:54

所有回覆

  • If they are in same filegroup, you can use 'dbcc shrinkfile (file_id, emptyfile)' to move data to other files then remove that file from filegroup. Repeat dbcc for all .ndf files, the db will have only .mdf file finally.
    2012年3月15日 下午 12:54
  • 請問我依照您的作法會出現"檔案群組中的空間不足,無法完成 emptyfile 作業"可是我空間是足夠的啊~請問這是為什麼呢?
    2012年3月16日 上午 08:34
  • 請參考 DBCC SHRINKFILE (Transact-SQL) 中「檔案無法壓縮」一節的說明;作法如下:

    1. 確認其他file有足夠的空間容納你放進去的資料
    2. 若是Full Mode, 將Log 做transaction log備份後,再執行一次壓縮


    2012年3月16日 下午 03:46
  • That's correct, other data files have to be big enough to hold additional data from file that you are shrinking.
    2012年3月16日 下午 04:53
  • 您好~我已經將DB 完整備份->Log備份->壓縮料庫後

    執行

    USE [ABC]
    GO
    DBCC SHRINKFILE (N'SE_abc' , EMPTYFILE)
    GO

    結果出現以下錯誤訊息

    DBCC SHRINKFILE: 無法移動堆積頁 3:941776。
    訊息 2555,層級 16,狀態 2,行 1
    無法將檔案 "SE_abc" 的所有內容移動到其他位置以完成 emptyfile 作業。
    陳述式已經結束。
    DBCC 的執行已經完成。如果 DBCC 印出錯誤訊息,請連絡您的系統管理員。
    訊息 1105,層級 17,狀態 2,行 1
    'abc_DATA' 檔案群組已滿,無法在資料庫 'ABC' 中為物件 'dbo.abc_KRM037' 配置空間。請刪除不必要的檔案、卸除檔案群組中的物件、將其他檔案加入檔案群組,或者將檔案群組中現有的檔案設定為自動成長,以產生磁碟空間。

    2012年3月20日 上午 02:03
  • 您好~我已經將DB 完整備份->Log備份->壓縮料庫後

    執行

    USE [ABC]
    GO
    DBCC SHRINKFILE (N'SE_abc' , EMPTYFILE)
    GO

    結果出現以下錯誤訊息

    DBCC SHRINKFILE: 無法移動堆積頁 3:941776。
    訊息 2555,層級 16,狀態 2,行 1
    無法將檔案 "SE_abc" 的所有內容移動到其他位置以完成 emptyfile 作業。
    陳述式已經結束。
    DBCC 的執行已經完成。如果 DBCC 印出錯誤訊息,請連絡您的系統管理員。
    訊息 1105,層級 17,狀態 2,行 1
    'abc_DATA' 檔案群組已滿,無法在資料庫 'ABC' 中為物件 'dbo.abc_KRM037' 配置空間。請刪除不必要的檔案、卸除檔案群組中的物件、將其他檔案加入檔案群組,或者將檔案群組中現有的檔案設定為自動成長,以產生磁碟空間。

    請注意最後一行的錯誤提示,建議:

    1. 檢查data file的 autogrowth是否設為自動; 可以的話請設定自動成長,並且無成長上限

    2. 或試著加大MDF檔的大小,讓data可以繼續搬移


    • 已編輯 zerome 2012年3月21日 上午 12:34
    2012年3月20日 上午 08:59