用金山卫士或360卫士就能轻松清理。电脑内的各种缓存是由于电脑长时间运行的各种程序所形成的。如果您的电脑存在很多这样的缓存数据,可以下载安装金山卫士、或360安全卫士来解决。以金山卫士为例,打开金山卫士后可以看到上面有个 一键清理垃圾 的按钮,用鼠标左键单击这个按钮,软件就会自动对电脑系统内的缓存进行清理。
-- 清空日志
/--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库
--/
selectfromsysfiles
--1清空日志
DUMPTRANSACTIONusernameWITHNO_LOG
--2截断事务日志:
BACKUPLOGusernameWITHNO_LOG
--3收缩数据库文件(如果不压缩,数据库的文件不会减小
-- 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
-- 也可以用SQL语句来完成
--收缩数据库
DBCCSHRINKDATABASE(username)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:selectfromsysfiles
DBCCSHRINKFILE(2)
--4为了最大化的缩小日志文件(如果是sql70,这步只能在查询分析器中进行)
-- a分离数据库:
-- 企业管理器--服务器--数据库--右键--分离数据库
-- b在我的电脑中删除LOG文件
-- c附加数据库:
-- 企业管理器--服务器--数据库--右键--附加数据库
-- 此法将生成新的LOG,大小只有500多K
-- 或用代码:
-- 下面的示例分离username,然后将username中的一个文件附加到当前服务器。
execsp_dboptionusername,'singleuser',true
a分离
EXECsp_detach_db@dbname='username'
b删除日志文件
execmasterxp_cmdshell'delD:\ProgramFiles\SQL\database\username_LOGldf'
c再附加
EXECsp_attach_single_file_db@dbname='username',
@physname='D:\ProgramFiles\SQL\database\username_DataMDF'
--5为了以后能自动收缩,做如下设置:
-- 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXECsp_dboption'数据库名','autoshrink','TRUE'
--6如果想以后不让它日志增长得太大
-- 企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alterdatabase数据库名modifyfile(name=逻辑文件名,maxsize=20)
使用pl/sql developer 可以很容易添加定时执行的Oracle存储过程
一个例子:
Sql代码
begin
sysdbms_jobsubmit(job => :job,
what => 'RATINGJOB_PRESS;',
next_date => to_date('01-01-4000', 'dd-mm-yyyy'),
interval => 'TRUNC(SYSDATE+1)');
sysdbms_jobbroken(job => :job,
broken => true,
next_date => to_date('01-01-4000', 'dd-mm-yyyy'));
commit;
end;
如果数据库是安装在你机器上的
那么你可以暂时把MYSQL关闭
然后进入安装目录
找到data文件夹
这里面就是放置数据库文件的。。你会看到data里面每一个文件夹都对应你一个数据库名称
把他们删除就好了
就彻底没了
不过可别把mysql这个文件夹删了
还有别的文件
比如err别乱删哦。
如果这个你不会
或者说文件在使用删除不了
那么你就用mysql的可视化工具
比如mysql-front
51
进去删除
效果都是一样。
在生产环境运行Airflow一段时间后,由于定时Job会在DagRun,TaskInstance等表插入大量的数据,会逐渐拖慢Airflow系统的内部SQL查询,进一步会影响前端管理页面的响应速度,所以需要定时清理不需要的 历史 数据,来保证前端管理页面的响应速度。
根据Airflow版本的不同,分为110(V1)版本和20之后(V2)的版本两种,代码有细微差异。
V2
V1
使用方法:
1 将上面的代码复制到一个新py文件airflow_db_cleanup_dagpy,保存在DAG目录下。
2 可以通过在Airflow变量里增加一个变量max_metadb_storage_days来配置元数据保留天数,如果不配置这个变量,默认是90天。
3 可以修改 schedule_interval变量来设置DAG执行时间,目前是每天执行一次,在UTC时间的8点半,北京时间下午4点半。
注意事项:
1 请根据你Airflow实际上线时间来判断,将要被删除的数据量的大小,如果数据量很大,会导致Job卡住或者响应变慢,建议在调度的低峰时间或者分批删除数据。分批删除的方法是,通过调整变量max_metadb_storage_days来控制删除的数据的时间范围,比如先删除1年前的,再删除6个月-1年之间的,最后删除6个月到3个月的数据。
2 如果有每季度执行一次的任务,需要将max_metadb_storage_days调大至120天,否则可能会导致最近一次执行的DagRun被清理后,Dag又重新被触发一次。原因是Scheduler会持续检查每个DAG是否满足执行条件,如果找不到DagRun记录,会认为该Dag还没有被执行过,从而又执行一次。
这个根据数据量来的:
若数据不大:
用crontab 写个脚本语言,先获取当前时间 比如php 为$day=inter(date("d",time()));//获取当前日期
if($day=1){//判断是否是月初
do{//数据大分页删除;根据时间取
$return = delData(time<strtotime(“-3 month”));
}while($total >(page-1)每页数量);
}
2定时存储过程
CREATE EVENT `e_call` ON SCHEDULE EVERY 3 MONTH eENDS 'time' ON COMPLETION NOT PRESERVE ENABLE DO call p_chk();
用C#中的定时方法,设置定时,比如一周清理一次。
意思就是当前日期减去设计的清理间隔时间大于零,那么执行方法。
那么就在一周的时间内调用delete 方法。不知你是的net ,winform还是控制台应用程序?前二者方法差不多,控制台的话跟一楼的方法差不多。
以上就是关于如何准确的清理数据库全部的内容,包括:如何准确的清理数据库、sql数据库满了怎么清理、oracle中通过存储过程对表数据进行定时清理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)