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

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

 

时间: 2024-07-31 18:56:32

linux中mydumper 多线程快速备份,恢复mysql数据库的相关文章

使用mysql workbench图形化备份恢复mysql数据库

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本文简要介绍一个简单好用的图形界面备份恢复mysql数据库的方法,使用workbench图形界面进行mysql数据库恢复备份.对那些不喜欢使用命令行的朋友相信有帮助. workbench是mysqlAB公司出的一款可视化操作mysql的工具,对于习惯使用windows图形化界面操控的用户来说,这是一个非常好的工具.当然还有一款大家很熟悉的基于

数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库

张乐奕 云和恩墨副总经理,Oracle ACE总监,ACOUG 联合创始人 没有删除过数据库的DBA职业生涯是不完整的,删除过数据库还能幸存的DBA一定是订阅了"Oracle"公众号. 昨晚有朋友在微信群中求助讨论,误删除了一个MySQL的数据库,整个恢复过程和以下文章中提到的步骤完全相同,只要MySQL主进程还没有退出,从文件句柄中可以恢复文件最终挽回损失.类似的lsof找到那些被标记为Deleted的文件(以下是参考示意图). 让我们完整的再复习一下这篇文章的步骤,一定要记住这种方

妙用phpMyBackupPro备份恢复Mysql数据库

phpMyBackupPro 是一个一个专业的MySql备份工具.可以备份多服务器.多数据库,可以将数据备份 到ftp或email,可以自动备份.可以设置备份的计划任务,可以还原数据库.在线执行SQL语句, 生成 UTF-8格式的文档. phpMyBackupPro简介 主要特点: 1.可以选择备份一个或几个数据库,并可以选择是只备份表格结构还是包含数据. 2.支持三种压缩类型(不压缩,gzip和zip). 3.按计划自动备份. 4.提供一个备份管理界面(查看,恢复,下载,删除). 5.可直接备

linux中修改AMH系统面板默认MYSQL数据库存储路径方法

正常情况下我们的VPS主机环境如果按照类似AMH之类的面板,如果有数据盘的时候网站项目会独立用数据盘存储,而系统以及面板环境数据库存储会在系统盘中,因为也不会占据太大的硬盘空间.上午的时候,有一个朋友需要老左帮助解决AMH面板的数据库也放到数据盘中,担心哪天系统数据或者缓存导致系统盘占满问题. 修改AMH系统面板默认MYSQL数据库存储路径方法 解决修改AMH系统面板默认MYSQL数据库存储路径方法 第一.复制AMH面板数据库到挂载目录文件夹 这里老左看到挂载的数据盘是HOME目录下(挂载AMH

通过java备份恢复mysql数据库的实现代码_java

复制代码 代码如下: import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java

如何用PHP的页面备份、恢复Mysql数据库中的数据表

mysql|备份|恢复|数据|数据库|页面 <?           //备份数据       $i   =   0;       $crlf="\r\n";       $dbname="xgtqr";       global     $dbconn;       $dbconn   =   mysql_connect("localhost","root","root");       $db  

Linux上通过binlog文件恢复mysql数据库详细步骤_Mysql

 一.binlog 介绍 服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlbinlog命令来查看. 用途1:主从同步 用途2:恢复数据库(也是线上出现一次数据库文件丢失后,才对这个有所了解并学习的) mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ... <!--[if !supportLists]-->

linux下如何备份还原mysql数据库

本文介绍了linux下如何备份与恢复mysql数据库. 数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份. 按提示输入密码,这就把tm数据库所有的表结构和# mysqldump -u root -p tm > tm_050519.sql数据备份到tm_050519.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用

通过binlog恢复mysql数据库

在上一篇文章,我们讲解了有关mysql的binlog日志的基础知识.这篇文章,我们来讲解如何通过mysql的binlog日志来恢复数据库. 在使用binlog日志来恢复数据库之前,我们有一些前提工作需要做.步骤如下: 1.创建新的数据库ailanni 2.创建新的表ilannitable 3.向表ilannitable插入数据 4.刷新mysqlbin日志 5.完整备份ailanni数据库 6.删除表ilannitable插入的部分数据 7.删除数据库ailanni 8.各个binlog日志的内