linux mysql 删除表脚本_linux shell脚本自动删除mysql表前3个月的数据
RDS有一個數(shù)據(jù)庫表tbl_online表,有6千萬數(shù)據(jù),需要清理,保留3個月。
步驟如下:創(chuàng)建月表
將需要刪除的數(shù)據(jù)寫入月表
刪除數(shù)據(jù)
優(yōu)化表
shell如下:
#!/bin/bash
base="rdsxx.mysql.rds.aliyuncs.com"
#前3個月的日期
months_ago=`date -d "-3 month" +"%Y-%m-%d"`
#前3個月的月份,去掉前面的0
months_ago_mon=`date -d "-3 month" +"%-m"`
#前3個月年份
years_ago_year=`date -d "-3 month" +"%-Y"`
#+++++++++++++++++++++++++++++++++++++
statime=`date +%Y-%m-%d" "%H:%M:%S`
echo "############################" >> /opt/tbl_online.log
#創(chuàng)建月表
/usr/local/mysql/bin/mysql -u root -h $base -e "use kd_shop;create table if not exists tbl_online_bak_"$years_ago_year"_$months_ago_mon like tbl_online;"
echo "$statime開始插入"$months_ago"數(shù)據(jù)" >> /opt/tbl_online.log
/usr/local/mysql/bin/mysql -u root -h $base -e ?"use kd_shop;insert into tbl_online_bak_"$years_ago_year"_$months_ago_mon select * from tbl_online where create_time >= '$months_ago 00:00:00' and create_time <= '$months_ago 23:59:59';"
statime=`date +%Y-%m-%d" "%H:%M:%S`
echo "$statime插入數(shù)據(jù)完成" >> /opt/tbl_online.log
#++++++++++++++++++++++++++++++++++++++
statime=`date +%Y-%m-%d" "%H:%M:%S`
echo "$statime開始刪除數(shù)據(jù)以及優(yōu)化表" >> /opt/tbl_online.log
/usr/local/mysql/bin/mysql -u root -h $base -e "use kd_shop;delete from tbl_online where create_time >= '$months_ago 00:00:00' and create_time <= '$months_ago 23:59:59';optimize table tbl_online;"
statime=`date +%Y-%m-%d" "%H:%M:%S`
echo "$statime刪除以及優(yōu)化表完成" >> /opt/tbl_online.log
最后任務計劃條用即可
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的linux mysql 删除表脚本_linux shell脚本自动删除mysql表前3个月的数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求英雄联盟大神评测 我匹配600场胜率百
- 下一篇: mysql oracle 表空间大小_最