本文主要介绍我在维护windows server服务器期间总结的一些磁盘清理方式。如对您有所帮助,不甚荣幸。
C盘清理(系统级)
我们在使用服务器的时候基本不会在C盘安装软件,但电脑用久了还是会发现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
清理其他不必要文件
服务器IIS日志清理后,清理以下文件:
C:\WINDOWS\PCHealth\ERRORREP\QSIGNOFF
C:\WINDOWS\PCHealth\ERRORREP\UserDumps
C:\Windows\Temp
虚拟内存从c盘移到其他硬盘
服务器虚拟内存默认是在C盘的,将虚拟内存转移到其他盘,如D盘或是E盘,可以增加C盘的空间,虚拟内存设置方法点击这里查看。
虚拟内存设置到其他盘服务器需要重启才能生效,服务器重启也可以关闭很多系统产生的缓存文件
删除不必要的文件对清理C盘作用不大,主要就是清理IIS系统日志和虚拟内存设置可以解决服务器c盘空间不足的问题
最后说一下,很多程序路径默认都是C盘,在安装的时候路径可以更换到D盘或是E盘,C盘很多都是系统文件,不好清理。
.net 运行时(runtime)的清理
.NET 程序员对 .NET肯定都不陌生。.NET 是由 Microsoft 创建的开源开发人员平台,用于生成许多不同类型的应用程序.
以我公司某一win server 服务器的程序和功能界面为例,按照大小排序可以看到.net 运行环境占用了大量的磁盘空间,而.net 运行环境都是强制安装在C盘的。这里我们有两种清理方案:
清理已经不再使用的.NET版本
从图中可以看到.net 版本分别有.N我 ET5.0、.NET Core 3.1、.NET Core 2.2。
这里我们需要判断服务器上部署的web应用有没有用到相关的.NET 版本。比方说,由于公司所有web应用都从早期的.NET Core 2.2升级到了.NET5.0和.NET Core 3.1此时就可以卸载.NET core 2.2。后期可以继续考虑全部升级到.NET5.0。这样就又能清理出不小的空间。
用.NET Rumtime代替.NET SDK
.NET SDK是微软提供的SDK用于,开发编译调试.NET 应用,说白了就是给Visual Studio用的。而一般而言,服务器上根本不需要安装VisualStudio来开发.NET应用,只需要部署.NET应用即可。
微软关于.NET SDK的介绍:
微软关于.NET Rumtime的介绍:
因此,我们可以卸载.NET SDK,而用相应版本的.NET Runtime取而代之。C盘空间会小很多。
Microsoft SQL Server系统运行日志的清理
如果你需要使用Microsoft SQL Server作为数据库,那么你需要了解:Microsoft SQL Server为你提供强大详细的日志功能的同时,大量的日志也会占用大量空间。对于我们来说一个比较大的负担。
数据库日志分为两种:数据库系统运行日志和用户数据库的日志。用户数据库日志又叫事务日志,一般是ldf后缀的日志文件。而系统运行日志则是Microsoft SQL Server作为一个软件本身在运行过程中需要记录的一些操作日志。
我们可以一键清空Microsoft SQL Server系统运行日志:
你只需打开这个目录,C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log,然后全选删除所有文件即可(注意跳过正在使用中的文件)。
此操作不会对系统运行产生任何影响。
日常软件的清理
清理各大软件日志
禅道:
禅道的备份文件路径:C:\xampp\zentao\tmp。用的越久占用越大,可以删掉。
数据库:
Sql server:
整理索引碎片
SQL Server 在使用过程中会产生索引碎片。我们可以通过整理索引碎片来压缩空间。
SQL Server查看数据库索引碎片情况的 SQL 语句:
-- SQL Server查看数据库索引碎片情况
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
运行结果:
索引碎片整理的四种方法:
1)删除索引并重建
2)使用 DROP_EXISTING 语句重建索引
3)使用 ALTER INDEX REBUILD 语句重建索引
4)使用 ALTER INDEX REORGANIZE 重新组织索引
详见:SQL Server索引的维护 - 索引碎片、填充因子
我们使用方法主要是方法三 Rebuild (重建索引)和方法四 Reorganize (重新组织索引)。
重建索引,顾名思义就是删掉原来的索引并重新建立索引。空间回收程度高,操作比较危险,操作比较久。
重新组织索引,顾名思义就是不删掉原来的索引,在原有的基础上,重新组织索引。可以一定程度回收空间,但操作比较安全,操作速度快。
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
运行结果:
手动重新生成索引
Mysql:
Mysql binlog日志清理:
MySQL中的binlog日志记录了数据库中数据的变动,便于对数据的基于时间点和基于位置的恢复,但是binlog也会日渐增大,占用很大的磁盘空间,因此,要对binlog使用正确安全的方法清理掉一部分没用的日志。
具体操作参考文章:mysql正确清理binlog日志的方法
腾讯电脑管家智能备份文件夹 qqpcmgr_docpro
如果你平时使用腾讯电脑管家,它会生成一个qqpcmgr_docpro文件。本目录由电脑管家-文档守护者生成,用于存储“智能备份”产生的文件。
这是腾讯官方的说明文档:
平时注意删除或者限制大小。
常用硬盘清理工具整理
未完待续文章来源:https://www.toymoban.com/news/detail-445031.html
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。文章来源地址https://www.toymoban.com/news/detail-445031.html
到了这里,关于windows server 硬盘满了怎么清理?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!