按月份切割MySQL表数据:
千万级别的数据量也可在毫秒内完成切割操作
注:数据无价请提前自行备份
#!/bin/bash
USERNAME=MySQL_user
PASSWORD=MySQL_pwd
DB_NAME=DBname
HOST=127.0.0.1
LAST_MONTH=`date -d "-1month" +%Y_%m`
# 定义函数执行登陆数据库
function mysql_cmd()
{
CMD=$1
CMD=${CMD:-"quit;"}
/usr/bin/mysql -u${USERNAME} -p${PASSWORD} -h ${HOST} -e "${CMD}"
}
# 将 数据表 表按月切割
$(mysql_cmd "use $DB_NAME;create table new_tablename_tmp like tablename;rename table tablename to tablename_old_${LAST_MONTH}, new_tablename_tmp to tablename;")
##################################################
sleep 20
# 将从新命名的old表数据dump到s3存储;
# 可以将备份表dump到指定位置压缩存储保存