none
MSSQL MDF初始大小 RRS feed

  • 問題

  • 想請問各位大大...不知道是否能變更MDF所還原資料庫的初始大小,目前遇到是MSSQL2005,再麻煩各位解答
    2011年12月27日 上午 11:53

解答

  • 之前提到的方法是用來加大資料庫檔案的SIZE,若要縮小必須用SHRINKFILE。

    USE [Northwind]
    GO
    DBCC SHRINKFILE (N'Northwind' , 10)
    GO
    
    

    http://msdn.microsoft.com/zh-tw/library/ms189493.aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已標示為解答 skyboy1827 2011年12月28日 上午 06:07
    • 已取消標示為解答 skyboy1827 2011年12月28日 上午 06:11
    • 已標示為解答 skyboy1827 2011年12月28日 上午 06:24
    2011年12月28日 上午 06:02
    版主

所有回覆

  • 不妨參考下面有關ALTER DATABASE的語法,可以再還原資料庫之後來利用MODIFY FILE選項修改檔案大小。

    http://msdn.microsoft.com/zh-tw/library/ms174269(v=SQL.90).aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月27日 下午 01:23
    版主
  • If you like every new db has same initial file size, can modify file size of model db.
    2011年12月27日 下午 05:25
  • 感謝你的回覆...只是我環境online的環境...

    不知道下相關語法會不會有什麼問題?

     

    2011年12月28日 上午 02:46
  • 感謝你的回覆...只是我環境online的環境...

    不知道下相關語法會不會有什麼問題?

     

    建議還是先在測試環境測試看看。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 上午 02:49
    版主
  • 不好意思..我應該只是要用以下語法嗎

    ALTER DATABASE database_name
    {
        <add_or_modify_files>
      | <add_or_modify_filegroups>
      | <set_database_options>
      | MODIFY NAME = new_database_name
      | COLLATE collation_name
    }
    [;]

    <add_or_modify_files>::=
    {
        ADD FILE <filespec> [ ,...n ]
            [ TO FILEGROUP { filegroup_name } ]
      | ADD LOG FILE <filespec> [ ,...n ]
      | REMOVE FILE logical_file_name
      | MODIFY FILE <filespec>
    }

    <filespec>::=
    (
        NAME = logical_file_name 
        [ , NEWNAME = new_logical_name ]
        [ , FILENAME = 'os_file_name' ]
        [ , SIZE = size [ KB | MB | GB | TB ] ]
        [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
        [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % ] ]
        [ , OFFLINE ]
    )

    我會先行在測試環境上試...感謝你的回覆



    2011年12月28日 上午 03:24
  • 下列T-SQL示範如何將Northwind的資料檔修改為10MB,希望對你有幫助。

    USE [master]
    GO
    ALTER DATABASE [Northwind] MODIFY FILE ( NAME = N'Northwind', SIZE = 10240KB )
    GO
    
    



    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 上午 03:31
    版主
  • 太感謝了...我來試看看....

    上面執行master有什麼恴義嗎

    2011年12月28日 上午 03:35
  • 太感謝了...我來試看看....

    上面執行master有什麼恴義嗎

    有些動作不允許對正在使用的DB做,所以習慣上會先切換到其他DB,不過剛剛TRY了一下,沒有先切換到其他DB也是可以正常MODIFY FILE。


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 上午 03:41
    版主
  • 那我是執行

    ALTER DATABASE [Northwind] MODIFY FILE ( NAME = N'Northwind', SIZE = 10240KB )
    GO

    這行就可以了嗎?

    資料庫名字前面的N是代表什麼啊

    能否在online環境上執行..如果我先行備份的話

    • 已編輯 skyboy1827 2011年12月28日 上午 03:45
    2011年12月28日 上午 03:44
  • 那我是執行

    ALTER DATABASE [Northwind] MODIFY FILE ( NAME = N'Northwind', SIZE = 10240KB )
    GO

    這行就可以了嗎?

    資料庫名字前面的N是代表什麼啊

    能否在online環境上執行..如果我先行備份的話

    1. 是的,請先在測試環境執行。

    2. 請參考http://support.microsoft.com/kb/239530/zh-tw


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 上午 03:48
    版主
  • 不好意思我執行後出現

    訊息 5041,層級 16,狀態 1,行 1
    MODIFY FILE 失敗。檔案 'C343180000E_SOD20_M' 不存在。

    我執行語法為ALTER DATABASE [C343180000E_SOD20_M] MODIFY FILE ( NAME = N'C343180000E_SOD20_M ', SIZE = 3GB )
    GO

    能幫忙解感嗎


    • 已編輯 skyboy1827 2011年12月28日 上午 04:02
    2011年12月28日 上午 04:01
  • Is it correct logical name of the file? Can double check with 'select * from sys.sysfiles'.
    2011年12月28日 上午 04:19
  • 你可以在下面這麼地方查詢邏輯名稱。


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 上午 05:55
    版主
  • thank you !

    I select command

    name not 'C343180000E_SOD20_M'

    因為我要比原本初始大小還小

    所以執行結果為

    指定大小小於目前大小

    2011年12月28日 上午 05:59
  • 之前提到的方法是用來加大資料庫檔案的SIZE,若要縮小必須用SHRINKFILE。

    USE [Northwind]
    GO
    DBCC SHRINKFILE (N'Northwind' , 10)
    GO
    
    

    http://msdn.microsoft.com/zh-tw/library/ms189493.aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已標示為解答 skyboy1827 2011年12月28日 上午 06:07
    • 已取消標示為解答 skyboy1827 2011年12月28日 上午 06:11
    • 已標示為解答 skyboy1827 2011年12月28日 上午 06:24
    2011年12月28日 上午 06:02
    版主
  • 不好意思...

    執行如果在線上DB上作業不知道會不會將資料庫資料遺失..如果所要配置比原本資料檔案的還大的話,這樣會有問題嗎?

    2011年12月28日 上午 06:11
  • 不好意思...

    執行如果在線上DB上作業不知道會不會將資料庫資料遺失..如果所要配置比原本資料檔案的還大的話,這樣會有問題嗎?

    2011年12月28日 上午 06:25
  • 就我所知理論上不至於會有資料遺失的問題,不過保險起見要先留好後路以免失手,另外如果你的資料檔擴展太大會需要比較久的IO時間,避免在尖峰時間做擴展資料檔的動作,這也是動手做之前必須考慮到的,以上供你參考,若有錯誤的地方請指正,謝謝。

    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年12月28日 上午 09:13
    版主
  • Changing file size will not cause data lose, but should always do full backup first before making any db change.
    2011年12月28日 下午 10:23