sqlserver清除日誌 驗證

2021-09-05 18:12:29 字數 1378 閱讀 5119

1.dump transaction [database_name] with  no_log [收縮資料庫是還真是必須的加上]

2.backup log [database_name] with no_log

3.收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小)

企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮檔案

--選擇日誌檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了

--選擇資料檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了

4.如果想以後不讓它增長

企業管理器->伺服器->資料庫->屬性->事務日誌->將檔案增長限制為2m

程式裡面的方法:

壓縮資料庫日誌

--1.清空日誌

exec('dump transaction ['+@dbname+'] with no_log')

--2.截斷事務日誌:

exec('backup log ['+@dbname+'] with no_log')

--3.收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小

exec('dbcc shrinkdatabase(['+@dbname+'])')

方法1:

第一步:

dump transaction database_name with  no_log

backup log database_name with no_log

第二步:

收縮特定資料庫的所有資料和日誌檔案,執行 dbcc shrinkdatabase (database_name)

方法2:

另一種方法有一定的風險性,因為sql server的日誌檔案不是即時寫入資料庫主檔案的,如處理不當,會造成資料的損失。

1: 刪除log

分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫

2:刪除log檔案

附加資料庫 企業管理器->伺服器->資料庫->右鍵->附加資料庫

此法會提示"重新建立log"生成新的log,大小只有500多k。

注意:建議使用第一種方法。

如果以後,不想要它變大。

sql2000下使用:

在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。

或用sql語句:

alter database 資料庫名 set recovery ******

方法3:

如果資料庫使用的是簡單恢復模式,直接執行checkpoint之後,再收縮一次資料庫,則刪除新的 minlsn 之前的所有日誌記錄。

參考:sql聯機叢書:checkpoint,檢查點和日誌的活動部分

SQL SERVER 清除日誌

1.在sql2008中清除日誌就必須在簡單模式下進行,等清除動作完畢再調回到完全模式。2.這裡的dbname log 可以通過以下查詢 use dbname goselect file id,name from sys.database files use master goalter databa...

SQL Server清除日誌語句

sql1 清除日誌 2 declare logicalfilename sysname,3 maxminutes int,4 newsize int 5 use database 要操作的資料庫名 6 select logicalfilename database log 日誌檔名 7 maxmin...

清除SQLServer日誌的方法

方法1 第一步 backup log database name with no log 第二步 收縮特定資料庫的所有資料和日誌檔案,執行 dbcc shrinkdatabase database name 方法2 另一種方法有一定的風險性,因為sql server的日誌檔案不是即時寫入資料庫主檔案...