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
- 其他信息,恢复指定的表,只能找到对应表的元数据文件与数据文件,使用source 导入的方法
#source 数据文件路径
mydumper与myloader 使用,主要介绍了两种常用的场景,指定数据库的备份与恢复,多个数据库的备份与恢复