美文网首页
mydumper/myloader数据库导出导入

mydumper/myloader数据库导出导入

作者: frankie_cheung | 来源:发表于2021-08-17 20:06 被阅读0次

update 2021-11-11
备份的数据库假如出现执行事务超过60秒,备份会失败

(mydumper:23816): CRITICAL **: 10:55:17.539: There are queries in PROCESSLIST running longer than 60s, aborting dump,
        use --long-query-guard to change the guard value, kill queries (--kill-long-queries) or use 
        different server for dump

前段时间需要把生产的某个库做一个迁移,但是使用mysqldump有点太慢了,使用xtrabackup,我实在搞不定,只单独恢复一个库咋整,所以就研究了一下mydumper/myloader这个工具,因为用它是有同事备份一个上亿的表几分钟就导出了,让我非常惊讶这个工具的性能。

安装

下载rpm包
Releases · maxbube/mydumper (github.com)

rpm -ivh mydumper-0.9.1-4.1.x86_64.rpm

安装完成后,mydumper 和myloader就都有了。

导出一个库

mydumper -u admin --password='******' -S /data/mysqldata/3306/tmp/mysql.sock -B same_database -t 10 --trx-consistency-only --outputdir /data/mysqldata/backup/same_database

  • -t 10 10个线程来导出,默认4个
  • --trx-consistency-only 事务一致性
  • --outputdir 导出到那个目录

导入一个库

导入到一个新数据库

直接导入即可。

导入到一个已有的数据库

这个时候记得最好把原来的数据库drop 掉,再新建一个,否则会产生主键冲突,或者数据冗余,脏数据等问题,例如需要导入的库表已经存在数据了,又insert一批数据,并且没有unique key ,就导致产生垃圾数据。
或者加入参数-o -o, --overwrite-tables Drop tables if they already exist

导入到从库

记得reset maser

myloader -u admin --password='******' -S /data/mysql/data/3306/mysqld.sock -v 3 -B same_database -t 10 -d /data/mysql/data/backup/same_database

  • -v 3 是打印一些信息,省的在导入数据量比较大的时候,傻乎乎的等待,一点进度都没有。

myloader --help信息

[mysql@ZHDDB-DATA1001 3306]$ myloader --help
Usage:
  myloader [OPTION...] multi-threaded MySQL loader

Help Options:
  -?, --help                        Show help options

Application Options:
  -d, --directory                   Directory of the dump to import
  -q, --queries-per-transaction     Number of queries per transaction, default 1000
  -o, --overwrite-tables            Drop tables if they already exist
  -B, --database                    An alternative database to restore into
  -s, --source-db                   Database to restore
  -e, --enable-binlog               Enable binary logging of the restore data
  -h, --host                        The host to connect to
  -u, --user                        Username with privileges to run the dump
  -p, --password                    User password
  -P, --port                        TCP/IP port to connect to
  -S, --socket                      UNIX domain socket file to use for connection
  -t, --threads                     Number of threads to use, default 4
  -C, --compress-protocol           Use compression on the MySQL connection
  -V, --version                     Show the program version and exit
  -v, --verbose                     Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

相关文章

网友评论

      本文标题:mydumper/myloader数据库导出导入

      本文链接:https://www.haomeiwen.com/subject/rpiibltx.html