MySQL分库备份与分表备份

1、分库备份

要求:将mysql数据库中的用户数据库备份,备份的数据库文件以时间命名

脚本内容如下:

[root@db01 scripts]# vim backup_database.sh

#!/bin/bash

mysql_user=root

mysql_pass=123456

mkdir -p /backup

for n in `mysql -u$mysql_user -p$mysql_pass -e 'show databases;' 2>/dev/null|grep -Ev '_schema|mysql'|sed '1d'`;

do

    mysqldump -u$mysql_user -p$mysql_pass -B $n 2>/dev/null>/backup/${n}_`date +%Y_%m_%d`.sql

done

 

执行脚本进行测试:

[root@db01 scripts]# sh -x backup_database.sh

+ mysql_user=root

+ mysql_pass=123456

+ mkdir -p /backup

++ mysql -uroot -p123456 -e 'show databases;'

++ grep -Ev '_schema|mysql'

++ sed 1d

+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 -B oldboy

+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 -B oldgirl

+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 -B test

[root@db01 scripts]#

 

检查备份情况:

[root@db01 scripts]# tree /backup/

/backup/

├── oldboy_2018_07_04.sql

├── oldgirl_2018_07_04.sql

└── test_2018_07_04.sql

 

0 directories, 3 files

[root@db01 scripts]#

 

2、分库分表备份

要求:备份每个数据库的表,同一个库中的表,放在对应数据库名字命名的目录下

脚本内容如下:

[root@db01 scripts]# vim backup_tables.sh

#!/bin/bash

mysql_user=root

mysql_pass=123456

mkdir -p /backup

for n in `mysql -u$mysql_user -p$mysql_pass -e 'show databases;' 2>/dev/null|grep -Ev '_schema|mysql'|sed '1d'`;

do

    mkdir -p /backup/$n

    for m in `mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '1d'`;

    do

        mysqldump -u$mysql_user -p$mysql_pass $n $m 2>/dev/null>/backup/${n}/${m}_`date +%Y_%m_%d`.sql

    done

done

 

执行脚本进行测试:

[root@db01 scripts]# sh -x backup_tables.sh

+ mysql_user=root

+ mysql_pass=123456

+ mkdir -p /backup

++ mysql -uroot -p123456 -e 'show databases;'

++ grep -Ev '_schema|mysql'

++ sed 1d

+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'

+ mkdir -p /backup/oldboy

++ sed 1d

++ mysql -uroot -p123456 oldboy -e 'show tables;'

+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 oldboy students

+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 oldboy test

+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 oldboy test2

+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'

+ mkdir -p /backup/oldgirl

++ mysql -uroot -p123456 oldgirl -e 'show tables;'

++ sed 1d

+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 oldgirl test3

