MySQL分库备份与分表备份
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分库备份与分表备份的更多相关文章
- Mysql数据库分库备份,分表备份
分库备份 #!/bin/sh DBPATH=/server/backup MYUSER=root MYPASS=oldboy123 SOCKET=/data/3306/mysql.sock MYCMD ...
- 分享一个MySQL分库分表备份脚本(原)
分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...
- MySQL分库分表备份脚本
MySQL分库备份脚本 #脚本详细内容 [root@db02 scripts]# cat /server/scripts/Store_backup.sh #!/bin/sh MYUSER=root M ...
- (转)企业Shell实战-MySQL分库分表备份脚本
本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.htm ...
- 实现对MySQL数据库进行分库/分表备份(shell脚本)
工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...
- 支持MySql的数据库自动分表工具DBShardTools发布
支持MySql的数据库自动分表工具DBShardTools发布 前段时间参与了公司的一个项目,这个项目的特点是数据量.访问量都比较大,考虑使用数据库水平分表策略,Google了大半天,竟然没有找到分表 ...
- mysql数据库为什么要分表和分区?
一般下载的源码都带了MySQL数据库的,做个真正意义上的网站没数据库肯定不行. 数据库主要存放用户信息(注册用户名密码,分组,等级等),配置信息(管理权限配置,模板配置等),内容链接(html ,图片 ...
- 由mysql分区想到的分表分库的方案
在分区分库分表前一定要了解分区分库分表的动机. 对实时性要求比较高的场景,使用数据库的分区分表分库. 对实时性要求不高的场景,可以考虑使用索引库(es/solr)或者大数据hadoop平台来解决(如数 ...
- mysql大数据解决方案--分表分库(0)
引言 对于一个大型的互联网应用,海量数据的存储和访问成为了系统设计的瓶颈问题,对于系统的稳定性和扩展性造成了极大的问题.通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式. •水 ...
随机推荐
- 【JBPM4】任务form表单
主要是在任务节点处保存一个链接地址(表单),方便在执行到此时取值,访问. 好处是XML可随时修改,部署. JPDL <?xml version="1.0" encoding= ...
- 【JBPM4】完成任务
示例代码: ProcessEngine processEngine = Configuration.getProcessEngine(); TaskService taskService = proc ...
- 五十六 SMTP发送邮件
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...
- hihoCoder #1871 : Heshen's Account Book-字符串暴力模拟 自闭(getline()函数) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction B) 2018 ICPC 北京区域赛现场赛B
P2 : Heshen's Account Book Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Description H ...
- Struts2 简单的上传文件并且显示图片
代码结构: UploadAction.java package com.action; import java.io.File; import java.io.FileInputStream; imp ...
- 2017CCPC 杭州 J. Master of GCD【差分标记/线段树/GCD】
给你一个n个初始元素都为1的序列和m个询问q. 询问格式为:l r x(x为2or3) 最后求1~n所有数的GCD GCD:把每个数分别分解质因数,再把各数中的全部公有质因数提取出来连乘,所得的积就是 ...
- 洛谷P1940买蛋糕
题目传送门 题意:给定你一个数n,要求用最小个数的整数组成小于等于n的所有整数,并求出方案数. 很明显,擅长二进制的大犇们肯定一眼就看得出方案数是log2(n)+1,然而我并不擅长,但是推了一小会儿也 ...
- upm配置文件
组件配置说明 Ø 配置文件规范 Ø 组件分为公共组件和私有组件,分别在public段和private段,如下所示. <?xml version="1.0" encoding= ...
- 第3天:YAML语法
YAML是一种可读性很强的数据格式语言.正是由于YAML良好的可读性,其广泛引用于软件配置中. 语法规则 YAML文件中的第一行为"---",表示这是一个YAML文件: YAML中 ...
- 文本转化工具dos2unix
文本转化工具dos2unix 由于历史原因,各个平台使用的文本编码规范不同,导致了同一文本在不同平台中显示不同.例如,Windows和Linux的换行符号不同,会造成多行文本显示混乱.为了解决这个 ...