Sql數據庫批量清理日志

說明:SQL數據庫日志經常過大,引起很多問題,網上很多清理日志的方法,但都比較麻煩,并且不能一次性清理所有數據庫。如果有幾十個數據庫要清理,一個個手工來,想必非常麻煩。


以下代碼清除 除了指定的'master', 'msdb', 'tempdb', 'model',??'ReportServerTempDB', 'ReportServer' 以外的所有數據庫的日志。

自己可以指定哪些數據庫不處理。


不說了,直接上代碼,懶人自有懶人的辦法(在sql2012上測試通過,其它版本數據庫自行測試):






USE [master]


------------遍歷所有用戶數據庫 進行日志清理-------------------------------------------------------------------?
DECLARE @SQL AS NVARCHAR(4000)?
DECLARE @DATABaseName AS NVARCHAR(50)?


DECLARE My_Cursor CURSOR --定義游標?
FOR
? ? (
? ? ? ? SELECT NAME
? ? ? ? FROM ? sys.databases
? ? ? ? WHERE ?NAME NOT IN ('master', 'msdb', 'tempdb', 'model',?
? ? ? ? ? ? ? ? ? ? ? ? ? ?'ReportServerTempDB', 'ReportServer')
? ? ) --查出需要的集合放到游標中
OPEN My_Cursor; --打開游標
FETCH NEXT FROM My_Cursor INTO @DATABaseName; --讀取第一行數據?
WHILE @@FETCH_STATUS = 0
BEGIN
? ? SET @SQL = '
USE ' + @DATABaseName +?
? ? ? ? '


--查詢出數據庫對應的日志文件名稱
DECLARE @strDBName AS NVARCHAR(500)
DECLARE @strLogName AS NVARCHAR(500)
DECLARE @strSQL AS VARCHAR(1000)
DECLARE @DBLogSise AS INT = 2

SELECT @strLogName = B.name,
? @strDBName = A.name
FROM ? MASTER.sys.databases ? ? ? ? AS A
? INNER JOIN sys.master_files ?AS B
ON ?A.database_id = B.database_id
WHERE ?A.database_id = DB_ID()?

SET @strSQL = ''
--設置數據庫恢復模式為簡單
ALTER DATABASE ['' + @strDBName +
''] SET RECOVERY SIMPLE;
--收縮日志文件
DBCC SHRINKFILE ('' + @strLogName + '' , '' + CONVERT(VARCHAR(20), @DBLogSise)
+ '');
--恢復數據庫還原模式為完整
ALTER DATABASE ['' + @strDBName + ''] SET RECOVERY FULL ''


EXEC (@strSQL)


'
? ??
? ? EXEC (@SQL)?
? ? PRINT '清理' + @DATABaseName + '日志完成'
? ??
? ? FETCH NEXT FROM My_Cursor INTO @DATABaseName; --讀取下一行數據
END
CLOSE My_Cursor; --關閉游標
DEALLOCATE My_Cursor; --釋放游標
?
?
PRINT '-----------清理日志完成---------------------' + CONVERT(VARCHAR(100), GETDATE(), 126)+ '----------


不說了,直接上代碼,懶人自有懶人的辦法:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286830.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286830.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286830.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【BZOJ-2299】向量 裴蜀定理 + 最大公約數

2299: [HAOI2011]向量 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1118 Solved: 488[Submit][Status][Discuss]Description 給你一對數a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)這些向量,問你能不能拼…

采用ArcGIS 10.6制作漂亮的點陣世界地圖,完美!!!

如下圖所示,怎樣制作完美漂亮的點陣世界地圖呢?今天我就教大家吧! 其實,制作過程相當簡單,主要的思路是通過世界地圖范圍去創建漁網(標注點),再選擇范圍內的標注點,符號化即可,怎么樣,很簡單吧,下面我們一步一步來實現吧。 1. 加載世界地圖 打開ArcGIS軟件,加載軟…

Android ping命令 -- Runtime

