資料庫收縮語句
收縮MSSQL資料庫之一:清空日誌DUMP TRANSACTION 庫名 WITH NO_LOG 收縮MSSQL資料庫之二:截斷事務日誌:BACKUP LOG 資料庫名 WITH NO_LOG收縮MSSQL資料庫之三:收縮資料庫文件(如果不壓縮,資料庫的文件不會減小企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了--選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了也可以用SQL語句來完成--收縮資料庫DBCC SHRINKDATABASE(客戶資料)--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfilesDBCC SHRINKFILE(1)收縮MSSQL資料庫之四:為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行)a.分離資料庫:企業管理器--伺服器--資料庫--右鍵--分離資料庫b.在我的電腦中刪除LOG文件c.附加資料庫:企業管理器--伺服器--資料庫--右鍵--附加資料庫此法將生成新的LOG,大小隻有500多K或用代碼:下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。a.分離E X E C sp_detach_db @dbname = 'pubs'b.刪除日誌文件c.再附加E X E C sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'收縮MSSQL資料庫之五:為了以後能自動收縮,做如下設置:企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"--SQL語句設置方式:E X E C sp_dboption '資料庫名', 'autoshrink', 'TRUE'6.如果想以後不讓它日誌增長得太大企業管理器--伺服器--右鍵資料庫--屬性--事務日誌--將文件增長限制為xM(x是你允許的最大數據文件大小)--SQL語句的設置方式:alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)收縮MSSQL資料庫之特別注意:請按步驟進行,未進行前面的步驟,請不要做後面的步驟否則可能損壞你的資料庫.一般不建議做第4,6兩步第4步不安全,有可能損壞資料庫或丟失數據第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.另外提供一種更簡單的方法,本人屢試不爽,建議大家使用。收縮MSSQL資料庫之更簡單的方法:1。右建資料庫屬性窗口--故障還原模型--設為簡單2。右建資料庫所有任務--收縮資料庫3。右建資料庫屬性窗口--故障還原模型--設為大容量日誌記錄以上就是對如何讓收縮MSSQL資料庫的簡單介紹。卑錟憬舛寥患指慈砑
② 資料庫日誌文件過大如何收縮
網頁鏈接我是用這個方法收縮的,可以將日誌收縮到1MB
守得雲開見月明,花了一個上午結合前輩的博客,終於弄好了sqlserver2008的資料庫日誌收縮到1MB,分享給大家
# 方法步驟
1、執行SQL語句改成「簡單模式」
2、收縮資料庫
3、執行SQL語句改回「完全模式」
## 第一步:執行SQL語句改成「簡單模式」
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名) SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名) SET RECOVERY SIMPLE --改成簡單模式
GO
## 第二步:進行資料庫操作
相關界面截圖和操作
假定:
資料庫名:SlowXWebDB
日誌文件名:SlowXWebDB_Log
## 第三步:執行SQL語句改成「完全模式」
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名)SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE datebaseName(改成你需要進行收縮的資料庫名)SET RECOVERY FULL --還原為完全模式
GO
==最後不要忘記實測下資料庫是否能夠正常使用==
網頁鏈接
③ sql資料庫的收縮命令是什麼
1.清空日誌 DUMP TRANSACTION 庫名 WITH NO_LOG 2.截斷事務日誌: BACKUP LOG 資料庫名 WITH NO_LOG3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件 --選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 --選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 也可以用SQL語句來完成 --收縮資料庫 DBCC SHRINKDATABASE(客戶資料) --收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles DBCC SHRINKFILE(1)4.為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行) a.分離資料庫: 企業管理器--伺服器--資料庫--右鍵--分離資料庫 b.在我的電腦中刪除LOG文件 c.附加資料庫: 企業管理器--伺服器--資料庫--右鍵--附加資料庫 此法將生成新的LOG,大小隻有500多K 或用代碼: 下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。 a.分離 E X E C sp_detach_db @dbname = 'pubs' b.刪除日誌文件 c.再附加 E X E C sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'5.為了以後能自動收縮,做如下設置: 企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮" --SQL語句設置方式: E X E C sp_dboption '資料庫名', 'autoshrink', 'TRUE'6.如果想以後不讓它日誌增長得太大 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌 --將文件增長限制為xM(x是你允許的最大數據文件大小) --SQL語句的設置方式: alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)特別注意: 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞你的資料庫. 一般不建議做第4,6兩步 第4步不安全,有可能損壞資料庫或丟失數據 第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.另外提供一種更簡單的方法,本人屢試不爽,建議大家使用。更簡單的方法: 1。右建資料庫屬性窗口--故障還原模型--設為簡單 2。右建資料庫所有任務--收縮資料庫 3。右建資料庫屬性窗口--故障還原模型--設為大容量日誌記錄
④ 收縮資料庫有什麼作用
收縮資料庫
資料庫中的每個文件都可以通過刪除未使用的頁的方法來減小。盡管資料庫引擎會有效地重新使用空間,但某個文件多次出現無需原來大小的情況後,收縮文件就變得很有必要了。數據和事務日誌文件都可以減小(收縮)。可以成組或單獨地手動收縮資料庫文件,也可以設置資料庫,使其按照指定的間隔自動收縮。
文件始終從末尾開始收縮。例如,如果有個 5 GB 的文件,並且在 DBCC SHRINKFILE 語句中將 target_size 指定為 4 GB,則資料庫引擎將從文件的最後一個 1 GB 開始釋放盡可能多的空間。如果文件中被釋放的部分包含使用過的頁,則資料庫引擎先將這些頁重新放置到文件的保留部分。只能將資料庫收縮到沒有剩餘的可用空間為止。例如,如果某個 5 GB 的資料庫有 4 GB 的數據,並且在 DBCC SHRINKFILE 語句中將 target_size 指定為 3 GB,則只能釋放 1 GB。
自動資料庫收縮
將 AUTO_SHRINK 資料庫選項設置為 ON 後,資料庫引擎將自動收縮具有可用空間的資料庫。此選項可以使用 ALTER DATABASE 語句來進行設置。默認情況下,此選項設置為 OFF。資料庫引擎會定期檢查每個資料庫的空間使用情況。如果某個資料庫的 AUTO_SHRINK 選項設置為 ON,則資料庫引擎將減少資料庫中文件的大小。該活動在後台進行,並且不影響資料庫內的用戶活動。
將資料庫設置為自動收縮
ALTER DATABASE (Transact-SQL)
手動資料庫收縮
您可以使用 DBCC SHRINKDATABASE 語句或 DBCC SHRINKFILE 語句來手動收縮資料庫或資料庫中的文件。如果 DBCC SHRINKDATABASE 或 DBCC SHRINKFILE 語句無法回收日誌文件中的所有指定空間,則該語句將發出信息性消息,指明必須執行什麼操作以便釋放更多空間。有關收縮日誌文件的詳細信息,請參閱收縮事務日誌。
在該過程中任意時間都可停止 DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 操作,所有已完成工作都將保留。
在使用 DBCC SHRINKDATABASE 語句時,您無法將整個資料庫收縮得比其初始大小更小。因此,如果資料庫創建時的大小為 10 MB,後來增長到 100 MB,則該資料庫最小隻能收縮到 10 MB,即使已經刪除資料庫的所有數據也是如此。
但是,使用 DBCC SHRINKFILE 語句時,可以將各個資料庫文件收縮得比其初始大小更小。必須對每個文件分別進行收縮,而不能嘗試收縮整個資料庫。
⑤ 收縮資料庫 DBCC SHRINKFILE
使用DBCC SHRINKFILE命令收縮資料庫文件,對於解決日誌空間不足問題有顯著效果。此操作能夠釋放已分配但未使用的存儲空間,減少浪費,優化數據存儲結構。然而,收縮資料庫並非常規運維操作,不當使用可能導致數據丟失或性能問題,因此需謹慎執行。
SQL Server 2000通過預先分配空間來構建資料庫文件。若實際使用空間小於分配空間,會造成資源浪費。DBCC SHRINKFILE功能應運而生,允許對資料庫文件進行收縮,刪除未使用的頁,提升存儲效率。
值得注意的是,在進行資料庫備份時,應避免同時執行收縮操作。同樣,創建或備份資料庫時,亦不得執行收縮。此操作能夠使資料庫文件縮小至初始大小以下,以提高存儲效率。
文件收縮操作從文件末端開始,按反向順序進行。例如,若將5GB文件收縮至4GB,SQL Server 2000將從最後1GB開始釋放空間。如果釋放部分包含已使用過的頁面,系統將重新定位這些頁面至保留區域,確保數據完整性和存儲結構的優化。