您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

Mydumper安装和使用教程

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具。开发人员主要来自MySQL,Facebook,SkySQL公司。目前已经在一些线上使用了Mydumper。虽然MySQL数据库备份工具有其自带的mysqldump,属于mysql官方的一款备份工具。但是第三方备份工具mydumper凭借优越的特点为更多人所使用。

Mydumper安装和使用教程  三联

  1、Mydumper安装

  # yum install glib2-devel mysql-devel zlib-devel pcre-devel

  # wget http://launchpad.net/mydumper/0.5/0.5.1/+download/mydumper-0.5.1.tar.gz

  # tar zxvf mydumper-0.5.1.tar.gz -C ../software/

  # cmake .

  # make

  # make install

  2、在mysql数据库中创建一个测试库和表(进入mysql数据库)

  create database test;

  create table test (a int);

  mydumper参数介绍:

  -B, --database 需要备份的库

  -T, --tables-list 需要备份的表,用,分隔

  -o, --outputdir 输出目录

  -s, --statement-size Attempted size of INSERT statement in bytes, default 1000000

  -r, --rows 试图分裂成很多行块表

  -c, --compress 压缩输出文件

  -e, --build-empty-files 即使表没有数据,还是产生一个空文件

  -x, --regex 支持正则表达式

  -i, --ignore-engines 忽略的存储引擎,用,分隔

  -m, --no-schemas 不导出表结构

  -k, --no-locks 不执行临时共享读锁 警告:这将导致不一致的备份

  -l, --long-query-guard 长查询,默认60s

  --kill-long-queries kill掉长时间执行的查询(instead of aborting)

  -b, --binlogs 导出binlog

  -D, --daemon 启用守护进程模式

  -I, --snapshot-interval dump快照间隔时间,默认60s,需要在daemon模式下

  -L, --logfile 日志文件

  -h, --host

  -u, --user

  -p, --password

  -P, --port

  -S, --socket

  -t, --threads 使用的线程数,默认4

  -C, --compress-protocol 在mysql连接上使用压缩

  -V, --version

  -v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

  myloader参数介绍:

  -d, --directory 导入备份目录

  -q, --queries-per-transaction 每次执行的查询数量, 默认1000

  -o, --overwrite-tables 如果表存在删除表

  -B, --database 需要还原的库

  -e, --enable-binlog 启用二进制恢复数据

  -h, --host

  -u, --user

  -p, --password

  -P, --port

  -S, --socket

  -t, --threads 使用的线程数量,默认4

  -C, --compress-protocol 连接上使用压缩

  -V, --version

  -v, --verbose 更多输出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

  mydumper输出文件:

  metadata:元数据 记录备份开始和结束时间,以及binlog日志文件位置。

  table data:每个表一个文件

  table schemas:表结构文件

  binary logs: 启用--binlogs选项后,二进制文件存放在binlog_snapshot目录下

  daemon mode:在这个模式下,有五个目录0,1,binlogs,binlog_snapshot,last_dump。

  备份目录是0和1,间隔备份,如果mydumper因某种原因失败而仍然有一个好的快照,

  当快照完成后,last_dump指向该备份。

  time mydumper -B test -o /tmp/test2.bak -r 5000

  mydumper备份脚本

  #!/bin/bash

  #[email protected]

  ########脚本说明

  #1.默认读取当前目录下database.txt文件,备份部分数据库

  #2.如果database.txt为空,则执行全备或备份指定的个别数据库

  #set parameter

  mydumper=/usr/local/bin/mydumper #根据自己的实际情况设置

  dir_backup=/backup #根据自己的实际情况设置

  mysql_host=localhost #根据自己的实际情况设置

  mysql_port=33306 #根据自己的实际情况设置

  mysql_user=root #根据自己的实际情况设置

  mysql_pass=123456 #根据自己的实际情况设置

  now_date=`date +%Y%m%d%H%M`

  if [ ! -d $dir_backup ]; then

  echo -e "e[1;31m 保存备份的主目录:$dir_backup不存在,将自动新建. e[0m"

  mkdir -p ${dir_backup}

  fi

  export black='33[0m'

  export boldblack='33[1;0m'

  export red='33[31m'

  export boldred='33[1;31m'

  export green='33[32m'

  export boldgreen='33[1;32m'

  export yellow='33[33m'

  export boldyellow='33[1;33m'

  export blue='33[34m'

  export boldblue='33[1;34m'

  export magenta='33[35m'

  export boldmagenta='33[1;35m'

  export cyan='33[36m'

  export boldcyan='33[1;36m'

  export white='33[37m'

  export boldwhite='33[1;37m'

  cecho ()

  ## -- Function to easliy print colored text -- ##

  # Color-echo.

  # 参数 $1 = message

  # 参数 $2 = color

  {

  local default_msg="No message passed."

  message=${1:-$default_msg} # 如果$1没有输入则为默认值default_msg.

  color=${2:-black} # 如果$1没有输入则为默认值black.

  case $color in

  black)

  printf "$black" ;;

  boldblack)

  printf "$boldblack" ;;

  red)

  printf "$red" ;;

  boldred)

  printf "$boldred" ;;

  green)

  printf "$green" ;;

  boldgreen)

  printf "$boldgreen" ;;

  yellow)

  printf "$yellow" ;;

  boldyellow)

  printf "$boldyellow" ;;

  blue)

  printf "$blue" ;;

  boldblue)

  printf "$boldblue" ;;

  magenta)

  printf "$magenta" ;;

  boldmagenta)

  printf "$boldmagenta" ;;

  cyan)

  printf "$cyan" ;;

  boldcyan)

  printf "$boldcyan" ;;

  white)

  printf "$white" ;;

  boldwhite)

  printf "$boldwhite" ;;

  esac

  printf "%sn" "$message"

  tput sgr0# tput sgr0即恢复默认值

  printf "$black"

  return

  }

  cechon ()

  # Color-echo.

  # 参数1 $1 = message

  # 参数2 $2 = color

  {

  local default_msg="No message passed."

  # Doesn't really need to be a local variable.

  message=${1:-$default_msg} # 如果$1没有输入则为默认值default_msg.

  color=${2:-black} # 如果$1没有输入则为默认值black.

  case $color in

  black)

  printf "$black" ;;

  boldblack)

  printf "$boldblack" ;;

  red)

  printf "$red" ;;

  boldred)

  printf "$boldred" ;;

  green)

  printf "$green" ;;

  boldgreen)

  printf "$boldgreen" ;;

  yellow)

  printf "$yellow" ;;

  boldyellow)

  printf "$boldyellow" ;;

  blue)

  printf "$blue" ;;

  boldblue)

  printf "$boldblue" ;;

  magenta)

  printf "$magenta" ;;

  boldmagenta)

  printf "$boldmagenta" ;;

  cyan)

  printf "$cyan" ;;

  boldcyan)

  printf "$boldcyan" ;;

  white)

  printf "