在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

pt

158次阅读
没有评论

共计 2746 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章给大家分享的是有关 pt-archiver 如何实现 MySQL 定期分表的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

pt-archiver 使用的场景

1、清理线上过期数据  

2、清理过期数据,并把数据归档到本地归档表中,或者远端归档服务器  

3、两张表之间的数据不完全相同,希望合并。此时加上–ignore 或–replace 选项,可以轻松实现  

4、导出线上数据,到线下数据作处理  

导出数据的基本原理: 

  通过“过滤条件”,得在此范围内的 PK 的最大值和最小值  ,  然后通过 PK 索引,  过滤条件  + pk 此范围的最大值  + pk(此范围内 pk 的最小值 + 每次增长 limit 指定的数) + limit. 这样直到处理完成。 

 关于分表, 定期建表有一个 pt-archiver 可以很好的实现. 
 db_source.py_out_export 和 db_source.py_out_export_result 做定期清理, 每周三 0:00 归档到历史库 db_hist.py_out_export_his${TABLE_DATE} 和 db_hist.py_out_export_result_his${TABLE_DATE} 表. 
  具体实现可参考   如下
/pydata/software/percona-toolkit-3.0.2/pt-archiver.sh 
/pydata/software/percona-toolkit-3.0.2/pt-archiver.def 
 
[root@py-test percona-toolkit-3.0.2]# more pt-archiver.sh 
#-------------------------------------------------------------------------------- 
#脚本名称: pt-archiver.sh 
#脚本参数: pt-archiver.def 文件  
#脚本功能:  归档大表到历史表  
#编   写   人: zj 
#编写日期: 2017 年 6 月 19 日 14:20 
#更   新   人: 
#更新日期: 
#-------------------------------------------------------------------------------- 
 
EXEC_DATE=`date +%Y-%m-%d` 
TABLE_DATE=`date +%Y%m%d` 
#EXEC_DATE= 2017-05-13  
#TABLE_DATE= 20170513  
FILE_DIR=`dirname $0` 
FILE_NAME=`basename $0 .sh` 
USER= root  
PASSWORD= dbpasswd  
 
sed  /^#.*\|^$/d  ${FILE_DIR}/${FILE_NAME}.def  ${FILE_DIR}/${FILE_NAME}.tmp 
for i in `cat ${FILE_DIR}/${FILE_NAME}.tmp` 
do 
DEF_DATA_TMP= `echo ${i} |sed s/\ //g`  # 去空格, 得到一行数据  
#得到数据文件和源表名值  
SOURCE_DB=`echo ${i} | cut -d  ,  -f1 | tr  [A-Z]   [a-z] ` 
TABLE_NAME=`echo ${i} | cut -d  ,  -f2 | tr  [A-Z]   [a-z] ` 
FLITER_FIELD=`echo ${i} | cut -d  ,  -f3 | tr  [A-Z]   [a-z] ` 
DEST_DB=`echo ${i} | cut -d  ,  -f4 | tr  [A-Z]   [a-z] ` 
 
HISTABLE_NAME= ${TABLE_NAME}_his${TABLE_DATE}  
WHERE_SQL=`echo  exec_time \ ${EXEC_DATE}  00:00:00\ ` 
mysql -u${USER} -p${PASSWORD} -e  create table if not exists ${DEST_DB}.${HISTABLE_NAME} like ${SOURCE_DB}.${TABLE_NAME};  
if [ $? -ne 0 ] ;then 
echo  ERROR:create table ${HISTABLE_NAME} error!   ${FILE_DIR}/${FILE_NAME}.log 
exit 1 
fi 
 
echo   pt-archiver --source h=127.0.0.1,P=3306,u=${USER},p=${PASSWORD},D=${SOURCE_DB},t=${TABLE_NAME} --dest h=127.0.0.1,P=3306,u=${USER},p=${PASSWORD},D=${DEST_DB},t=${HISTABLE_NAME} --no-check-charset --where 
  ${FLITER_FIELD} \ ${EXEC_DATE}  00:00:00\  --progress 5000 --limit=1000 --txn-size=1000 --statistics pt-archiver-${TABLE_NAME}.sh 
sh pt-archiver-${TABLE_NAME}.sh  pt-archiver-${TABLE_NAME}.log 
done 
exit 0 
 
[root@py-test percona-toolkit-3.0.2]# more pt-archiver.def 
## 源数据库名, 源表名, 筛选字段, 目标库名  
db_source,py_out_export,export_time,db_hist 
db_source,py_out_export_result,exec_time,db_hist 
## 创建每周三定时执行
[root@py-test percona-toolkit-3.0.2]# crontab -e 
20 2 * * 3 /pydata/software/percona-toolkit-3.0.2/pt-archiver.sh  /pydata/software/percona-toolkit-3.0.2/pt-archiver.log

感谢各位的阅读!关于“pt-archiver 如何实现 MySQL 定期分表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计2746字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 69国产成人精品午夜福中文 | 一级做a爱片久久蜜桃 | 视频在线亚洲 | 经典国产乱子伦精品视频 | 色综合亚洲七七久久桃花影院 | 成人久久久精品乱码一区二区三区 | 久久一| 午夜精品一区二区三区在线视 | 51国产黑色丝袜高跟鞋 | 国产69精品久久久久999三级 | 大陆熟妇丰满多毛xxxx | 成人网18免费下 | 亚洲国产综合无码一区 | 亚洲精品一区二区三区婷婷 | 4444亚洲人成无码网在线观看 | 视频福利一区 | 无码专区永久免费av网站 | 色噜噜狠狠一区二区三区果冻 | 香蕉草草久在视频在线播放 | 激情欧美一区二区三区中文字幕 | 韩国一区二区视频 | 欧美性生活在线视频 | 欧美丰满大乳高跟鞋 | 无人区理论片手机看片 | 亚洲一区免费 | 夜夜爽66| 国产二级一片内射视频播放 | 免费一级毛片在线播放不收费 | 99ri国产在线观看 | 成人免费福利视频 | 久久婷婷五月综合色99啪ak | 搞黄网站免费看 | 日韩欧美第一区二区三区 | 国产高清视频一区三区 | 亚洲精品天堂在线观看 | 91亚洲区国产区精品区 | 又粗又粗又黄又硬又深色的 | 久久精品国产亚洲av蜜臀 | 欧美一区二区三区在线视频 | 久久精品国产精品亚洲婷婷 | 国产毛片a |