mysql数据库使用脚本实现分库备份过程
一条命令解决分库分表备份:
[root@db01 data]# mysql -uroot -p123456 -e "show databases;"|egrep -v "Data|sche|mysql|inf"|sed -r 's#^(.*)#mysqldump -uroot -p123456 -B \1 >/data/db/\1.sql.gz#g'|bash
实现思路
1)编程思想
mysqldump db1>db1.sql
mysqldump db2>db2.sql
.............
2)显示要备份的数据库
[root@web03 ~]# mysql -uroot -p123456 -S /data//mysql.sock -e "show databases;"|grep -Evi "database|infor|perfor"
abcdocker
cnsyk
mysql
oldboy
syk_utf8
test
3)循环db,dump
实现脚本如下:
#!/bin/bash
#created by yangqiqi -- USERNAME=root #备份的用户名
PASSWORD= #备份的密码
HOST=localhost #备份主机
DATE=`date +%Y-%m-%d` #用来做备份文件名字的一部分
OLDDATE=`date +%Y-%m-%d -d '-10 days'` #本地保存天数 #指定命令所用的全路径
MYSQL=/application/mysql/bin/mysql
MYSQLDUMP=/application/mysql/bin/mysqldump
MYSQLADMIN=/application/mysql/bin/mysqladmin #创建备份的目录和文件
BACKDIR=/data/backup/db
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
[ -d ${BACKDIR}/${DATE} ] || mkdir ${BACKDIR}/${DATE}
[ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE} #保存10天 多余的删除最前边的
#开始备份 for循环想要备份的数据库
MYSQLDUMP_LIST=`mysql -uroot -p'' -S /data//mysql.sock -e "show databases"| grep -Evi "database|infor|perfor"` for DBNAME in ${MYSQLDUMP_LIST} ##使用for依次罗列需要备份的数据库
do
${MYSQLDUMP} -B -F --master-data= --single-transaction -u${USERNAME} -p${PASSWORD} -S /data//mysql.sock ${DBNAME} | gzip > ${BACKDIR}/${DATE}/${DBNAME}-backup-${DATE}.sql.gz
/bin/sleep
logger "${DBNAME} has been backup successful - $DATE"
done
脚本出处:https://www.cnblogs.com/lazyball/p/8662586.html
脚本注意点:
MYSQLDUMP_LIST=`mysql -uroot -p'123456' -e "show databases"| grep -Evi "database|infor|perfor"` 过滤掉不需要备份的数据库,这里需要注意,过滤完成
后拿到的库名是自己需要备份的库名,如果自建的库有的也叫infor开头或者perfor的可能会被过滤掉,按照个人情况调整。
每天的备份样式如下:
[root@web03 ~]# cd /data/backup/db/
[root@web03 db]# ll
总用量
drwxr-xr-x root root 7月 : --
[root@web03 db]# cd --/
[root@web03 --]# ll
总用量
-rw-r--r-- root root 7月 : abcdocker-backup--
-rw-r--r-- root root 7月 : cnsyk-backup---
-rw-r--r-- root root 7月 : mysql-backup---
-rw-r--r-- root root 7月 : oldboy-backup---
-rw-r--r-- root root 7月 : syk_utf8-backup--
-rw-r--r-- root root 7月 : test-backup---
logger解释
logger 是一个shell 命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。
日志的级别
日志的级别分为七级,从紧急程度由高到底:
emerg 系统已经不可用,级别为紧急 
alert 警报,需要立即处理和解决 
crit 既将发生,得需要预防。事件就要发生 
warnig 警告 
err 错误信息,普通的错误信息 
notice 提醒信息,很重要的信息 
info 通知信息,属于一般信息 
debug 这是调试类信息
上边的脚本备份完毕后 就可以在 看到每个数据库备份的信息 logger的作用
[root@web03 ~]# tail -f /var/log/messages
Jul :: web03 rpc.statd[]: Version 1.2. starting
Jul :: web03 sm-notify[]: Version 1.2. starting
Jul :: web03 root: abcdocker has been backup successful - --
Jul :: web03 root: cnsyk has been backup successful - --
Jul :: web03 root: abcdocker has been backup successful - --
Jul :: web03 root: cnsyk has been backup successful - --
Jul :: web03 root: mysql has been backup successful - --
Jul :: web03 root: oldboy has been backup successful - --
Jul :: web03 root: syk_utf8 has been backup successful - --
Jul :: web03 root: test has been backup successful - --
生成场景需求:
数据源服务器:
把公钥文件里的id_rsa.pub内容复制到 A服务器里的authorized_keys
文件中准备脚本文件 :
#!/bin/bash
usr/bin/rsync -avz --delete -e "ssh -p 4396" root@192.168.1.11:/data/backup/db /data/backup/db_192.168.1./
logger "Successful backup file transfer - $DATE"
mysql数据库使用脚本实现分库备份过程的更多相关文章
- mysql数据库备份脚本
		
