熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

修改數據庫(擴充、收縮數據庫)

2013-11-11 21:46:36  來源: Windows系統管理 

  創建數據庫後可以對其原始定義進行更改更改包括
  
  擴充分配給數據庫的數據或事務日志空間
  
  
  收縮分配給數據庫的數據或事務日志空間
  
  
  添加或刪除數據和事務日志文件
  
  
  創建文件組
  
  
  創建默認文件組
  
  
  更改數據庫的配置設置
  
  
  脫機放置數據庫
  
  
  附加新數據庫或分離未使用的數據庫
  
  
  更改數據庫名稱
  
  
  更改數據庫的所有者
  
  擴充數據庫
  Microsoft® SQL Server&#; 可根據在創建數據庫時所定義的增長參數自動擴充數據庫通過在現有的數據庫文件上分配其它的文件空間或者在另一個新文件上分配空間還可以手動擴充數據庫如果現有的文件已經充滿則可能需要擴充數據或事務日志空間如果數據庫已經用完分配給它的空間而又不能自動增長則會出現 錯誤
  
  擴充數據庫時必須按至少 MB 增加該數據庫的大小擴充數據庫的權限默認授予數據庫所有者並自動與數據庫所有者身份一起傳輸數據庫擴充後數據或事務日志文件立即可以使用新空間這取決於哪個文件進行了擴充
  
  如果事務日志沒有設置為自動擴充則當數據庫內發生某些類型的活動時該事務日志可能會用完所有空間備份事務日志時或者在數據庫使用簡單恢復模型的每個檢查點時只清除事務日志中非活動(已提交)的部分然後 SQL Server 可以重新使用該事務日志中被截取的尚未使用的部分有關截斷事務日志的更多信息請參見截斷事務日志
  
  在備份數據庫時SQL Server 不會截斷事務日志
  
  在擴充數據庫時建議指定文件的最大允許增長的大小這樣做可以防止文件無限制地增大以至用盡整個磁盤空間若要指定文件的最大大小請在使用SQL Server 企業管理器內的屬性對話框創建數據庫時使用 CREATE DATABASE 語句的 MAXSIZE 參數或者將文件增長限制為 (MB)選項
  
  擴充數據庫以增大數據或事務日志空間的過程完全相同
  
  擴充 tempdb
  默認情況下在需要空間時 tempdb 數據庫會自動增長因為文件的 MAXSIZE 設置為 UNLIMITED因此tempdb 可以一直增長直至用完包含 tempdb 的磁盤上的所有空間若要防止 tempdb 無限制地增長請使用 ALTER DATABASE 語句或 SQL Server 企業管理器為 tempdb 設置 MAXSIZE
  
  相反如果 tempdb 已經設置了 MAXSIZE而又需要增加 tempdb 的大小則必須執行以下操作之一
  
  增加 tempdb 當前使用的默認文件組中文件的大小
  
  
  將新文件添加到默認文件組
  
  
  允許 tempdb 使用的文件自動增長
  
  
  重要 用戶定義的文件組不能與 tempdb 一起使用它們只能與默認文件組一起使用
  
  
  移動 tempdb
  更改 tempdb 數據庫的物理位置
  
  使用 ALTER DATABASE 語句和 MODIFY FILE 子句更改 tempdb 數據庫以更改 tempdb 中每個文件的物理文件名使之引用新的物理位置(例如新磁盤)
  
  
  停止並重新啟動 SQL Server
  
  
  從原始位置刪除舊的 tempdb 數據庫文件
  
  增加數據庫的大小
  
   TransactSQL(點擊這裡)
  
  
  如何增加數據庫的大小(企業管理器)
  
  展開服務器組然後展開服務器
  
  
  展開數據庫文件夾右擊要增加大小的數據庫然後單擊屬性命令
  
  
  若要增加數據空間單擊常規選項卡若要增加事務日志空間單擊事務日志選項卡
  
  
  若要添加新文件單擊下一個空行文件名列中輸入將容納附加空間的文件名
  文件位置是自動生成的數據庫文件名的後綴名為 ndf事務日志文件名的後綴為 ldf
  
  若要更改文件名位置分配的空間 (MB)文件組(不適用於事務日志)等列的默認值單擊要更改的單元格再輸入新值
  對於現有的文件只能更改分配的空間 (MB)並且新值必須大於現有的值
  
  要指定文件如何增長請從以下選項中選擇
  當需要更多的數據空間時若要允許當前選定的文件增長選擇文件自動增長命令
  
  
  要指定文件按固定步長增長選擇按兆字節命令並指定一個值
  
  
  若要指定文件按當前大小的百分比增長選擇按百分比命令並且指定一個值
  若要指定文件大小的限制請從以下選項中選擇
  若要允許文件按需求增長選擇文件增長不受限制命令
  
  
  若要指定允許文件增長到的最大值選擇將文件增長限制為 (MB)命令
  
  
  說明 數據庫大小的最大值是由可用磁盤空間量決定許可限制由正在使用的 SQL Server 版本決定
  
  更改數據庫的物理位置
  
   TransactSQL(點擊這裡)
  
  收縮數據庫
  Microsoft® SQL Server&#; 允許收縮數據庫中的每個文件以刪除未使用的頁數據和事務日志文件都可以收縮數據庫文件可以作為組或單獨地進行手工收縮數據庫也可設置為按給定的時間間隔自動收縮該活動在後台進行並且不影響數據庫內的用戶活動
  
  當使用 ALTER DATABASE AUTO_SHRINK 選項(或 sp_dboption 系統存儲過程)將數據庫設置為自動收縮且數據庫中有足夠的可用空間時則會發生收縮但是如果不能配置要刪除的可用空間的百分比則將刪除盡可能多的可用空間若要配置將刪除的可用空間量例如只刪除數據庫中當前可用空間的 %請使用SQL Server 企業管理器內的屬性對話框進行數據庫收縮
  
  不能將整個數據庫收縮到比其原始大小還要小因此如果數據庫創建時的大小為 MB後來增長到 MB則該數據庫最小能夠收縮到 MB(假定已經刪除該數據庫中所有數據)
  
  但是使用 DBCC SHRINKFILE 語句可以將單個數據庫文件收縮到比其初始創建大小還要小必須分別收縮每個文件而不要試圖收縮整個數據庫
  
  事務日志文件可在固定的邊界內收縮虛擬日志的大小決定可能減小的大小因此不能將日志文件收縮到比虛擬日志文件還小另外日志文件可以按與虛擬日志文件的大小相等的增量收縮例如一個初始大小為 GB 的較大事務日志文件可以包括五個虛擬日志文件(每個文件大小為 MB)收縮事務日志文件將刪除未使用的虛擬日志文件但會留下至少一個虛擬日志文件因為此示例中的每個虛擬日志文件都是 MB所以事務日志最小只能收縮到 MB且每次只能以 MB的大小收縮若要讓事務日志文件收縮得更小可以創建一個更小的事務日志並允許它自動增長而不要創建一個較大的事務日志文件
  
  在 SQL Server DBCC SHRINKDATABASE 或 DBCC SHRINKFILE 操作試圖立即將事務日志文件收縮到所要求的大小(以四捨五入的值為准)在收縮文件之前應截斷日志文件以減小邏輯日志的大小並將其標記為不包含邏輯日志任何部分的不活動的虛擬日志
  說明 不可能在備份數據庫或事務日志時收縮數據庫或事務日志反之也不可能在收縮數據庫或事務日志時創建數據庫或事務日志備份
  
  收縮數據庫
  
  TransactSQL
   DBCC SHRINKDATABASE
  收縮指定數據庫中的數據文件大小
  
  語法
  DBCC SHRINKDATABASE
  ( database_name [ target_percent ]
    [ { NOTRUNCATE | TRUNCATEONLY } ]
  )
  
  參數
  database_name
  
  是要收縮的數據庫名稱數據庫名稱必須符合標識符的規則
  target_percent
  
  是數據庫收縮後的數據庫文件中所要的剩余可用空間百分比
  
  NOTRUNCATE
  
  導致在數據庫文件中保留所釋放的文件空間如果未指定將所釋放的文件空間釋放給操作系統
  
  TRUNCATEONLY
  
  導致將數據文件中的任何未使用的空間釋放給操作系統並將文件收縮到上一次所分配的大小從而減少文件大小而不移動任何數據不試圖重新定位未分配頁的行使用 TRUNCATEONLY 時忽略 target_percentis
  
  注釋
  Microsoft® SQL Server&#; 可收縮
  
  特定數據庫的所有數據和日志文件執行 DBCC SHRINKDATABASE
  
  
  一次一個特定數據庫中的數據或日志文件執行 DBCC SHRINKFILE
  DBCC SHRINKDATABASE 以每個文件為單位對數據文件進行收縮然而DBCC SHRINKDATABASE 在對日志文件進行收縮時看起來好像所有的日志文件都存在於一個連續的日志池中
  
  假設名為 mydb 的數據庫有兩個數據文件和兩個日志文件這些數據文件和日志文件大小都為 MB第一個數據文件包含 MB 數據
  
  對於每個文件SQL Server 計算目標大小即要收縮文件到的大小當用 target_percent 指定 DBCC SHRINKDATABASE 時SQL Server 計算的目標大小是收縮後文件中的 target_percent 可用空間大
From:http://tw.wingwit.com/Article/os/xtgl/201311/9204.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.