代码改变世界

mydumper的简单使用

2023-10-17 17:51  abce  阅读(320)  评论(0编辑  收藏  举报

mydumper导出

# 备份全部数据库,排除系统库

mydumper  -u root -p root --regex '^(?!(mysql|sys|performance_schema|information_schema))'  -e -G -R -E -D -v 3   --skip-tz-utc  -o /backup -L /backup

# 备份全部数据库,包含触发器、事件、存储过程及函数

mydumper -u root -p root -G -R -E -o /mydumper/data/all/

# 备份指定库

mydumper -u root -p root -G -R -E -B db1 -o /mydumper/data/db1

# 备份指定表

mydumper -u root -p root -B db1 -T tb1,tb2 -o /mydumper/data/db1

# 只备份表结构

mydumper -u root -p root -B db1 -d -o /mydumper/data/db1

# 只备份表数据

mydumper -u root -p root -B db1 -m -o /mydumper/data/db1

# 一些重要的参数:

  -G:触发器  -R:routines  -E:events  -B:数据库名  -o:输出目录  -L:日志文件名  -t:线程数量,默认是4  -c:压缩  -Y:所有表空间  --complete-insert:Use complete INSERT statements that include column names  --views-as-tables:Export VIEWs as they were tables  -e, --build-empty-files          Build dump files even if no data available from table  -D, --daemon                     Enable daemon mode  -v, --verbose                    Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

 

  

myloader导入

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

myloader -u root -p root -o -d /backups/

# 从全备中恢复指定库

myloader -u root -p root -s db1 -o -d /backups/

# 将某个数据库备份还原到另一个数据库中(目标库不存在则会新建)

myloader -u root -p root -B recover_db1 -s db1 -o -d /backups/myloader -u root -p root -B recover_db1 -o -d /backups/

# 恢复时开启binlog(有备库的时候需要开启)

myloader -u root -p root -e -o -d /backups/

# 导入特定的某几张表

# 先将 metadata文件和需要单独导入的表的结构文件和数据文件导入到单独的文件夹中。此处默认库已建好,否则还需要复制建库相关语句。

cp /mydumper/data/db1/0/metadata /backup/db1/0/cp /mydumper/data/db1/0/d1.t1-schema.sql /backup/db1/0/cp /mydumper/data/db1/0/d1.t1.sql /backup/db1/0/

## 从新文件夹中导入数据

myloader -u root -p root -B db1 -d /backup/db1/0/## 以上就可以单独导入 db1.t1 

或者

# 无法直接还原单表 只能找到单表的sql文件 进入命令行source 执行source db1.tb1-schema.sql 还原表结构source db1.tb1.sql 还原表数据

一些重要的参数:

  -t, --threads                        Number of threads to use, default 4  -v, --verbose                        Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2  -d, --directory                      Directory of the dump to import  -L, --logfile                        Log file name to use, by default stdout is used  -B, --database                       An alternative database to restore into  --resume                             Expect to find resume file in backup dir and will only process those files  --defaults-file                      Use a specific defaults file. Default: /etc/mydumper.cnf  -e, --enable-binlog                  Enable binary logging of the restore data  -o, --overwrite-tables               Drop tables if they already exist  --innodb-optimize-keys               Creates the table without the indexes and it adds them at the end. Options: AFTER_IMPORT_PER_TABLE and AFTER_IMPORT_ALL_TABLES. Default: AFTER_IMPORT_PER_TABLE  -s, --source-db                      Database to restore

默认情况下,myloader是不开启binlog 的,这样可以提高导入速度。如果导入实例有从库,且需要导入的结果同步到从库上,则需要使用-e打开binlog记录。