代碼: 1 public String Run(String _strsIp) throws Exception2 {3 String strRst "";4 try5 {6 String str "ping -c 1 "_strsIp;7 Runtime runtime Runtime.getRuntime();8 …

懶辦法1篇文10分鐘快速入門MySQL增刪查改

作者簡介 作者名:1_bit 簡介:CSDN博客專家,2020年博客之星TOP5,InfoQ簽約作者,藍橋簽約作者。15-16年曾在網上直播,帶領一批程序小白走上程序員之路。歡迎各位小白加我咨詢我相關信息,迷茫的你…

Android(kotlin)之對一組圖片數據更新最后的修改時間進行分類顯示

1 需求 我們需要實現攜帶時間頭的一系列照片如下顯示,現在我們拿到了圖片集合,肯定需要對圖片根據實現進行分組顯示 date picture picture picture picture picture picture picture picture picturedate picture picture picture picture picture 2 代碼實現 fun getImag…

SqlServer 數據庫 分離復制備份然后附加回數據庫 sql代碼

工作中,我們經常需要把數據庫進行分離,復制數據庫到另一個地方,再將原數據庫文件附加回數據庫 。 當然通過鼠標操作的步驟比較麻煩: 1、 右鍵數據庫 --------任務------分離 2、打開數據庫文件所在目錄,復制數據庫 …

01:操作系統(centos,redhat):性能監控和網絡命令

性能監控和優化命令 top命令功能:顯示當前系統正在執行的進程的相關信息,包括進程ID、內存占用率、CPU占用率等常用參數:-d 屏幕刷新間隔時間屏幕信息解釋字段說明:第一行:top 當前系統時間up 系統運行時間…

大話領域驅動設計——領域層

概述在DDD中,業務邏輯主要分布在領域層和應用層兩層,他們包含不同的業務邏輯。這一篇,我們先對領域層做詳細的講解分析。領域層實現了領域或系統的,與用戶界面上的用戶交互(用例)無關的核心業務邏輯。總覽領…

【北斗】北斗衛星導航系統(BDS)介紹

一、概述 北斗衛星導航系統(以下簡稱北斗系統)是中國著眼于國家安全和經濟社會發展需要,自主建設運行的全球衛星導航系統,是為全球用戶提供全天候、全天時、高精度的定位、導航和授時服務的國家重要時空基礎設施。 北斗系統提供服務以來,已在交通運輸、農林漁業、水文監…

Android之解決VideoView控件的進度條位置擺放問題和打開播放黑屏問題

1 問題 VideoView控件如何配合MediaController使用,就會顯示進度條,但是位置擺放在最底部,不是我們想要的結果 2、基本使用 private var mMediaController:MediaController? = nullfun playVedio() {mMediaController = MediaController(this as Activity)trashVideoView…

Snmp linux

http://blog.csdn.net/youngqj/article/details/7311849 http://blog.csdn.net/howema/article/details/4182408 http://my.oschina.net/yisenn/blog/14626轉載于:https://www.cnblogs.com/diyunpeng/p/5720952.html

正則驗證金額大于等于0,并且只到小數點后2位

2019獨角獸企業重金招聘Python工程師標準>>> ^(([0-9]|([1-9][0-9]{0,9}))((\.[0-9]{1,2})?))$ 轉載于:https://my.oschina.net/u/934148/blog/528688

我結婚了,我要用什么做個邀請函呢?【iVX無代碼YYDS 06】

作者簡介 作者名:1_bit 簡介:CSDN博客專家,2020年博客之星TOP5,InfoQ簽約作者、CSDN新星導師,華為云享專家。15-16年曾在網上直播,帶領一批程序小白走上程序員之路。歡迎各位小白加我咨詢我相關信息&#…

【專升本計算機】計算機文化基礎練習題(選擇題300道附答案)

專升本計算機文化基礎練習題 1、 世界上第一臺電子計算機誕生于 ______A_ 。 A . 20 世紀 40 年代 B . 19 世紀 C . 20 世紀 80 年代 D . 1950 年 2、 世界上第一臺電子計算機是 1946 年在美國研制成功的,該機的英文縮寫名是 ___A__ 。 A . ENIAC B . EDVAC C…

《微軟云計算Microsoft Azure部署與管理指南》即將上市!!!

大家好,本人新作《微軟云計算Microsoft Azure部署與管理指南》即將與廣大讀者見面,由電子工業出版社出版。希望大家能關注此書,并推薦給身邊的好友和技術人員。 眾所周知,Microsoft Azure是專業的國際化公有云平臺, 是微軟研發的公…

如何用SQL來檢測文件是否存在

工作中,我們經常需要檢查上傳的文件是否存在,用戶上傳的頭像是否存在,等等。 有沒有辦法直接用SQL來查詢呢? 請直接看代碼: /************************************************************ * Create By Jacky * T…

如何解決分布式日志exceptionless的寫入瓶頸

我們都知道在分布式日志當中,exceptionless客戶端是把日志寫到Elasticsearch數據庫,就像我們把數據寫入到關系數據庫一樣;既然是寫入,那么在短時間大數據量的情況下,寫入就會涉及到效率的問題;首先我們看下…

iVX 基礎

1.1 iVX 線上集成環境進入 點擊 連接 或通過瀏覽器輸入網址 https://editor.ivx.cn/ 進入線上集成開發環境。 進入 在線集成開發環境 后,可點擊右上角 登錄/注冊 進行帳號登錄或者注冊。登錄賬戶 后在進行項目開發時會自動保存項目開發進度。 [外鏈圖片轉存失敗…

關于有序二維矩陣查找和字符串替換的兩道算法題

最近看一本書上寫到的兩個面試題 于是實現了一下 感覺思路很好,大牛略過 : 1、對于一個二維矩陣,從左到右 從上到下 都是遞增的,如何判斷一個值是否在矩陣內部?(C實現 實現復雜度 O(n)) bool FindInTwoDimensionalMatrix(int*pMatrix,int iRows,int i…

Maven實戰:pom.xml與settings.xml

pom.xml與settings.xml pom.xml與setting.xml,可以說是Maven中最重要的兩個配置文件,決定了Maven的核心功能,雖然之前的文章零零碎碎有提到過pom.xml和settings.xml里面的內容,但都是大略帶過,學習與研究地并不細致&am…