前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >xtrabackup备份脚本(上)

xtrabackup备份脚本(上)

原创
作者头像
陈不成i
修改2021-06-10 11:21:50
修改2021-06-10 11:21:50
4590
举报
文章被收录于专栏:ops技术分享ops技术分享

一.备份脚本

环境需求

编辑/etc/my.cnf文件添加在[mysqld]版块下添加如下变量,添加后重启服务。

  1. #开启,并且可以将mysql-bin改为其它的日志名
  2. log-bin=mysql-bin
  3. #添加id号,如果做主从,就不能一样
  4. server-id=1
  5. #超过200M将生产新的文件,最大和默认值是1GB
  6. max_binlog_size=1G
  7. #此参数表示binlog使用最大内存的数,默认1M。
  8. max_binlog_cache_size=1M
  9. #此参数表示binlog日志保留的时间,默认单位是天。
  10. expire_logs_days=7

也可以用如下方式动态更改全局变量,连接mysql服务器后配置,不用重启服务器。 set GLOBAL expire_logs_days=7;

注意:设置之后并不会立即执行,需要如下条件 手动执行flush logs(注意,如果binlog文件过多会引发IO问题,并且flush 也不会同步到从库) 重新启动时(MySQL将会new一个新文件用于记录binlog)

全量脚本

xbak-all.sh,对变量和命令部分进行配置

  1. #!/bin/bash
  2. #全量备份,只备份一次
  3. #备份目录,目录不存在会自动创建
  4. backup_dir="/bak/mysql-xback"
  5. #检查
  6. [[ -d ${backup_dir} ]] || mkdir -p ${backup_dir}
  7. if [[ -d ${backup_dir}/all-backup ]];then
  8. echo "全备份已存在"
  9. exit 1
  10. fi
  11. #命令,要填写备份用的账号和密码
  12. innobackupex --defaults-file=/etc/my.cnf --user=back --password='123456' --no-timestamp ${backup_dir}/all-backup &> /tmp/mysql-backup.log
  13. tail -n 1 /tmp/mysql-backup.log | grep 'completed OK!'
  14. if [[ $? -eq 0 ]];then
  15. echo "all-backup" > /tmp/mysql-backup.txt
  16. else
  17. echo "备份失败"
  18. exit 1
  19. fi

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.备份脚本
    • 环境需求
    • 全量脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档