Mydumper myloader 多线程导出导入数据库

234 阅读2分钟

Mydumper/myloader 多线程导出导入数据库

Mydumper与myloader是多线程备份mysql 数据库与导入工具,能够实现快速迁移数据库的目的。此工具的优势是基于表的线程备份,同时可以快速实现源数据库到目标数据库的迁移(重命名),简化基于源中多个数据库导入。缺点是单个表中数据量比较大,特别是单个表数据大小达到5G以上,会影响导入数据进度。

备份数据的操作步骤1,2,3,参见mysqldump导出与导入

1.        统计mysql 数据库需要迁移的数据量大小

2.        基于某一个库计算每一个表的空间大小

3.        查看mysql 需要迁移的存储过程与函数

4.        使用mydumper 导出数据库,myloader 导入

  • 应用场景1. Mydumper 导出1个数据库,目标库导入并重命名数据库
 #mydumper -u root -p 11111111 -G -R -E -B dt_news -o /apps/data/ dt_news

   参数 -G表示备份触发器

        -E 表示备份事件

        -R 表示备份存储过充与函数

        -o:输出目录

        -L:日志文件名

  -t:线程数量,默认是4

  -c:压缩

  -T: 需要导出的表,表与表之间需要用,分隔,表要带数据库名称。

  -L: 写入日志信息

  • 将某个数据库备份还原到另一个数据库中(目标库不存在则会新建)
#myloader -u root -p root -B new_news -s dt_news -o -d /apps/data/dt_news
#myloader -u root -p root -B new_news -o -d /apps/data/ dt_news

  参数  -s 源数据库

        -B 目标数据库,如果目标数据库没有存在就创建

        -o 表示重写,如果表存在,就删除

        -d  表示备份目录

        -t  表示多线程,默认是4

  • 备份多个数据库,并导入

 备份除系统之外的数据库

 # mydumper  -u root -p 11111111 --regex '^(?!(mysql|sys|performance_schema|information_schema))'  -e -G -R -E  -o /apps/data/backup -L /apps/data/backup

或者指定需要备份的数据库

mydumper  -u root -p 11111111 --regex 'xdb1|xdb2|xdb3'  
-e -G -R -E  -o /apps/data/backup -L /apps/data/backup
  • 导入指定目录的库

恢复备份文件中的全部库信息,若表已存在则先删除

myloader -u root -p 11111111 -o -d /apps/data/backup
  • 从全备中恢复指定库
#myloader -u root -p 11111111 -s dt_news -o
-d /apps/data/backup
  1. 其他信息,恢复指定的表,只能找到对应表的元数据文件与数据文件,使用source 导入的方法
#source 数据文件路径

mydumper与myloader 使用,主要介绍了两种常用的场景,指定数据库的备份与恢复,多个数据库的备份与恢复