mysql数据库备份脚本 mysql数据库分库备份脚本:[root@localhost tmp]# cat mysql.sh #!/bin/bash USER=root PASSWORD=joy4yo ...
 - Windows下MySQL数据库备份脚本(一)
		
说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...
 - Windows下MySQL数据库备份脚本(二)
		
说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...
 - Ubuntu Server下MySql数据库备份脚本代码
		
明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...
 - mysql数据库备份脚本一例
		
例子,mysql数据库备份脚本.vim mysql.sh #!/bin/bash DAY=`date +%Y-%m-%d` //日期以年月日显示并赋予DAY变量 SIZE=`du -sh /var/l ...
 - MySQL 数据库备份脚本
		
MySQL 数据库备份脚本 #!/bin/bash # 数据库连接信息 DB_HOST="127.0.0.1" DB_PORT="3306" DB_USER=& ...
 - MYSQL数据库数据拆分之分库分表总结
		
数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 数据存储演进思路二:单库多表 随着用户数量的 ...
 - <转>MYSQL数据库数据拆分之分库分表总结
		
数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 数据存储演进思路二:单库多表 随着用户数量的 ...
 - MYSQL数据库数据拆分之分库分表总结 (转)
		
数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 数据存储演进思路二:单库多表 随着用户数 ...
 
随机推荐
- 视觉SLAM的数学基础 第一篇 3D空间的位置表示
			
视觉SLAM中的数学基础 第一篇 3D空间的位置表示 前言 转眼间一个学期又将过去,距离我上次写<一起做RGBD SLAM>已经半年之久.<一起做>系列反响很不错,主要由于它为 ...
 - POJ 2778 DNA Sequence (AC自动机+DP+矩阵)
			
题意:给定一些串,然后让你构造出一个长度为 m 的串,并且不包含以上串,问你有多少个. 析:很明显,如果 m 小的话 ,直接可以用DP来解决,但是 m 太大了,我们可以认为是在AC自动机图中,根据离散 ...
 - HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)
			
小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
 - Oracle电子商务套件版本12.1.3自述文件 (Doc ID 1534411.1)
			
文档内容 用途 适用范围 详细信息 应用版本更新包 更新后的步骤 包含的修补程序列表 变更记录 文档可访问性 参考 适用于: Oracle Applications DBA - 版 ...
 - 结对项目— 词频统计2(语言C++)
			
结对对象:季天梦 博客地址:http://www.cnblogs.com/jitianmeng/ github链接:https://github.com/liuyutianlyt/EX_4.md 比例 ...
 - c# HighCharts使用
			
最近接到个图形报表的需求,网络上找了几个插件,最后决定用highcharts 需要的文件 1.bll文件,添加到项目引用 http://files.cnblogs.com/files/loveju ...
 - leetcode 验证回文串
			
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...
 - 接口和抽象类的使用场景以及多类继承存在的问题(c#)
			
我们首先来看下抽象class能发挥优势的使用场景. 假设有一个Cars基类,具体型号的Car继承该基类,并实现自己独有的属性或方法. public class Cars { public string ...
 - WPF绑定BitMapImage
			
先说下图片文件存在服务器.wpf常用绑定图片地址没办法用.忽然想到,convert能否转字节数据?实验了下可以. 图片绑定字节数组. convert代码 public class PictureCon ...
 - Cookie客户端缓存.Session.Application
			
Cookie客户端缓存. 1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要 ...