日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在论坛中出现的各种疑难问题:日志收缩问题

發布時間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在论坛中出现的各种疑难问题:日志收缩问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近,在論壇中,遇到了不少疑難的問題,在此特別記錄,同時也感謝發帖人的分享、以及其他網友的熱心回答。


1、日志暴大,無法收縮,誰來挑戰一下!

http://bbs.csdn.net/topics/390674731?page=1#post-396518238

?

環境:windows server 2008 sqlserver 2008 報磁盤空間滿,上去查看發現數據庫的ldf文件暴大,本人隨已不用sqlserver 1年,但是以前干過,對sqlserver談不上精通,也大概知道點皮毛? 立即寫腳本操作,步驟如下。 alter database DBName set recovery simple; --邏輯操作,VLF 248 kb 標記為可重用,磁盤空間不會縮小 use DBName DECLARE @lname AS VARCHAR(50) SELECT name FROM sys.database_files WHERE type=1 DBCC SHRINKFILE (@lname,100); --物理操作收縮 截斷了的空間。但是空間一點沒有變小。所以懷疑有可能是一個很大很長的事務在執行。 alter database DBName set recovery full;use DBName go dbcc opentran --結果如下 /* 已復制的事務信息:最早的分布式 LSN : (0:0:0)最早的非分布式 LSN : (5067131:1370:2) DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。 */DBCC loginfo() --全是2 木有 0 都是活動事務,斷不了,更收縮不了。-- 一個沒有spid的東西。怎么殺啊? 查事務, select transaction_begin_time, case transaction_type when 1 then 'Read/Write transaction' when 2 then 'Read-Only transaction' when 3 then 'System transaction' when 4 then 'Distributed transaction' end tran_Type, case transaction_state when 0 then 'not been comoletely initaialiaed yet' when 1 then 'initaialiaed but ha notstarted' when 2 then 'active' when 3 then 'ended (read-only transaction)' when 4 then 'commit initiated for distributed transaction' when 5 then 'transaction prepared and waiting resolution' when 6 then 'commited' when 7 then 'being rolled back' when 0 then 'been rolled back' end transaction_state from sys.dm_tran_active_transactions --沒有發現異常的事務。沒有做過復制,沒有做過鏡像。--查看log狀態 SELECT log_reuse_wait_desc FROM sys.databases WHERE NAME='DBName' --REPLICATION 某做過復制,竟然出來個這。use DBName checkpoint go sp_removedbreplication 'DBName' DBCC SHRINKFILE(DBName_Log,100);DBCC loginfo() --還是全是活動的。 dbcc opentran 還有的那個沒有spid的復制事務。某有頭緒了! 臨時解決方案,新建了個log文件在其他盤,能頂個10幾天。趁這段時間跑來問問大牛?

?

?

這個是我的建議,不過經過測試,沒有效果:

?

alter database xxx set single_user with rollback immediate然后,再次收縮日志,應該就可以,不過可能需要暫時中斷一下業務


從上面的這個可以看出,這個問題和數據庫復制有關:

?

--查看log狀態 SELECT log_reuse_wait_desc FROM sys.databases WHERE NAME='DBName' --REPLICATION 某做過復制,竟然出來個這。

?


這個是DBA_Huangzj版主的方法,不過也沒有效果:

?

EXEC sp_removedbreplication msdb 試一下remove msdb的


最后樓主的方法:

?

?

解決了,謝謝各位,什么招都用了,以前DBA改過計算機名稱。改回來做復制再把復制刪了,不然sp_removedbrepliation根本沒用, 刪除復制后做個log備份(一檔log 1TB)。備份完這一檔log空間就可以收縮了!謝謝!


?

轉載于:https://www.cnblogs.com/momogua/p/8304531.html

總結

以上是生活随笔為你收集整理的在论坛中出现的各种疑难问题:日志收缩问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。