mydumper备份脚本Mydumper安装和使用教程
类型:音频处理大小:1M语言:中文评分:5.1标签:下载Mydumper现在是一款针对MySQL和毛毛雨的高性能多线程备份恢复工具。开发者主要来自MySQL、脸书和SkySQL公司。目前,Mydumper已经在部分线路上使用。虽然mysql数据库备份工具有自己的mysqldump,但它是一个官方的MySQL备份工具。但mydumper这种第三方备份工具,因为其优越的特性,被更多人使用。
1.Mydumper安装
# yum install gli B2-dev MySQL-dev zlib-dev pcre-dev
# wget http://launchpad.net/mydumper/0.5/0.5.1/下载/mydumper-0.5.1.tar.gz
# tar zxvf mydumper-0.5.1.tar.gz-C./软件/
# cmake。
#制作
#进行安装
2.在mysql数据库中创建一个测试库和测试表(进入mysql数据库)
创建数据库测试;
创建表测试(一个int);
mydumper参数介绍:
-b,-数据库需要备份库
-t -T,-tables-列出要备份的表,用、分隔。
-o,-outputdir输出目录
-s,-语句大小INSERT语句的尝试大小(以字节为单位),默认值为1000000
-r,-行试图拆分成许多行块表
-c,-压缩压缩输出文件
-e,-build-empty-files即使该表没有数据,它仍然会生成一个空文件
-x,-regex支持正则表达式
-I -i,-忽略-引擎忽略存储引擎,用,
-m -m,- no-schemas不导出表结构
-k -k,-no-lock不执行临时共享读锁定警告:这将导致不一致的备份
-l,-long-query-guard长查询,默认60s
-kill-kill-long-查询终止长时间运行的查询(而不是中止)
-b,binlog导出binlog
-d,-守护程序启用守护程序模式
-I -I,-快照间隔转储快照间隔,默认值为60s,需要处于守护程序模式
-l,-日志文件日志文件
主持人
-u,-用户
-p,-密码
端口
-S-插座
-t,-线程使用的线程数,默认值为4
在mysql连接上使用压缩的压缩协议
-V,-版本
-v,-verbose more输出,0=静默,1=错误,2=警告,3=信息,default2
myloader参数介绍:
-d,-目录导入备份目录
- q,-q,-每事务查询数,每次执行的查询数,默认值为1000
-o -o,-覆盖-表删除存在的表
-b,-数据库需要恢复库
-e -e,- enable-binlog启用二进制恢复数据
主持人
-u,-用户
-p,-密码
端口
-S-插座
-t,-线程使用的线程数,默认值为4
-c -C,-压缩-在连接上使用压缩协议
-V,-版本
-v,-verbose more输出,0=静默,1=错误,2=警告,3=信息,default2
Mydumper输出文件:
Metadata:元数据记录备份的开始和结束时间,以及binlog日志文件的位置。
表数据:每个表一个文件
表schemas:表结构文件
二进制日志:启用- binlogs选项时,二进制文件存储在binlog_snapshot目录中
在这种模式下,有五个目录0,1,binlog,binlog_snapshot和last_dump。
备份目录为0和1,每隔一段时间备份一次。如果mydumper由于某种原因失败,但仍有良好的快照,
快照完成后,last_dump指向备份。
time mydumper -B测试-o /tmp/test2.bak -r 5000
Mydumper备份脚本
#!/bin/bash
#ocpyang@126.com
# # # # # # #脚本描述
#1.默认情况下,读取当前目录中的database.txt文件并备份一些数据库
#2.如果database.txt为空,请对指定的单个数据库执行完全准备或备份
#设定参数
mydump=/usr/local/bin/mydump #是根据您的实际情况设置的
Dir_backup=/backup#根据您的实际情况设置
Mysql_host=localhost#是根据你的实际情况设置的
Mysql_port=33306#根据你的实际情况设置
Mysql_user=root#是根据你的实际情况设置的
Mysql_pass=123456#根据你的实际情况设置
now_date=`date %Y%m%d%H%M '
如果[!-d $ dir _ backup];然后
echo-e ' \ e[1;31m用于保存备份的主目录:$dir_backup不存在,将自动创建。\e[0m]
mkdir-p${dir_backup}
船方不负担装货费用
exportblack='\033[0m '
export bold black=' \ 033[1;' 0m '
export red=' \ 033[31m]
export bold red=' \ 033[1;31米
导出绿色=' \ 033[32m]
导出粗体绿色=' \ 033[1;32m '
出口黄色=' \ 033[33m]
exportboldyellow黄色黄色=' \ 033[1;33m '
exportblue='\033[34m '
导出粗体蓝色=' \ 033[1;34m '
出口品红色=' \ 033[35m]
导出粗体洋红色=' \ 033[1;35米
exportcyan='\033[36m '
导出粗体青色=' \ 033[1;36m '
exportwhite='\033[37m '
导出粗体白色=' \ 033[1;37m '
cecho()
# #-functiontoasilyprintcoredtext-# #
#彩色回声。
#参数$ 1=消息
#参数$ 2=颜色
{
本地默认值_ msg=' Nomessagepassed '
消息=$ { 1:-$默认_消息}#如果$1没有输入则为默认值默认消息。
颜色=$ { 2:-黑色}#如果$1没有输入则为默认值黑色。
案例$colorin
黑色)
printf ' $ black
黑体)
printf ' $ boldblack
红色)
printf ' $ red
粗体)
printf ' $ boldred
绿色)
printf ' $ green
boldgreen)
printf ' $ boldgreen
黄色)
printf ' $黄色;
粗体黄色)
printf ' $ boldyellow
蓝色)
printf ' $ blue
boldblue)
printf ' $ boldblue
洋红色)
printf ' $洋红色;
粗体洋红色)
printf ' $品红;
青色)
printf ' $青色;
大胆的青色)
printf ' $ boldcyan
白色)
printf ' $ white
粗体白色)
printf ' $ boldwhite
环境系统应用中心环境系统应用程序中心
printf“% s \ n”$消息
tputsgr0#tputsgr0即恢复默认值
printf'$black '
返回
}
cechon()
#彩色回声。
#参数1 $ 1=消息
#参数2美元2=颜色
{
本地默认值_ msg=' Nomessagepassed '
#不需要是可变的。
消息=$ { 1:-$默认_消息}#如果$1没有输入则为默认值默认消息。
颜色=$ { 2:-黑色}#如果$1没有输入则为默认值黑色。
案例$colorin
黑色)
printf ' $ black
黑体)
printf ' $ boldblack
红色)
printf ' $ red
粗体)
printf ' $ boldred
绿色)
printf ' $ green
boldgreen)
printf ' $ boldgreen
黄色)
printf ' $黄色;
粗体黄色)
printf ' $ boldyellow
蓝色)
printf ' $ blue
boldblue)
printf ' $ boldblue
洋红色)
printf ' $洋红色;
粗体洋红色)
printf ' $品红;
青色)
printf ' $青色;
大胆的青色)
printf ' $ boldcyan
白色)
printf ' $ white
粗体白色)
printf ' $ boldwhite
环境系统应用中心环境系统应用程序中心
printf“% s”$消息
tputsgr0#tputsgr0即恢复默认值
printf'$black '
返回
}
judegedate _ 01=' judegedate 01。`日期% y % m % d % h % m % s`。' txt '
schema _ Jude ge01='从information _ schema中选择schema _ name。架构;'
MySQL-h $ { MySQL _ host }-P $ { MySQL _ port }-u $ { MySQL _ user }-P $ { MySQL _ pass }-e ' $ { schema _ Jude ge01 } ' $ { Jude ged ate _ 01 }
echo-e ' \ e[1;31数据库snameincurrentinstanceis : \ e[0m]
awk'NR==2,NR==0 { print $ 1 } ' $ { judegedate _ 01 }
回声''
#和createafilenameddatabase.txt
# inoderto保存备份数据库名称.
文件路径=$(CD ' $(dirname ' $ 0 ')';pwd)
如果[!-s ' $ {文件路径}/数据库。txt '];然后
"回声"将在当前目录下新建databases.txt '
触摸${filepath}/database.txt
echo ' # Eachlineisstoredvalidatabasename ' $ {文件路径}/database。文本文件(textfile)
chmod 700 $ {文件路径}/数据库。文本文件(textfile)
船方不负担装货费用
#移除连接线
awk'NR==2,NR==0 { print $ 1 } ' $ { file path }/database。txt $ {文件路径}/tmpddatabases。文本文件(textfile)
#以确定是否文件是空的
if[-s $ {文件路径}/tmpddatabases。txt];然后
#开始时间
started _ time=`date % s
"回声"备份开始时间' : $ { started _ time } '
db_num00=`awk'NR==1,NR==0 { printNR } ' $ {文件路径}/tmpddatabases。txt | tail-n1
"回声"此次将备份${db_num00}个数据库:'
回声
or_dbnum=0
foriin`awk'NR==1,NR==0 { print $ 1 } ' $ { file path }/tmpddatabases。txt `;
做
((or_dbnum=1))
mysql_databases=$i
db_dpname=$dir_backup/${i} .${now_date}
echo-e ' \ e[1;32mmydumper开始备份第${or_dbnum}个数据库$i.\ e[0m]
睡眠2
echo-e ' \ e[1;32mmydumper玩命备份中.稍等片刻.\ e[0m]
${mydumper}\
-数据库=${mysql_databases}\
- host=${mysql_host}\
-端口=${mysql_port}\
-用户=${mysql_user}\
-密码=${mysql_pass}\
- outputdir=${db_dpname}\
-否-模式\
-行数=50000\
-构建-空文件\
-线程=4\
压缩协议
长时间的查询
if['$?'-eq0];然后
echo-e ' \ e[1;32mmydumper成功将数据库$i备份到:${db_dpname} .\ e[0m]
回声
其他
echo-e ' \ e[1;31m备份异常结束\ e[0m]
船方不负担装货费用
完成的
其他
ipname=' '
read-p ' pleaseinputyouwantobkupddatabase名称[a | a : all]: ' IP名称
#开始循环
#开始时间
started _ time=`date % s
"回声"备份开始时间' : $ { started _ time } '
if[' $ ipname '=' A '-o ' $ ipname '=' A '];然后
db_num=`awk'NR==2,NR==0 { printNR-1 } ' $ { judegedate _ 01 } | tail-n1 `
"回声"此次将备份${db_num}个数据库:'
回声
mysql_databases=$ipname
or_dbnum=0
foriin`awk'NR==2,NR==0 { print $ 1 } ' $ { judegedate _ 01 } `;
做
((or_dbnum=1))
mysql_databases=$i
db_dpname=$dir_backup/${i} .${now_date}
echo-e ' \ e[1;32mmydumper开始备份第${or_dbnum}个数据库$i.\ e[0m]
睡眠2
echo-e ' \ e[1;32mmydumper玩命备份中.稍等片刻.\ e[0m]
${mydumper}\
-数据库=${mysql_databases}\
- host=${mysql_host}\
-端口=${mysql_port}\
-用户=${mysql_user}\
-密码=${mysql_pass}\
- outputdir=${db_dpname}\
-否-模式\
-行数=50000\
-构建-空文件\
-线程=4\
压缩协议
长时间的查询
if['$?'-eq0];然后
echo-e ' \ e[1;32mmydumper成功将数据库$i备份到:${db_dpname} .\ e[0m]
回声
其他
echo-e ' \ e[1;31m备份异常结束\ e[0m]
船方不负担装货费用
完成的
其他
"回声"此次备份的数据库名为' :美元“ipname”
回声
#开始时间
STARTED_TIME=`date %s '
mysql_databases=$ipname
db _ dpname=$ dir _ backup/$ { MySQL _ databases } .${now_date}
judegedate _ 02=' judegedate 02。`日期% y % m % d % h % m % s`。' txt '
schema _ Jude ge02='从information _ schema中选择schema _ name。schematawhereschema _ name=' $ { ipname } ';'
MySQL-h $ { MySQL _ host }-P $ { MySQL _ port }-u $ { MySQL _ user }-P $ { MySQL _ pass }-e ' $ { schema _ Jude ge02 } ' $ { Jude ged ate _ 02 }
如果[!-s ' $ { judegedate _ 02 } '];然后
回声''
echo-e ' \ e[1;31m * * * * * * * * * * * * * * * e[0m]
echo-e ' \ e[1;31m!o(︶︿︶)o!schema _ name $ { ipname }注意退出,请检查~ ~ ~ ~(_)~ ~ ~ ~ \ e[0m]
echo-e ' \ e[1;31m * * * * * * * * * * * * * * * * e[0m]
回声''
rm-rf${judegedate_01}
rm-rf${judegedate_02}
exit0
其他
echo-e ' \ e[1;32mmydumper开始备份请稍等.\ e[0m]
睡眠2
echo-e ' \ e[1;32mmydumper玩命备份中.稍等片刻.\ e[0m]
${mydumper}\
-数据库=${mysql_databases}\
- host=${mysql_host}\
-端口=${mysql_port}\
-用户=${mysql_user}\
-密码=${mysql_pass}\
- outputdir=${db_dpname}\
-否-模式\
-行数=50000\
-构建-空文件\
-线程=4\
压缩协议
长时间的查询
if['$?'-eq0];然后
echo-e ' \ e[1;32mmydumper成功将数据库备份到:${db_dpname} .\ e[0m]
其他
echo-e ' \ e[1;31m备份异常结束\ e[0m]
船方不负担装货费用
船方不负担装货费用
#循环结束
船方不负担装货费用
船方不负担装货费用
rm-rf${judegedate_01}
rm-rf${judegedate_02}
RM-RF $ {文件路径}/tmpddatabases。文本文件(textfile)
"回声"完成于: `日期%F''%T''%w ` '
######################################################################################################################
执行结果如下:#####################
数据库当前状态:
信息模式
关系型数据库
性能_架构
试验
风
mpiao
mpadmin
mplog
请输入您想要的烟草数据库名称[a|A:ALL]:A
备份开始时间:1431574874
此次将备份8个数据库:
我的自卸车开始备份第一个数据库信息模式.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库信息模式备份到:/备份/信息_架构。20150 .141414141416
我的自卸车开始备份第2个数据库关系型数据库.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库关系型数据库备份到:/backup/MySQL。201505141141
我的自卸车开始备份第3个数据库性能_架构.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库性能_架构备份到:/备份/性能_架构。20150 .141414141416
我的自卸车开始备份第四个数据库试验.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库试验备份到:/备份/测试。48860 .88888888861
我的自卸车开始备份第5个数据库风.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库风备份到:/备份/风。48860 .88888888861
我的自卸车开始备份第6个数据库mpiao.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库mpiao备份到:/backup/mpiao。201505141141
我的自卸车开始备份第七个数据库mpadmin.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库mpadmin备份到:/备份/MP管理。201505141141
我的自卸车开始备份第8个数据库mplog.
我的自卸车玩命备份中.稍等片刻.
我的自卸车成功将数据库mplog备份到:/备份/mplog。201505141141
我的自卸车备份脚本模板
# 这是一个本地备份多台关系型数据库的脚本
# 设定被备份主机信息
类型=全部
IPADDR=localhost
PASSWD=密码
# 指定主目录
备份文件路径=quot/home/FTP/b/backup _ data/my dumper quot;
# 以当前系统时间新建备份文件夹
时间_目录=$(日期-d昨天“% Y”)/$(日期% m’)/$(日期%d')/$(日期% Y % M % d % H % M % S’)
BACKUP _ FILES _ DIR=$ { BACKUP _ FILES _ PATH }/$ TYPE/$ TIME _ DIR;"回声"新建备份目录:$BACKUP_FILES_DIR '
# 设置你想保存的天数,我这里设置的是保存30天之内的备份
保存天数=30
# 删除指定时间前的文件
find $ BACKUP _ FILES _ PATH-mtime $ SAVE _ DAYS-exec RM-RF { } \;
# 新建备份目录
回声新建备份目录:$ BACKUP _ FILES _ DIRquot
mkdir -p $BACKUP_FILES_DIR
回声备份对象:$ IPADDRquotgt .$BACKUP_FILES_DIR/log
# 开始远程备份
# mydumper只需要3个全局权限选择、重新加载、锁定表格
# 如果记录需要二进制日志和指针信息需要再添加2个权限REPLICATION SLAVE,REPLICATION CLIENT
time my dumper-h $ IPADR-u my dumper-p $ PASSWD-o $ BACKUP _ FILES _ DIR-C-9-C-e-t 6 2gt;gt .$BACKUP_FILES_DIR/log
cat $ BACKUP _ FILES _ DIR/元数据
cat $BACKUP_FILES_DIR/log
# 复制最新的到外层文件夹
RM-RF $ { BACKUP _ FILES _ PATH }/$ TYPE/最后一次备份
CP-r $ BACKUP _ FILES _ DIR $ { BACKUP _ FILES _ PATH }/$ TYPE/最后一次备份
# 设定权限
chown -R 1018:1100美元备份文件目录
# 恢复
# time my loader-h localhost-u root-p密码-d/home/FTP/b/backup _ data/my dumper/ALL/last backup-o-v 3-C-t 6
# 追加此脚本到计划任务
# echo ' 17 05 * * * sh/root/shell/backup _ MySQL。sh '/var/spool/cron/root
# echo ' 06 05 * * * sh/root/shell/backup _ MySQL。sh '/var/spool/cron/root
版权声明:mydumper备份脚本Mydumper安装和使用教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。