欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Mydumper:MySQL多线程逻辑备份与恢复

程序员文章站 2024-02-19 16:02:10
...

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主从复制,单台服务器上实施

    Mydumper:MySQL多线程逻辑备份与恢复