分享一个MySQL分库分表备份脚本(原)
分享一个MySQL分库备份脚本(原)
开发思路:
1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上时间方便整理
2.取数据库:抓取数据库名称,我用的awk和grep配合取数据库的名称(如果想按照表备份可以再细化一下)注意要用mysql -e选项 这样才能做成脚本
3.系统环境变量:因为用到了函数,所以非系统内置的命令 最好在脚本里面用 . /etc/profile 把系统当前的环境变量传过来
4.实现方法:用mysqldump 命令+for 循环实现分库备份
5.备份检查:如果备份出来的文件存在大小不为0 则认定为成功,返回success ,否则failed,如果放在定时任务执行 建议输出到日志文件里面,方便日后查看
6.注意定义变量的时候 单引号‘’和双引号“”的区别,否则会有错误
#!/bin/bash
#define var
user="root"
pass=""
path="/mysql/backup"
cmd="mysql -u${user} -p${pass}"
dump="mysqldump -u${user} -p${pass} -B --events -x --master-data=2"
#system function
. /etc/init.d/functions
. /etc/profile
#judge dir
function jdir(){
if [ ! -e $path ];then
mkdir $path -p
fi
}
#dump database
function bk(){
for dbname in `$cmd -e 'show databases;'|awk 'NR>1{print $0}'|grep -v "performance_schema"`
do
$dump $dbname|gzip >${path}/${dbname}_$(date +%F).sql.gz
sleep
if [ -s ${path}/${dbname}_$(date +%F).sql.gz ];then
action "dump $dbname success!" /bin/true
else
action "dump $dbname failed" /bin/false
fi
done
}
function main(){
jdir
bk
}
main
想和大家重点分享的是开发的思路,技术很基础。
经过测试可以完成,如果有错误,欢迎指正。
ps 附上分表备份的脚本供参考
#!/bin/bash
#define var
user="root"
pass=""
path="/mysql/backup"
cmd="mysql -u${user} -p${pass}"
dump="mysqldump -u${user} -p${pass} --events -x --master-data=2"
#system function
. /etc/init.d/functions
. /etc/profile
#judge dir
function jdir(){
if [ ! -e $path ];then
mkdir $path -p
fi
}
#dump database
function bk(){
for dbname in `$cmd -e 'show databases;'|awk 'NR>1{print $0}'|grep -v "performance_schema"`
do
for tname in `$cmd -e "show tables from ${dbname}"|sed "1d"`
do
$dump $dbname $tname|gzip >${path}/${dbname}_${tname}_$(date +%F).sql.gz if [ -e ${path}/${dbname}_${tname}_$(date +%F).sql.gz ];then
echo "${dbname}_${tname}" >>$path/mysql_table.log fi
done
done
}
function main(){
jdir
bk
}
main
分享一个MySQL分库分表备份脚本(原)的更多相关文章
- 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 分库分表备份脚本
#!/bin/bash USER=root #用户 PASSWORD=123456 #密码 MYSQL_PATH=127.0.0.1 #地址 MYSQL_BIN=/bin/mysql MYSQL_DU ...
- 实现对MySQL数据库进行分库/分表备份(shell脚本)
工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...
- mysql分库分表(一)
mysql分库分表 参考: https://blog.csdn.net/xlgen157387/article/details/53976153 https://blog.csdn.net/cleve ...
- MYSQL分库分表和不停机更改表结构
在MYSQL分库分表中我们一般是基于数据量比较大的时间对mysql数据库一种优化的做法,下面我简单的介绍一下mysql分表与分库的简单做法. .分库分表 很明显,一个主表(也就是很重要的表,例如用户表 ...
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
[Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...
- 你们要的MyCat实现MySQL分库分表来了
❝ 借助MyCat来实现MySQL的分库分表落地,没有实现过的,或者没了解过的可以看看 ❞ 前言 在之前写过一篇关于mysql分库分表的文章,那篇文章只是给大家提供了一个思路,但是回复下面有很多说是细 ...
- Mysql分库分表方案
Mysql分库分表方案 1.为什么要分表: 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间. m ...
随机推荐
- webpack之傻瓜式教程
接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpack教程满天飞,但是却很难找到一个能让新人快 ...
- 【原】AFNetworking源码阅读(五)
[原]AFNetworking源码阅读(五) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇中提及到了Multipart Request的构建方法- [AFHTTP ...
- NET Core-TagHelper实现分页标签
这里将要和大家分享的是学习总结使用TagHelper实现分页标签,之前分享过一篇使用HtmlHelper扩展了一个分页写法地址可以点击这里http://www.cnblogs.com/wangrudo ...
- JavaScript基础知识总结(四)
JavaScript语法 八.函数 函数就是完成某个功能的一组语句,函数由关键字function + 函数名 + 加一组参数定义: 函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可 ...
- C#各种同步方法 lock, Monitor,Mutex, Semaphore, Interlocked, ReaderWriterLock,AutoResetEvent, ManualResetEvent
看下组织结构: System.Object System.MarshalByRefObject System.Threading.WaitHandle System.Threading.Mutex S ...
- Html 制作相册
本文主要讲述采用Html5+jQuery+CSS 制作相册的小小记录. 主要功能点: Html5进行布局 调用jQuery(借用官网的一句话:The Write Less, Do More)极大的简化 ...
- Dynamics CRM 之ADFS 使用 WID 的联合服务器场
使用 WID 的联合服务器场 默认拓扑 Active Directory 联合身份验证服务 (AD FS) 是联合服务器场,使用 Windows 内部数据库 (WID). 在这种拓扑, AD FS 使 ...
- 对Maven、gradle、svn、spring 3.0 fragment、git的想法
1.Maven Maven可以构建项目,采用pom方式配置主项目和其他需要引用的项目.同时可结合spring3.0的新特性web fragment. 从现实出发,特别是对于管理不到位,程序员整体素质 ...
- 项目管理_FindBugs的使用
本章将讲述如何在Myeclipse下,使用FindBugs,静态分析工具,无需开发人员费劲就能找出代码中已有的缺陷. 一:Myeclipse下如何安装FindBugs插件 1:FindBugs插件下载 ...
- ASP.NET MVC 5 系列 学习笔记 目录 (持续更新...)
前言: 记得当初培训的时候,学习的还是ASP.NET,现在回想一下,图片水印.统计人数.过滤器....HttpHandler是多么的经典! 不过后来接触到了MVC,便立马爱上了它.Model-View ...