Mydumper:MySQL多线程逻辑备份与恢复
Mydumper:MySQL多线程逻辑备份与恢复
MySQL多线程逻辑备份
-
Mydumper简介
Mydumper是一个多线程的MySQL逻辑备份工具.
- 逻辑备份速度非常快(跟mysqldump相比)
- myisam和innodb表的一致性备份
- 如果不是使用myisam表,几乎无”锁”(no locking)
- 每个表都是导出到独立的文件
- 快速压缩,通常mydumper压缩的文件比XtraBackup压缩的文件小3~5倍
-
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主从复制,单台服务器上实施
评论暂时关闭