MySQL脚本(percona-toolkit)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 全量备份 点击(此处)折叠或打开 #!/bin/bash #Edit by Wang Wen'an @ 2015-06-15 USER=...

全量备份

点击(此处)折叠或打开

  1. #!/bin/bash
  2. #Edit by Wang Wen'an @ 2015-06-15
  3. USER=user
  4. PWD=password
  5. BASE_DIR=/home/backup/
  6. LOG=backup_history.log
  7. innobackupex --defaults-file=/etc/my.cnf --user=$USER --password=$PWD --parallel=8 --compress --compress-threads=8 --no-timestamp --use-memory=2G $BASE_DIR$(date -d today +%Y-%m-%d)
  8. if [ $? -eq 0 ]; then
  9.     echo "full backup finished! time:$(date -d today +%Y-%m-%d\ %H:%M:%S)" >> $BASE_DIR$LOG
  10.     find $BASE_DIR -maxdepth 1 -name '20*-*-*' -type d -mtime +1 | xargs echo "these backups are going to delete: ">> $BASE_DIR$LOG
  11.     find $BASE_DIR -maxdepth 1 -name '20*-*-*' -type d -mtime +1 | xargs rm -rf {} \;
  12.     if [ $? -eq 0 ]; then
  13.         echo "delete the expired full backups completed!(the list is shown above).......time:$(date -d today +%Y-%m-%d\ %H:%M:%S) " >> $BASE_DIR$LOG
  14.     else
  15.         echo "delete the expired full backups failed!.....time:$(date -d today +%Y-%m-%d\ %H:%M:%S) " >> $BASE_DIR$LOG
  16.     fi
  17. else
  18.     echo "full backup failed! time:$(date -d today +%Y-%m-%d\ %H:%M:%S)" >> $BASE_DIR$LOG
  19. fi


增量备份

点击(此处)折叠或打开

  1. #!/bin/bash
  2. #Edit by Wang Wen'an @ 2015-06-15
  3. USER=user
  4. PWD=password
  5. BASE_DIR=/home/backup/
  6. INCR_DIR=/home/backup/incr-$(date -d today +%Y-%m-%d)/
  7. LOG=backup_history.log
  8. if [ ! -d $INCR_DIR ]; then
  9.     mkdir $INCR_DIR && echo "make incremental dir complete : $INCR_DIR" >> $BASE_DIR$LOG
  10. else
  11.     echo "make incremental dir is exist : $INCR_DIR , skip the process....." >> $BASE_DIR$LOG
  12. fi
  13. innobackupex --defaults-file=/etc/my.cnf --user=$USER --password=$PWD --parallel=8 --compress --compress-threads=8 --use-memory=2G --incremental $INCR_DIR --incremental-basedir=$BASE_DIR$(date -d today +%Y-%m-%d)
  14. if [ $? -eq 0 ]; then
  15.     echo "incremental backup finished! time:$(date -d today +%Y-%m-%d\ %H:%M:%S)" >> $BASE_DIR$LOG
  16.     find $BASE_DIR -maxdepth 1 -name 'incr-20*-*-*' -type d -mtime +1 | xargs echo "these backups are going to delete: ">> $BASE_DIR$LOG
  17.     find $BASE_DIR -maxdepth 1 -name 'incr-20*-*-*' -type d -mtime +1 | xargs rm -rf {} \;
  18.     if [ $? -eq 0 ]; then
  19.         echo "delete the expired incrmental backups completed!(the list is shown above).......time:$(date -d today +%Y-%m-%d\ %H:%M:%S) " >> $BASE_DIR$LOG
  20.     else
  21.         echo "delete the expired incrmental backups failed!.......time:$(date -d today +%Y-%m-%d\ %H:%M:%S) " >> $BASE_DIR$LOG
  22.     fi
  23. else
  24.     echo "incremantal backup failed! time:$(date -d today +%Y-%m-%d\ %H:%M:%S)" >> $BASE_DIR$LOG
  25. fi


Linux定时任务设置(参考)

点击(此处)折叠或打开

  1. 1 0 * * * source /home/backup/script/full_backup.sh
  2. */30 * * * * source /home/backup/script/incr_backup.sh

每天的备份用年-月-日来保存,增量备份带前缀incr
懒人自用~

自动汇总每天的慢查询日志

点击(此处)折叠或打开

  1. #!/bin/bash
  2. #Edit by Wang Wen'an @ 2015-09-06
  3. PATH_LOG=/var/log/
  4. LOG=mysql-slow-query.log
  5. PATH_SLOW=/home/backup/slow_log/
  6. SLOW_LOG=mysql-slow.log.$(date -d yesterday +%Y%m%d)
  7. pt-query-digest $PATH_LOG$LOG > $PATH_SLOW$SLOW_LOG
  8. if [ $? -eq 0 ]; then
  9.     echo "report of slow query is generated, time:$(date -d today +%Y-%m-%d\ %H:%M:%S)"
  10.     cat /dev/null > $PATH_LOG$LOG
  11.     if [ $? -eq 0 ]; then
  12.         echo "log of slow query is cleaned, time:$(date -d today +%Y-%m-%d\ %H:%M:%S)"
  13.     fi
  14. fi

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL 监控 关系型数据库
MySQL优化: CPU高 处理脚本 pt-kill脚本
MySQL优化: CPU高 处理脚本 pt-kill脚本
|
6月前
|
关系型数据库 MySQL 数据库
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
|
2月前
|
SQL 关系型数据库 MySQL
|
29天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
31 0
|
6月前
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之用脚本的方式同步数据到MySQL,怎么指定列作为目标表为唯一行
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
66 8
|
4月前
|
存储 关系型数据库 MySQL
实战!MySQL主从复制一键搭建脚本分享
实战!MySQL主从复制一键搭建脚本分享
75 2
|
4月前
|
关系型数据库 MySQL Shell
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
94 2
|
4月前
|
关系型数据库 MySQL 网络安全
全网首例!MySQL8 MGR多主一键搭建脚本分享
全网首例!MySQL8 MGR多主一键搭建脚本分享
68 1
|
4月前
|
关系型数据库 MySQL Shell
MySQL回滚脚本: 误操作delete binlog回滚shell脚本
MySQL回滚脚本: 误操作delete binlog回滚shell脚本