熱點推薦:
您现在的位置: 電腦知識網 >> 軟件專區 >> 正文

SQL數據庫空間不足怎麼辦

2013-09-12 15:53:21  來源: 軟件專區 

  當存放SQL Server數據庫的硬盤空間不足或性能、質量不佳時,數據庫情緒自然不會好。為了調動數據庫積極性,最好的辦法莫過於給數據庫找個寬敞、安全的新家。這等搬家的大事,絕不可輕視之。www.sq120.com推薦文章

  我們知道,在新建一個數據庫的時候,我們會分別指定其數據文件(.mdf文件)以及事務日志文件(.ldf文件)存放的位置。所以數據庫搬家,也就是把這兩個文件安置到一個新地方去。
  在SQL Server中,數據庫有兩大家族:用戶數據庫與系統數據庫。對於它們要分別采用不同的方法來實現。
一、用戶數據庫搬家
  操作方法有以下兩種
  方法1:在企業管理器中進行
  (1)在企業管理器中選定要搬家的數據庫名,在其上單擊鼠標右鍵,出現如圖1所示對話框。
  (2)選中“所有任務”,在其子菜單中單擊“分離數據庫”。
  (3)將該數據庫的數據文件和日志文件從舊的位置(如D:\MSSQL\Data)拷貝到新的位置(如E:\SQLDataNew)。
  (4)再在企業管理器中選中“數據庫”文件夾,在其上單擊鼠標右鍵,在出現的對話框中選中“所有任務”,在其子菜單中單擊“附加數據庫”。
  (5)在出現的“附加數據庫”對話框中,選擇數據庫的兩個文件的新位置。tW.winGWiT.cOm
  方法2:用SQL系統存儲過程sp_detach_db/sp_attach_db實現
  (1)使用下面語句分離數據庫:
  USE master
  GO
  EXEC sp_detach_db 'mydb'
  GO
  (2)將該數據庫的數據文件和日志文件從舊的位置拷貝到新的位置。
  (3)使用下面語句重新附加數據庫:
  USE master
  GO
  EXEC sp_attach_db
  'mydb', 'E:\SQLDataNew\mydbdata.mdf', 'E:\SQLDataNew\mydblog.ldf''
  GO
二、系統數據庫搬家
1.master數據庫搬家
  (1)由於SQL Server每次啟動的時候都需要讀取master數據庫,因此必須在企業管理器中改變SQL Server啟動參數中master數據文件和日志文件的路徑。
  在 SQL Server屬性的“常規”選項卡下面有一個叫做“啟動參數”的按鈕,單擊後可以看到所示的界面。
  其中,-d用來指定master數據庫文件的路徑,而–l用來指定master數據庫日志文件的路徑。
  刪除舊的master數據庫文件和日志文件的路徑,添加新的master數據文件和日志文件所在的路徑,如:
  -dE:\ SQLDataNew \master.mdf
  -lE:\ SQLDataNew \mastlog.ldf
  (2)停止SQL Server服務,將master.mdf文件和mastlog.ldf文件拷貝到新的位置,如E:\ SQLDataNew文件夾中。
  (3)重新啟動服務即可。
  小技巧:如果在“啟動參數”添加的master數據庫文件和日志文件的路徑或文件名有誤,就會造成SQL Server啟動不起來。而此時想改正錯誤又因SQL Server啟動不了而重設不了“啟動參數”。其實這兩個文件路徑和文件名是放置在注冊表HKEY_LOCAL_MACHINE\SOFWARE\Microsoft\Miccrosoft SQL Server\你安裝SQL服務器的名\MSSQLServer\Parrmeters下的參數SQLArg1和SQLArg2中,修改這兩個參數的值即可。
2. msdb數據庫和model數據庫搬家
  (1)對於msdb數據庫和model數據庫,我們不能在企業管理器中實現分離和附加,只能用sp_detach_db和sp_attach_db存儲過程來分離和附加這兩個數據庫。
  其中,對於msdb數據庫,還應確保SQL Server代理當前沒有運行,否則sp_detach_db存儲過程將運行失敗,並返回如下消息:
  “無法除去數據庫 'msdb' ,因為它當前正在使用。”
  (2)調出如圖4所示的“啟動參數”對話框,添加新參數-T3608。這樣,啟動SQL Server,它就不會恢復除master之外的任何數據庫。
  (3)重新啟動SQL Server,再用下面命令分離msdb或者model數據庫:
  EXEC sp_detach_db 'msdb'
  GO
  (4)將數據文件和日志文件移到新的位置,然後再用下面命令重新附加msdb數據庫或者model數據庫:
  USE master
  GO
  EXEC sp_attach_db
  'msdb', ‘E:\SQLDataNew\msdbdata.mdf', ' E:\SQLDataNew\msdblog.ldf '
  GO
  (5)在企業管理器中,從“啟動參數”框中刪除-T3608跟蹤標記,再停止並重新啟動SQL Server。
3. tempdb數據庫搬家
  對於tempdb數據庫,則可以直接使用ALTER DATABASE語句來為數據文件和日志文件指定新的存放位置,如下所示:
  USE master
  GO
  ALTER DATABASE tempdb MODIF
  Y FILE (NAME=tempdev, FILENAME ='E:\SQLDataNew \tempdb.mdf')
  GO
  ALTER DATABASE tempdb MODIF
  Y FILE(NAME=templog, FILENAME=
  ' E:\SQLDataNew \templog.ldf')
  GO
  至此,SQL Server 中數據庫全部搬家完成。

 
From:http://tw.wingwit.com/Article/Software/201309/332.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.