作者:FEEL欧诺_625 | 来源:互联网 | 2018-07-09 06:50
MySQL多线程逻辑备份 Mydumper简介 Mydumper是一个多线程的MySQL逻辑备份工具. 逻辑备份速度非常快(跟mysqldump相比) myisam
MySQL多线程逻辑备份
Mydumper简介
Mydumper是一个多线程的MySQL逻辑备份工具.
Mydumper安装
# yum install cmake glib2-devel zlib zlib-devel pcre-devel gcc-c++
# wget -c https://launchpad.net/mydumper/0.5/0.5.2/+download/mydumper-0.5.2.tar.gz
# tar zxvf mydumper-0.5.2.tar.gz
# cd mydumper-0.5.2
# cmake .
# make && make install
Mydumper使用
Mydumper通过使用多线程同时dump多个表或是表的一部分.它有很多选项参数mydumper --help.
以下是其中三个重要参数:
--database:指定要导出备份的数据库名
--threads:指定使用线程的数目.通常可设置为CPU的核数目,当然有时也会设置更多.
--rows:指定每个"块"(chunk)的行(记录)数目.具体值的设置取决于数据表的记录数目.
一个备份脚本例子dbdump.sh:
#!/bin/bash
MYDUMPER=`which mydumper`
DIR_BACKUP=/backup
DB_HOST=192.168.1.190
DB_PORT=3306
DB_NAME=sakila
DB_USER=root
DB_PASS=123456
FDAY=`date "+%F"`
DB_DUMP=$DIR_BACKUP/$DB_NAME.$FDAY
$MYDUMPER \
--database=$DB_NAME \
--host=$DB_HOST \
--port=$DB_PORT \
--user=$DB_USER \
--password=$DB_PASS \
--outputdir=$DB_DUMP \
--rows=500000 \
--compress \
--build-empty-files \
--threads=2 \
--compress-protocol \
--kill-long-queries
注:由于Mydumper不处理MySQL的视图,触发器和存储过程,因此使用mydumper去导出schema并不可靠.
实际生产环境中,建议mydumper仅用于导出数据(使用--no-schemas),而通过mysqldump来导出schema.
MySQL多线程逻辑恢复
Myloader
上面在安装Mydumper的同时也安装了Myloader.
使用Myloader进行恢复的脚本例子dbload.sh:
#!/bin/bash
MYLOADER=`which myloader`
DB_HOST="192.168.1.190"
DB_PORT=3306
DB_NAME="sakila2"
DB_USER="root"
DB_PASS="123456"
DB_DUMP="/data/backup/sakila.2013-04-29"
$MYLOADER \
--database=$DB_NAME \
--host=$DB_HOST \
--port=$DB_PORT \
--user=$DB_USER \
--password=$DB_PASS \
--directory=$DB_DUMP \
--queries-per-transaction=50000 \
--threads=6 \
--compress-protocol \
--verbose=3
推荐阅读:
Ubuntu下Nginx做负载实现高性能WEB服务器5---MySQL主主同步
生产环境MySQL主主同步主键冲突处理
MySQL主从失败 错误Got fatal error 1236
MySQL主从复制,单台服务器上实施
,