+ for n in '`mysql -u$mysql_user -p$mysql_pass -e '\''show databases;'\'' 2>/dev/null|grep -Ev '\''_schema|mysql'\''|sed '\''1d'\''`'

+ mkdir -p /backup/test

++ mysql -uroot -p123456 test -e 'show tables;'

++ sed 1d

+ for m in '`mysql -u$mysql_user -p$mysql_pass $n -e "show tables;" 2>/dev/null|sed '\''1d'\''`'

+ mysqldump -uroot -p123456 test test4

[root@db01 scripts]#

 

检查备份情况:

[root@db01 scripts]# tree /backup/

/backup/

├── oldboy

│   ├── students_2018_07_04.sql

│   ├── test_2018_07_04.sql

│   └── test2_2018_07_04.sql

├── oldgirl

│   └── test3_2018_07_04.sql

└── test

└── test4_2018_07_04.sql

 

3 directories, 5 files

[root@db01 scripts]#

MySQL分库备份与分表备份的更多相关文章

  1. Mysql数据库分库备份,分表备份

    分库备份 #!/bin/sh DBPATH=/server/backup MYUSER=root MYPASS=oldboy123 SOCKET=/data/3306/mysql.sock MYCMD ...

  2. 分享一个MySQL分库分表备份脚本(原)

    分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...

  3. MySQL分库分表备份脚本

    MySQL分库备份脚本 #脚本详细内容 [root@db02 scripts]# cat /server/scripts/Store_backup.sh #!/bin/sh MYUSER=root M ...

  4. (转)企业Shell实战-MySQL分库分表备份脚本

    本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.htm ...

  5. 实现对MySQL数据库进行分库/分表备份(shell脚本)

    工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...

  6. 支持MySql的数据库自动分表工具DBShardTools发布

    支持MySql的数据库自动分表工具DBShardTools发布 前段时间参与了公司的一个项目,这个项目的特点是数据量.访问量都比较大,考虑使用数据库水平分表策略,Google了大半天,竟然没有找到分表 ...

  7. mysql数据库为什么要分表和分区?

    一般下载的源码都带了MySQL数据库的,做个真正意义上的网站没数据库肯定不行. 数据库主要存放用户信息(注册用户名密码,分组,等级等),配置信息(管理权限配置,模板配置等),内容链接(html ,图片 ...

  8. 由mysql分区想到的分表分库的方案

    在分区分库分表前一定要了解分区分库分表的动机. 对实时性要求比较高的场景,使用数据库的分区分表分库. 对实时性要求不高的场景,可以考虑使用索引库(es/solr)或者大数据hadoop平台来解决(如数 ...

  9. mysql大数据解决方案--分表分库(0)

    引言 对于一个大型的互联网应用,海量数据的存储和访问成为了系统设计的瓶颈问题,对于系统的稳定性和扩展性造成了极大的问题.通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式. •水 ...

随机推荐

  1. Elements in iteration expect to have 'v-bind:key' directives.' 提示错误如何解决?

    在学习vue过程中遇到Elements in iteration expect to have 'v-bind:key' directives.' 这个错误,查阅资料得知Vue 2.2.0+的版本里, ...

  2. gulp-babel,es6转es5

    npm install --save-dev gulp-babel npm install --save-dev babel-preset-es2015 var gulp = require(&quo ...

  3. 从(0)新开始vue2.0【安装】

    安装node:测试安装结果:node -v 安装cnpm(如果你可以***,可以不安装) 安装webpack:npm install webpack -g npm install vue-cli -g ...

  4. hdu多校 2

    ... 后面四个小时都在挂机很难受. 1010 裸的逆序对 //#pragma comment(linker, "/stack:200000000") //#pragma GCC ...

  5. linux的bash和shell关系

    shell通俗理解:把用户输入的命令翻译给操作系统. shell 是一个交互性命令解释器.shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell.shell让你在命令行键入命令,经过 ...

  6. BZOJ 4883 [Lydsy2017年5月月赛]棋盘上的守卫(最小生成环套树森林)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4883 [题目大意] 在一个n*m的棋盘上要放置若干个守卫. 对于n行来说,每行必须恰好 ...

  7. 【构造】【分类讨论】Codeforces Round #435 (Div. 2) C. Mahmoud and Ehab and the xor

    题意:给你n,x,均不超过10^5,让你构造一个无重复元素的n个元素的非负整数集合(每个元素不超过10^6),使得它们的Xor和恰好为x. 如果x不为0: 随便在x里面找一个非零位,然后固定该位为0, ...

  8. 【Splay】Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals) B. Cards Sorting

    Splay要支持找最左侧的最小值所在的位置.类似线段树一样处理一下,如果左子树最小值等于全局最小值,就查左子树:否则如果当前节点等于全局最小值,就查当前节点:否则查右子树. 为了统计答案,当然还得维护 ...

  9. 【Trie模板】HDU1251-统计难题

    [题意] n统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). [思路] 裸题,不过G++好像会超内存,C++就不会. #include<iostream> #include& ...

  10. [AGC019E]Shuffle and Swap

    [AGC019E]Shuffle and Swap 题目大意: 给出两个长度为\(n(n\le10000)\)的\(01\)串\(A_{1\sim n}\)和\(B_{1\sim n}\).两个串均有 ...