百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> linux中mydumper 多线程快速备份,恢复mysql数据库
分享文章到:

linux中mydumper 多线程快速备份,恢复mysql数据库

发布时间:01/15 来源: 浏览: 关键词:
mydumper比mysql中自带的功能性能要强很多它可以实现多线程数据备份与恢复,下面本教程就来介绍mydumper安装,备份及自动备份脚本的例子,希望此例子对各位会带来帮助

mydumper 安装

1、先安装cmake,因为这个软件要用cmake编译

 代码如下

# apt-get install cmake

2、接下来安装mydumper兼容包,这个很关键,因为根据官网文档,centos/redhat等其他系统需要的包名是不同的,可根据实际系统去查阅官网资料:

 代码如下
# apt-get install libglib2.0-dev libmysqlclient15-dev zlib1g-dev libpcre3-dev

3、下载源码安装包:

#wget http://launchpad.net/mydumper/0.2/0.2.3/+download/mydumper-0.2.3.tar.gz

4、解压包

 代码如下

#tar xzvf mydumper-0.2.3.tar.gz

5、进入解压目录,准备开始安装

 代码如下
#cd mydumper-0.2.3/

6、用cmake进行编译,注意后面有个字符"."(其实就是英文的句号),别落下了啊

 代码如下
#cmake .

7、安装

 代码如下
#make
#make install

到这里就已经安装完毕了。

简单的备份恢复测试

备份

 代码如下

mydumper –kill-long-queries -u root -B dbname -T db-tables-name -p ‘password’ -v 2 -c -t 8 –outputdir=/home/backup/20120615/

恢复备份

 代码如下

myloader -d /home/backup/20120615/ -o -B dbname  -u root -p ‘passwd’ -t 4 &

myloader 大多参数和mydumper一样
–directory, -d 要还原的数据目录
–overwrite-tables, -o Drop any existing tables when restoring schemas

下面是各项常用参数解释:

–host, -h 连接的mysql服务器
–user, -u 用户备份的连接用户
–password, -p
–port, -P 连接端口
–socket, -S 连接socket文件
–database, -B 需要备份的数据库
–table-list, -T 需要备份的表,用,分隔
–outputdir, -o 输出的目录
–build-empty-files ,-e 如果表数据是空,还是产生一个空文件,默认无数据则只有表结构文件
–regex, -x 支持正则表达式,如mydumper –regex ’^(?!(mysql|test))’
–ignore-engines, -i 忽略的存储引擎
–no-schemas, -m 不导出表结构
–long-query-guard 长查询,默认60s,超过则通过mydumper
–kill-long-queries, 可以设置kill长查询
–verbose, -v 0 = silent, 1 = errors, 2 = warnings, 3 = info,默认是2
–binlogs, -b 导出binlog www.111cn.net

–daemon, -D 启用守护进程模式
–snapshot-interval, -I dump快照间隔时间,默认60s
–logfile, -L mysqldumper日志输出,一般在Daemon模式下使用


动备份mysql的shell脚本 

该脚本基本功能如下(如果允许的话请自行增加异地/异机灾备):

1、备份数据库;

2、加上了过期代码,保留了7天的备份,以免硬盘被撑爆了,有需求的请自行增减时间;

3、通过对比可得知数据库备份使用了多长时间。

 

 代码如下

#!/bin/bash
#This is a ShellScript for auto DB-Backup
#201204 by szy
#Setting
  DBName=test

  DBUser=root

  DBPasswd=password

www.111cn.net
 BackupPath=/home/backup/db
 LogFile=/home/backup/log/DBbackup.log


 NewFile="$BackupPath"/"$DBName1"/$(date +%y%m%d)

 OldFile="$BackupPath"/"$DBName1"/$(date +%y%m%d --date='7 days ago')

 

 echo "----------------Backup Start-------------------" >> $LogFile

 echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile

 echo "-----------------------------------------------------" >> $LogFile 


#Delect Old File
 if [ -d $OldFile ]
then
    rm -rf $OldFile >> $LogFile 2>&1
    echo "----------[$OldFile]Delete Old File Success!----------" >> $LogFile
else
    echo "----------[$DBName]No Old Backup File!-------------" >> $LogFile
fi


#Backup

 echo "----------------------$DBName----------------------" >> $LogFile
 echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile

 if [ -d $NewFile ]
then
   echo "----------[$NewFile]The Backup File is exists,Can't Backup!----------" >> $LogFile 
else
mkdir $NewFile
 mydumper --kill-long-queries -u $DBUser -B $DBName -p $DBPasswd -v 2 -c -t 8 --outputdir=$NewFile
 fi

 echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
 echo "--------------This ShellScript End-------------------" >> $LogFile

 

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有3人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板