當前位置:首頁 » 編程語言 » sql2005資料庫收縮

sql2005資料庫收縮

發布時間: 2025-02-19 15:05:55

① 如何清空sql server 2005日誌文件

SQL Server資料庫長期使用後,日誌文件可能會變得非常大,佔用大量的系統資源,甚至可能導致「日誌滿」錯誤,使資料庫不可用。在這種情況下,我們需要定期清理資料庫。

清理SQL Server資料庫日誌的方法有幾種。最常用的方法是清空日誌。具體步驟如下:

1. 打開查詢分析器,輸入命令「DUMP TRANSACTION 資料庫名 WITH NO_LOG」,這將清空當前事務日誌。

2. 使用企業管理器,右鍵點擊你要壓縮的資料庫,選擇「所有任務」下的「收縮資料庫」選項,再選擇「收縮文件」,然後選擇日誌文件。在收縮方式中選擇「收縮至」,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定即可。

另一種方法雖然能夠生成新的日誌文件,但有一定的風險,因為SQL Server的日誌文件不是即時寫入資料庫主文件的。如果不當操作可能會導致數據丟失。

具體步驟如下:

1. 首先分離資料庫。在企業管理器中,選擇伺服器,然後選擇資料庫,右鍵點擊,選擇「分離資料庫」。

2. 刪除日誌文件。在企業管理器中,選擇伺服器,然後選擇資料庫,右鍵點擊,選擇「附加資料庫」。這將生成新的日誌文件,其大小通常只有500多K。

對於SQL 2000以下版本,可以使用以下方法防止日誌文件過大:

1. 在資料庫上右鍵點擊,選擇「屬性」,在「選項」中選擇「故障恢復-模型」,然後選擇「簡單模型」。

2. 使用SQL語句:「ALTER DATABASE 資料庫名 SET RECOVERY SIMPLE」。

此外,資料庫屬性中還包含與事務日誌增長相關的兩個選項:

1. Truncate log on checkpoint(此選項適用於SQL 7.0,SQL 2000中即故障恢復模型選擇為簡單模型)。當執行CHECKPOINT命令時,如果事務日誌文件超過其大小的70%,則將其內容清除。開發資料庫時常常將此選項設置為True,當資料庫文件或日誌文件的未用空間超過其大小的25%時,系統將自動縮減文件使其未用空間等於25%。當文件大小沒有超過其建立時的初始大小時,不會縮減文件。縮減後的文件也必須大於或等於其初始大小。對事務日誌文件的縮減只有在對其作備份時或將Truncate log on checkpoint選項設為True時才能進行。

需要注意的是,一般立成建立的資料庫默認屬性已設好,但如果遇到意外情況使資料庫屬性被更改,請用戶在清空日誌後,檢查資料庫的以上屬性,以防事務日誌再次充滿。

② SQL2005資料庫日誌文件LOG太大怎麼辦

Sqlserver2005下,日誌文件太大,使其減小的方法。
在打開SQL Server Management Studio並正常聯接SQL伺服器後,運行下面的三行:
( 注意將dbName代換為你的資料庫名。)
backup log dbName with NO_LOG
backup log dbName with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)

注意,在SQL 2008之後的版本以上方法無效,需將資料庫設為簡單模式後再進行收縮。

此外,在SQL Server Management Studio中,以視窗方法操作也可以,操作步驟:
第一步:截斷資料庫日誌,運行代碼:
BACKUP LOG 要收縮的資料庫名 WITH NO_LOG
第二步:收縮資料庫日誌文件:
1. 選擇要收縮的資料庫,點右鍵選擇任務-收縮-文件

2. 在彈出的頁面中,選擇文件類型為日誌

3.點確定。

③ sql收縮資料庫日誌的幾種辦法

在SQL Server 2000/2005中可以快速壓縮日誌log文件,通過SQL,

方法一:

--BigData為資料庫名
DUMPTRANSACTIONBigDataWITHNO_LOG
BACKUPLOGBigDataWITHNO_LOG
DBCCSHRINKDATABASE(BigData)

執行以上語句可以快速壓縮日誌文件到1M。

但是以上語句中前兩行在SQL Server 2008下無法執行 ,

第一行提示「Incorrect syntax near the keyword 'TRANSACTION'.」

第二行提示「One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. 」

第三行可以執行。但日誌log文件沒有任何變化。

原來SQL Server 2008已經不再支持DUMPTRANSACTION和BACKUP LOG WITH NO_LOG,

sql Server 2005說明中明確:包含 DUMP 語句是為了向後兼容。而 後續版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,並著手修改當前還在使用該功能的應用程序。 使用 BACKUP。

SQL Server 2008說明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 選項已廢止。使用完整恢復模式或大容量日誌恢復模式時,如果必須刪除資料庫中的日誌備份鏈,請切換至簡單恢復模式。有關詳細信息,請參閱有關從完整恢復模式或大容量日誌恢復模式切換的注意事項。

方法二:

useDB_NAME
sp_dboptionDB_NAME,"trunc.logonchkpt.",true
checkpoint
sp_dboptionDB_NAME,"autoshrink",true

方法三:(請提前備份文件!!)

  1. Detach資料庫。

  2. 刪除log文件。

  3. 附加資料庫,選移除log文件,此時SQL Server 會自動重新建立一個512K 的Log 文件。

方法四:

USEBigData;
GO
BACKUPLOGDATABASENAMETODISK='d: est.bak'
--.
DBCCSHRINKFILE(Bigdata_Log,1);
GO
熱點內容
易語言源碼怎麼保存 發布:2025-04-23 01:36:28 瀏覽:159
查看應用數據的存儲路徑 發布:2025-04-23 01:36:18 瀏覽:382
winformaccess資料庫 發布:2025-04-23 01:31:20 瀏覽:166
免費申請騰訊雲伺服器 發布:2025-04-23 01:23:12 瀏覽:731
阿里雲上傳慢 發布:2025-04-23 01:04:10 瀏覽:586
我爸電腦配置給別人看沒什麼事吧 發布:2025-04-23 00:58:54 瀏覽:723
大學編程課程 發布:2025-04-23 00:48:55 瀏覽:470
伺服器的內網ip有什麼用 發布:2025-04-23 00:46:40 瀏覽:958
誅仙3需要什麼配置 發布:2025-04-23 00:29:49 瀏覽:665
什麼是編譯錯誤參數不可選 發布:2025-04-23 00:23:06 瀏覽:520