1. 數據庫的相關屬性
在MS中創建數據庫時會為數據庫分配初始的大小(如下圖:數據庫和日志兩個文件),隨着數據庫的使用文件會逐漸增大。數據庫文件大小的增加有兩種方式:
- 自動增長:在自動增長中可以設置每次的增長量,以及最大增長的文件大小。
- 手動增長:取消“啟用自動增長”則為手動增長,這就需要DBA經常觀測數據庫的運行情況,及時更改數據庫的小。手動增長比較麻煩,一般都設為自動增長。
2. 為何數據庫需要收縮?
要明白為何數據庫需要收縮,首先需要理解兩個概念:
- 為數據庫分配的空間:如上圖初始時為“數據庫文件”分配的空間為3MB,為“日志文件”分配的空間未1MB。
- 數據庫實際使用的空間:以上圖為例,由於數據是剛創建的,里面沒有任何用戶數據,因此它實際使用的空間很小(不足1MB)。
由此可以理解為:分配空間>=使用空間。在實際使用的過程中可能會出現分配空間為100MB,而使用空間僅為20MB,這就造成了磁盤有80MB的浪費,為了消除這種浪費就需要使用“數據收縮”功能。
3. 如何收縮數據庫?
3.1 通過設置數據庫選項AUTO_SHRINK為True,即讓數據庫自動收縮,如下圖:
3.2 收縮數據庫文件
右鍵數據庫—任務—收縮—文件,如下圖:
文件類型:選擇所要收縮的是“數據庫文件”還是“日志文件”。
當前分配的空間:數據庫為該文件分配的大小,就是在磁盤上看到的文件大小。
可用空間:就是“當前分配的空間” 減去“實際使用的空間”。
收縮操作:
① 釋放未使用的空間:將該文件中未使用的空間釋放出來,數據在文件中不移動;
② 在釋放未使用的空間前重新組織頁:此選項可以將文件收縮到“指定大小”,並將數據重新組織。其最小值為數據庫“實際使用的空間”;
③ 通過將數據遷移到同一文件組的其他文件來清空文件:不解釋,很少用。
上述操作也可以使用T-SQL替代:
DBCC ShrinkFile(‘數據庫名’, targetsize); /* 收縮數據庫文件 */ DBCC ShrinkFile(‘數據庫名_log’, targetsize); /* 收縮日志文件 */
Targetsize:單位為兆,必須為整數,DBCC SHRINKFILE 嘗試將文件收縮到指定大小。
DBCC SHRINKFILE 不會將文件收縮到小於“實際使用的空間”大小,例如“分配空間”為10M,“實際使用空間”為6M,當制定targetsize為1時,則將該文件收縮到6M,不會將文件收縮到1M。
3.3 收縮數據庫
即同時收縮“數據庫文件”和“日志文件”,右鍵數據庫—任務—收縮—數據庫
收縮后的最大可用空間:設為0,即收縮所有的可用空間。
也可以使用T-SQL完成數據庫的收縮:
DBCC SHRINKDATABASE(數據庫名,百分比)
百分比:即“收縮后文件中的最大可用空間”,取值范圍“大於等於0, 小於100%”,實際使用中設為0即可。
出處:https://www.cnblogs.com/rainman/p/3470220.html
======================================================================================
sql數據庫收縮有幾種方法
--1用dbcc命令,帶不同的bai參數測試
--1.1收縮指定數據庫中的數據文du件和日志zhi文dao件的大小
DBCC SHRINKDATABASE ( test )
DBCC SHRINKDATABASE ( test,TRUNCATEONLY )
DBCC SHRINKDATABASE ( test,NOTRUNCATE )
DBCC SHRINKDATABASE ( test ) WITH NO_INFOMSGS
--1.2收縮當前數據庫的指定數據或日志文件的大小,
DBCC SHRINKFILE (Test)
DBCC SHRINKFILE (Test_log)
DBCC SHRINKFILE (Test_log,EMPTYFILE)
DBCC SHRINKFILE (Test_log,TRUNCATEONLY) WITH NO_INFOMSGS
--2.用企業管理器
--選中數據庫->右鍵->任務->數據庫/文件->確定
原文鏈接: https://zhidao.baidu.com/question/1990256690556551547.html
收縮數據庫日志文件
首先打開你要收縮的數據庫點擊右鍵屬性——點擊選項——在恢復模式中選擇簡單——點擊確定;然后重新右鍵點擊數據庫——選擇任務——選擇收縮——選擇文件——在文件類型中選擇日志——在收縮操作中選擇在釋放未使用的空間前重新組織頁——將文件收縮到你想要的大小——點擊確定。
======================================================================================
SQL2008R2數據庫日志太大收縮方法
1.登陸項目平台數據庫服務器。雙擊SQL Server Management Studio打開數據庫管理。登陸數據庫
2.如下圖,打開數據庫屬性窗口
3.如下圖,更改數據庫恢復模式
4.如下圖,收縮數據庫日志
到這里已經完成了,數據庫的日志收縮
5.如下圖,數據庫恢復模式修改為完整
__EOF__