收縮資料庫

2021-06-01 03:03:34 字數 3329 閱讀 8502

sql 2008

右擊要清除日誌的資料庫 選擇"屬性 "

在資料庫屬性中 選擇"選項", 在右邊"恢復模式"下拉列表框中 選擇"簡單" 單擊確定 返回

右擊要清除日誌的資料庫 選擇"任務"-"收縮"-"資料庫" 單擊確定

完成收縮

--指令碼

use [master]

goalter database dnname set recovery ****** with no_wait

goalter database dnname set recovery ******   --簡單模式

gouse dnname

godbcc shrinkfile (n'dnname_log' , 11, truncateonly)

gouse [master]

goalter database dnname set recovery full with no_wait

goalter database dnname set recovery full  --還原為完全模式

go--完成

sp_spaceused

顯示行數、保留的磁碟空間以及當前資料庫中的表、索引檢視或 service broker 佇列所使用的磁碟空間,或顯示由整個資料庫保留和使用的磁碟空間。

sp_spaceused [[ @objname = ] 'objname' ] [,[ @updateusage = ] 'updateusage' ]

[@objname=]'objname'請求其空間使用資訊的表、索引檢視或佇列的限定或非限定名稱。僅當指定限定物件名稱時,才需要使用引號。如果提供完全限定物件名稱(包括資料庫名稱),則資料庫名稱必須是當前資料庫的名稱。

如果未指定 objname,則返回整個資料庫的結果。

objname 的資料型別為 nvarchar(776),預設值為 null。

[@updateusage=]'updateusage'指示應執行 dbcc updateusage 以更新空間使用資訊。當未指定 objname 時,將對整個資料庫執行該語句;否則,將對objname 執行該語句。值可以是 true 或false。updateusage 的資料型別為varchar(5),預設值為 false。

如果省略 objname ,將返回以下結果集,以提供當前資料庫大小資訊。

列名資料型別

說明database_name

nvarchar(128)

當前資料庫的名稱。

database_size

varchar(18)

當前資料庫的大小 (mb)。database_size包括資料和日誌檔案。

unallocated space

varchar(18)

未保留供資料庫物件使用的資料庫空間。

列名資料型別

說明reserved

varchar(18)

由資料庫中物件分配的空間總量。

資料

varchar(18)

資料使用的空間總量。

index_size

varchar(18)

索引使用的空間總量。

unused

varchar(18)

為資料庫中的物件保留但尚未使用的空間總量。

如果指定 objname,則將為指定物件返回以下結果集。 

dbcc shrinkdatabase (transact-sql)

收縮指定資料庫中的資料檔案和日誌檔案的大小。

dbcc shrinkdatabase ( database_name | database_id | 0      [ , target_percent ]      [ , ] )[ with no_infomsgs ]引數

database_name |database_id | 0

要收縮的資料庫的名稱或 id。如果指定 0,則使用當前資料庫。

target_percent

資料庫收縮後的資料庫檔案中所需的剩餘可用空間百分比。

notruncate

通過將已分配的頁從檔案末尾移動到檔案前面的未分配頁來壓縮資料檔案中的資料。target_percent 是可選引數。

檔案末尾的可用空間不會返回給作業系統,檔案的物理大小也不會更改。因此,指定 notruncate 時,資料庫看起來未收縮。

notruncate 只適用於資料檔案。日誌檔案不受影響。

truncateonly

將檔案末尾的所有可用空間釋放給作業系統,但不在檔案內部執行任何頁移動。資料檔案只收縮到最近分配的區。如果與 truncateonly 一起指定,將忽略 target_percent。

truncateonly 只適用於資料檔案。日誌檔案不受影響。

with no_infomsgs

取消嚴重級別從 0 到 10 的所有資訊性訊息。

恢復模式旨在控制事務日誌維護。有三種恢復模式:簡單恢復模式、完整恢復模式和大容量日誌恢復模式。通常,資料庫使用完整恢復模式或簡單恢復模式。

下表概述了這些恢復模式。

恢復模式

說明工作丟失的風險

能否恢復到時點?簡單

無日誌備份。

自動**日誌空間以減少空間需求,實際上不再需要管理事務日誌空間。

最新備份之後的更改不受保護。在發生災難時,這些更改必須重做。

只能恢復到備份的結尾。完整

需要日誌備份。

資料檔案丟失或損壞不會導致丟失工作。

可以恢復到任意時點(例如應用程式或使用者錯誤之前)。

正常情況下沒有。

如果日誌尾部損壞,則必須重做自最新日誌備份之後所做的更改。有關詳細資訊,請參閱結尾日誌備份。

如果備份在接近特定的時點完成,則可以恢復到該時點。有關詳細資訊,請參閱將資料庫還原到備份中的某個時間點。

大容量日誌

需要日誌備份。

是完整恢復模式的附加模式,允許執行高效能的大容量複製操作。

通過使用最小方式記錄大多數大容量操作,減少日誌空間使用量。有關詳細資訊,請參閱可以儘量減少日誌量的操作。

如果在最新日誌備份後發生日誌損壞或執行大容量日誌記錄操作,則必須重做自該上次備份之後所做的更改。

否則不丟失任何工作。

可以恢復到任何備份的結尾。不支援時點恢復。

收縮資料庫

顯示當前資料庫的空間使用情況 exec sp spaceused 顯示表的空間使用 exex sp spaceused objname wct updateusage true 顯示整個伺服器中所有資料庫的日誌使用情況 dbcc sqlperf logspace 收縮資料庫 dbcc shrinkd...

資料庫 收縮

引用 資料庫中的每個檔案都可以通過刪除未使用的頁的方法來減小。儘管資料庫引擎會有效地重新使用空間,但某個檔案多次出現無需原來大小的情況後,收縮檔案就變得很有必要了。資料和事務日誌檔案都可以減小 收縮 可以成組或單獨地手動收縮資料庫檔案,也可以設定資料庫,使其按照指定的間隔自動收縮。檔案始終從末尾開始...

資料庫 收縮

引用 資料庫中的每個檔案都可以通過刪除未使用的頁的方法來減小。儘管資料庫引擎會有效地重新使用空間,但某個檔案多次出現無需原來大小的情況後,收縮檔案就變得很有必要了。資料和事務日誌檔案都可以減小 收縮 可以成組或單獨地手動收縮資料庫檔案,也可以設定資料庫,使其按照指定的間隔自動收縮。檔案始終從末尾開始...