本文主要介紹我在維護windows server服務(wù)器期間總結(jié)的一些磁盤清理方式。如對您有所幫助,不甚榮幸。
C盤清理(系統(tǒng)級)
我們在使用服務(wù)器的時候基本不會在C盤安裝軟件,但電腦用久了還是會發(fā)現(xiàn)C盤滿了,提示空間不足。
System32的日志文件
打開文件夾C:\Windows\System32\LogFiles 。全部刪掉(跳過正在使用中的文件)。
IIS的日志文件
打開文件夾C:\inetpub\logs\LogFiles 。全部刪掉(跳過正在使用中的文件)。
.Net Framework的緩存文件
.Net Framework也會有很多緩存文件:
分別找到Temporary ASP.NET Files文件(如果有),清一下緩存文件。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
清理其他不必要文件
服務(wù)器IIS日志清理后,清理以下文件:
C:\WINDOWS\PCHealth\ERRORREP\QSIGNOFF
C:\WINDOWS\PCHealth\ERRORREP\UserDumps
C:\Windows\Temp
虛擬內(nèi)存從c盤移到其他硬盤
服務(wù)器虛擬內(nèi)存默認是在C盤的,將虛擬內(nèi)存轉(zhuǎn)移到其他盤,如D盤或是E盤,可以增加C盤的空間,虛擬內(nèi)存設(shè)置方法點擊這里查看。
虛擬內(nèi)存設(shè)置到其他盤服務(wù)器需要重啟才能生效,服務(wù)器重啟也可以關(guān)閉很多系統(tǒng)產(chǎn)生的緩存文件
刪除不必要的文件對清理C盤作用不大,主要就是清理IIS系統(tǒng)日志和虛擬內(nèi)存設(shè)置可以解決服務(wù)器c盤空間不足的問題
最后說一下,很多程序路徑默認都是C盤,在安裝的時候路徑可以更換到D盤或是E盤,C盤很多都是系統(tǒng)文件,不好清理。
.net 運行時(runtime)的清理
.NET 程序員對 .NET肯定都不陌生。.NET 是由 Microsoft 創(chuàng)建的開源開發(fā)人員平臺,用于生成許多不同類型的應(yīng)用程序.
以我公司某一win server 服務(wù)器的程序和功能界面為例,按照大小排序可以看到.net 運行環(huán)境占用了大量的磁盤空間,而.net 運行環(huán)境都是強制安裝在C盤的。這里我們有兩種清理方案:
清理已經(jīng)不再使用的.NET版本
從圖中可以看到.net 版本分別有.N我 ET5.0、.NET Core 3.1、.NET Core 2.2。
這里我們需要判斷服務(wù)器上部署的web應(yīng)用有沒有用到相關(guān)的.NET 版本。比方說,由于公司所有web應(yīng)用都從早期的.NET Core 2.2升級到了.NET5.0和.NET Core 3.1此時就可以卸載.NET core 2.2。后期可以繼續(xù)考慮全部升級到.NET5.0。這樣就又能清理出不小的空間。
用.NET Rumtime代替.NET SDK
.NET SDK是微軟提供的SDK用于,開發(fā)編譯調(diào)試.NET 應(yīng)用,說白了就是給Visual Studio用的。而一般而言,服務(wù)器上根本不需要安裝VisualStudio來開發(fā).NET應(yīng)用,只需要部署.NET應(yīng)用即可。
微軟關(guān)于.NET SDK的介紹:
微軟關(guān)于.NET Rumtime的介紹:
因此,我們可以卸載.NET SDK,而用相應(yīng)版本的.NET Runtime取而代之。C盤空間會小很多。
Microsoft SQL Server系統(tǒng)運行日志的清理
如果你需要使用Microsoft SQL Server作為數(shù)據(jù)庫,那么你需要了解:Microsoft SQL Server為你提供強大詳細的日志功能的同時,大量的日志也會占用大量空間。對于我們來說一個比較大的負擔。
數(shù)據(jù)庫日志分為兩種:數(shù)據(jù)庫系統(tǒng)運行日志和用戶數(shù)據(jù)庫的日志。用戶數(shù)據(jù)庫日志又叫事務(wù)日志,一般是ldf后綴的日志文件。而系統(tǒng)運行日志則是Microsoft SQL Server作為一個軟件本身在運行過程中需要記錄的一些操作日志。
我們可以一鍵清空Microsoft SQL Server系統(tǒng)運行日志:
你只需打開這個目錄,C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log,然后全選刪除所有文件即可(注意跳過正在使用中的文件)。
此操作不會對系統(tǒng)運行產(chǎn)生任何影響。
日常軟件的清理
清理各大軟件日志
禪道:
禪道的備份文件路徑:C:\xampp\zentao\tmp。用的越久占用越大,可以刪掉。
數(shù)據(jù)庫:
Sql server:
整理索引碎片
SQL Server 在使用過程中會產(chǎn)生索引碎片。我們可以通過整理索引碎片來壓縮空間。
SQL Server查看數(shù)據(jù)庫索引碎片情況的 SQL 語句:
-- SQL Server查看數(shù)據(jù)庫索引碎片情況
SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName,
ind.name AS IndexName, indexstats.index_type_desc AS IndexType,
indexstats.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
INNER JOIN sys.indexes ind
ON ind.object_id = indexstats.object_id
AND ind.index_id = indexstats.index_id
WHERE indexstats.avg_fragmentation_in_percent > 30
ORDER BY indexstats.avg_fragmentation_in_percent DESC
運行結(jié)果:
索引碎片整理的四種方法:
1)刪除索引并重建
2)使用 DROP_EXISTING 語句重建索引
3)使用 ALTER INDEX REBUILD 語句重建索引
4)使用 ALTER INDEX REORGANIZE 重新組織索引
詳見:SQL Server索引的維護 - 索引碎片、填充因子
我們使用方法主要是方法三 Rebuild (重建索引)和方法四 Reorganize (重新組織索引)。
重建索引,顧名思義就是刪掉原來的索引并重新建立索引??臻g回收程度高,操作比較危險,操作比較久。
重新組織索引,顧名思義就是不刪掉原來的索引,在原有的基礎(chǔ)上,重新組織索引。可以一定程度回收空間,但操作比較安全,操作速度快。
SQL Server自動重新組織索引的SQL 語句:
-- SQL Server重新組織索引
SET NOCOUNT ON
DECLARE @Objectid INT, @Indexid INT,@schemaname VARCHAR(100),@tablename VARCHAR(300),@ixname VARCHAR(500),@avg_fip float,@command VARCHAR(4000)
DECLARE IX_Cursor CURSOR FOR
SELECT A.object_id,A.index_id,QUOTENAME(SS.NAME) AS schemaname,QUOTENAME(OBJECT_NAME(B.object_id,B.database_id))as tablename ,QUOTENAME(A.name) AS ixname,B.avg_fragmentation_in_percent AS avg_fip FROM sys.indexes A inner join sys.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,'LIMITED') AS B
ON A.object_id=B.object_id and A.index_id=B.index_id
INNER JOIN SYS.OBJECTS OS ON A.object_id=OS.object_id
INNER JOIN sys.schemas SS ON OS.schema_id=SS.schema_id
WHERE B.avg_fragmentation_in_percent>10 and B.page_count>20 AND A.index_id>0 AND A.IS_DISABLED<>1--AND OS.name='book'
ORDER BY tablename,ixname
OPEN IX_Cursor
FETCH NEXT FROM IX_Cursor INTO @Objectid,@Indexid,@schemaname,@tablename,@ixname,@avg_fip
WHILE @@FETCH_STATUS=0
BEGIN
IF @avg_fip<30.0
SET @command=N'ALTER INDEX '+@ixname+N' ON '+@schemaname+N'.'+ @tablename+N' REORGANIZE ';
IF @avg_fip>=30.0 AND @Indexid=1
BEGIN
IF EXISTS (SELECT * FROM SYS.columns WHERE OBJECT_ID=@Objectid AND max_length in(-1,16))
SET @command=N'ALTER INDEX '+@ixname+N' ON '+@schemaname+N'.'+ @tablename+N' REBUILD ';
ELSE
SET @command=N'ALTER INDEX '+@ixname+N' ON '+@schemaname+N'.'+ @tablename+N' REBUILD '+N' WITH (ONLINE = ON)';
END
IF @avg_fip>=30.0 AND @Indexid>1
BEGIN
IF EXISTS (SELECT * FROM SYS.index_columns IC INNER JOIN SYS.columns CS ON CS.OBJECT_ID=IC.OBJECT_ID AND CS.column_id=IC.column_id WHERE IC.OBJECT_ID=@Objectid AND IC.index_id=@Indexid AND CS.max_length in(-1,16) )
SET @command=N'ALTER INDEX '+@ixname+N' ON '+@schemaname+N'.'+ @tablename+N' REBUILD ';
ELSE
SET @command=N'ALTER INDEX '+@ixname+N' ON '+@schemaname+N'.'+ @tablename+N' REBUILD '+N' WITH (ONLINE = ON)';
END
--PRINT @command
EXEC(@command)
FETCH NEXT FROM IX_Cursor INTO @Objectid,@Indexid,@schemaname,@tablename,@ixname,@avg_fip
END
CLOSE IX_Cursor
DEALLOCATE IX_Cursor
運行結(jié)果:
手動重新生成索引
Mysql:
Mysql binlog日志清理:
MySQL中的binlog日志記錄了數(shù)據(jù)庫中數(shù)據(jù)的變動,便于對數(shù)據(jù)的基于時間點和基于位置的恢復,但是binlog也會日漸增大,占用很大的磁盤空間,因此,要對binlog使用正確安全的方法清理掉一部分沒用的日志。
具體操作參考文章:mysql正確清理binlog日志的方法
騰訊電腦管家智能備份文件夾 qqpcmgr_docpro
如果你平時使用騰訊電腦管家,它會生成一個qqpcmgr_docpro文件。本目錄由電腦管家-文檔守護者生成,用于存儲“智能備份”產(chǎn)生的文件。
這是騰訊官方的說明文檔:
平時注意刪除或者限制大小。
常用硬盤清理工具整理
未完待續(xù)文章來源:http://www.zghlxwxcb.cn/news/detail-445031.html
總結(jié)
提示:這里對文章進行總結(jié):
例如:以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-445031.html
到了這里,關(guān)于windows server 硬盤滿了怎么清理?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!