MySQL分库分表备份脚本-阿里云开发者社区

开发者社区> 技术小胖子> 正文

MySQL分库分表备份脚本

简介:
+关注继续查看

vim /data/mysqlback.sh

#! /bin/bash

BAKPATH=/data/mysql-back

MYUSER=root

MYPASS="123456"

SOCKET=/var/lib/mysql/mysql.sock

MYCMD="mysql -u$MYUSER -p$MYPASS -S $SOCKET"

MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S $SOCKET -x -F -R"

DBLIST=`$MYCMD -e "show databases;" |sed "1d" |egrep -v "_schema|test"`


[ ! -d $BAKPATH ] && mkdir -p $BAKPATH

for dbname in $DBLIST

do

    TLIST=`$MYCMD -e "show tables from $dbname;" |sed "1d"`

    for tname in $TLIST

    do

        mkdir -p $BAKPATH/$dbname

        $MYDUMP $dbname $tname |gzip > $BAKPATH/$dbname/${tname}_$(date +%F).sql.gz

    done

done


执行脚本后可以看到对数据库进行了分库分表的操作

wKiom1h14IGDU4JwAAD65ty_Z2I386.png




执行脚本提示警告:

-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.


原因:mysqldump默认是不备份事件表


解决方法1:

mysqldump命令后面添加--events参数

MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S $SOCKET -x -F -R --events"


解决方法2:

mysqldump命令后面添加--events --ignore-table=mysql.events 参数

MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S $SOCKET -x -F -R --events --ignore-table=mysql.events"



报错参考解决方案:

http://www.linuxbrigade.com/warning-skipping-data-table-mysql-event/

http://bugs.mysql.com/bug.php?id=68376






      本文转自M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1891098,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL 脚本优化工具tuning-primer.sh使用教程说明
今天推荐给大家一个不错的脚本tuning-primer.sh,可以帮助我们去查看一下msyql的运行情况,产生报告和给出一些建议,我们可以根据这些建议,结合mysql服务器的实际情况,对mysql进行优化。
803 0
Mysql数据库表分区存储到指定磁盘路径
0. 前提: mysql5.6.6以上的版本以上的版本才支持单表指定目录,且目录权限是mysql:mysql。 在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式、表文件个数也会有所差异。 mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd”,archive用“.arc ”,csv用“.csv”等。
12 0
基于Shard-Jdbc分库分表,数据库扩容方案
本文源码:GitHub·点这里 || GitEE·点这里 一、数据库扩容 1、业务场景 互联网项目中有很多“数据量大,业务复杂度高,需要分库分表”的业务场景。 这样分层的架构 (1)上层是业务层biz,实现业务逻辑封装; (2)中间是服务层service,封装数据访问; (3)下层是数据层db...
1646 0
Sharding-Jdbc分库分表的导读
前言    Sharding-JDBC是一个开源的分布式数据库中间件,它无需额外部署和依赖,完全兼容JDBC和各种ORM框架。Sharding-JDBC作为面向开发的微服务云原生基础类库,完整的实现了分库分表、读写分离和分布式主键功能,并初步实现了柔性事务。
890 0
13262
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载