手机版

mydumper备份脚本Mydumper安装和使用教程

时间:2021-07-31 来源:互联网 编辑:宝哥软件园 浏览:

类型:音频处理大小: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或者邮箱删除。