mysql数据库如何实现定期删除数据库一些东西

mysql数据库如何实现定期删除数据库一些东西,第1张

MySQL 51以后版本中有 Event ,这是类似Oracle中的job 可以通过创建Event,然后在里面调用删除过期记录的存储过程即可实现 定时每天备份mysql并定时删除上月记录(脚本) ouwsh | September 3, 2009 10:41 | Linux/Unix相关 | 阅读(1536) | 评论(0) shell脚本:

备份的脚本比较简单:

#!/bin/bash

# 定义年 月 日

year=`date +%Y`

month=`date +%m`

day=`date +%d`

# 定义备份的目录

BACKDIR=/bak_1/mysql/$year/$month/$day

# MySQL的root密码

ROOTPASS=123456

# 建立目录

mkdir -p $BACKDIR

# 获取数据库列表

DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

# 备份

for dbname in $DBLIST

do

mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy

done

复制代码上面的脚本将数据库按"年/月/日"目录结构备份,将脚本存为backsh添加到cron里每天凌晨3点执行

crontab -e

00 03 root /root/backsh

下面的是每月3号删除上个月的备份,存为del_baksh,每月3号3点3分执行

03 03 03 root /root/del_baksh

注意脚本上传后,要chmod一下权限,比如

chmod 755 /root/backsh

#!/bin/bash

# 定义年 月 日

year=`date +%Y`

month=`date +%m`

#day=`date +%d`

# 取上一个月

month=`expr $month - 1`

# 如果是1月,则上一月为12,并且年也减1

if [ $month -eq 0 ]; then

month=12

day=31

year=`expr $year - 1`

fi

# 因为备份时小于10月的月份有前导零,所以这里判断如果小于10月,则加前导零

if [ $month -lt 10 ]; then

pre=0

fi

#获取要删除的目录名

BACKDIR=/bak1/mysql/$year/$pre$month

#删除了

rm -rf $BACKDIR

重新启动crond

/etc/rcd/initd/crond restart

表名有没有什么共性?比如是不是都包含几个字母?另外你说的是系统表吗?好象系统表是不允许直接删除的。

给你个思路,就是从sysobjects表中,查找到那些表,然后用游标删除

假设那些表都是以test开头的表

用以下脚本来删除(注意是供你参考的,直接执行肯定会出问题)

declare @sqlstr varchar(3000)--要执行的动态语句

declare @tablename varchar(200) --表名

declare cur_table cursor for

select name

from sysobjects

where name like 'test%' and type in('u') --type=u的是用户表

open cur_table

fetch next from cur_table

into @tablename

while @@fetch_status=0

begin

set @sqlstr='drop table '+@tablename

exec (@sqlstr) --执行语句删除表

fetch next from cur_table

into @tablename

end

close cur_table

deallocate cur_table

以上就是关于mysql数据库如何实现定期删除数据库一些东西全部的内容,包括:mysql数据库如何实现定期删除数据库一些东西、我的sql2000某个数据库由于执行错了脚本而增加了好多类型是系统的表如何删除呢、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10180610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存