資料庫日誌收縮
日誌文件太大,使其減小的方法。
在打開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 server怎麼收縮日誌
1、首先選中資料庫右鍵--屬性 點擊
③ SQL資料庫中日誌收縮、截斷等等是什麼
如:shgzts為資料庫名
mp transaction shgzts with no_log --截斷日誌
backup log shgzts with no_log --備份日誌
dbcc shrinkdatabase(shgzts,truncateonly) --資料庫收縮
④ sql2008中如何收縮資料庫日誌文件
解決方法:
方法一
右鍵選擇資料庫-》任務-》收縮-》文件-》文件類型-》日誌-》在釋放未使用的空間前重新組織頁
方法二(不推薦)
1 必須先改成簡單模式
2 然後用
----Logical Files :
--CMS1.5_Data
--CMS1.5_Log
DBCC SHRINKFILE (N'CMS1.5_Log' , 1)
GO
註:Data是數據文件,Log是日誌文件
⑤ 怎樣壓縮資料庫的日誌文件
具體方法有3種。
方法一:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--
no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以。
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行:
dbcc
shrinkdatabase
(database_name,[,target_percent])
--
database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比。
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc
shrinkfile(file_id,[,target_size])
--
file_id是要收縮的文件的標識
(ID)
號,若要獲得文件
ID,請使用
FILE_ID
函數或在當前資料庫中搜索
sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc
shrinkfile
將文件大小減少到默認文件大小。兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思查看聯機幫助.
方法二:
第一步:
先備份整個資料庫以備不測
。
第二步:
備份結束後,在Query
Analyzer中執行如下的語句:
exec
sp_detach_db
yourDBName,true
--卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query
Analyzer中執行如下的語句:
exec
sp_attach_single_file_db
yourDBName,'
d:\mssql\data\yourDBName_data.mdf
'
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。
方法三:
1.
進入企業管理器,選中資料庫,比如demo
2.
所有任務->分離資料庫
3.
到資料庫文件的存放目錄,將MuOnline_log.LDF文件刪除,以防萬一,你可以拷出去
4.
企業管理器->附加資料庫,選muonline,這個時候你會看見日誌文件這項是一個叉,不要緊,繼續,此時資料庫就會提示你該資料庫無日誌是否創建一個新的,確定就是了。
5.
記得資料庫重新附加後用戶要重新設置一下。
如果以後,不想要它變大:
SQL2000下使用:
在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。
或用SQL語句:
alter
database
資料庫名
set
recovery
simple
⑥ 收縮資料庫日誌的影響,資料庫日誌已滿,如何處理
--此為數據文件、資料庫日誌文件收縮操作語句
--保存時間:2017-1-9
--使用說明:
--「DataBase」為資料庫名稱,在進行數據收縮操作前,先做好數據備份
--將語句中的「DataBase」替換為需要進行數據收縮的資料庫名稱,如:test
--在進行資料庫收縮的時候,要留出操作時間,期間不要進行任何用戶操作
--確認無誤後,執行語句,即可進行數據收縮!
usemaster
go
_WAIT
go
go
declare@namevarchar(20)
declare@sqlvarchar(100)
select@name=namefromsys.database_fileswheretype=1
set@sql='DBCCSHRINKFILE(N'''+@name+''',11,TRUNCATEONLY)'
exec(@sql)
go
dbccshrinkdatabase(DataBase)
go
_WAIT
go
--設置恢復模式('SIMPLE'表示簡單;'FULL'表示完整)
go
--設置資料庫兼容性級別為sql2008
_level=100
go
⑦ 如何收縮資料庫日誌文件大小
1.先分離資料庫,然後刪除日誌文件,再附件資料庫。
2.收縮文件,選擇日誌文件,設置將文件收縮到0M,試了一下,只能從65G收縮到55G,也就是只釋放了未使用的空間。方法 二、
1.選中資料庫,右鍵屬性/選項,把恢復模式從「完整」改為「簡單」。
2.選中資料庫,右鍵任務/收縮文件,選擇日誌文件,設置將文件收縮為0M,確定。
3.再將恢復模式從「簡單」-「完整」即可。
⑧ 怎樣把資料庫的日誌文件壓縮
具體方法有3種。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以。
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比。
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收縮的文件的標識 (ID) 號,若要獲得文件 ID,請使用 FILE_ID 函數或在當前資料庫中搜索 sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc shrinkfile 將文件大小減少到默認文件大小。兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思查看聯機幫助.
⑨ 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
方法三:(請提前備份文件!!)
Detach資料庫。
刪除log文件。
附加資料庫,選移除log文件,此時SQL Server 會自動重新建立一個512K 的Log 文件。
方法四:
USEBigData;
GO
BACKUPLOGDATABASENAMETODISK='d: est.bak'
--.
DBCCSHRINKFILE(Bigdata_Log,1);
GO