5、mysql热备--逻辑备份之mydumper的备份与恢复

    xiaoxiao2023-11-12  149

    mydumper是针对mysql和drizzle的多线程备份工具,备份速度远远高于mysqldump,备份形式属于逻辑备份,数据还原时,使用myloader工具。

    ※ mysqldump是单线程工作的工具,只能逐个表导出。

     

    1)mydumper安装

    mydumper安装所依赖的软件包,glibc, zlib, pcre, pcre-devel, gcc, gcc-c++, cmake, make, mysql客户端库文件

    yum install https://github.com/maxbube/mydumper/releases/download/v0.9.5/mydumper-0.9.5-1.el7.x86_64.rpm

    2) mydumper和myloader语法重点参数详解

    mydumper使用参数说明 -B,--database: 需要备份的数据库 -T,--tables-list: 需要备份的表,多表用逗号隔开 -o,--outputdir :输出文件的目录 -s,--statment-size:生成insert语句的字节数,默认10000000 -r,--rows:将表按行分块时,指定的块行数,指定该选项会关闭--chunk-filesize -F,--chunk-filesize:将表按大小分块时,指定的块大小,单位MB -c,--compress:压缩输出文件 -e,--build-empty-files:即使表没有数据,还是产生一个空文件 -x,--regex:正则表达式:'db.table' -i,--ignore-engines:忽略存储引擎,用逗号分开 -m,--no-schemas:不导出表结构 -k,--no-locks:不执行共享读锁,警告,这将导致不一致的备份 -l,--long-query-guard:设置长查询时间,默认60秒 -K,--kill-long-queries:“kill”掉长时间查询 -D,--daemon:启用守护进程模式 -I,--snapshot-interval dump:快照间隔时间,默认60s,需要在daemon模式下 -L,--logfile:日志文件 -h,--host:MySQL服务器IP地址 -u,--user:备份时使用的用户名 -p,--password:用户密码 -P,--port:数据库连接端口号 -S,--socket:套接字文件 -t,--thread:使用的线程数,默认4个 -C,--compress-protocol:在MySQL上使用压缩协议 myloader参数说明 -d,--directory:备份文件的目录 -q,--queries-per-transaction:每次事务执行的查询数量,默认1000 -o,--overwrite-tables:如果要恢复的表存在,则先drop掉该表 -B,--database:需要还原的数据库 -e,--enable-binlog:启用还原数据库的二进制日志 -h,--host:MySQL服务器的ip -u,--user:还原时使用的数据库用户名 -p,--password:用户的密码 -P,--port:数据库连接端口号 -S,--socket:套接字文件 -t,--thread:使用的线程数,默认4个 -C,--compress-protocol:在MySQL上使用压缩协议

    3)备份数据库

    // 备份全库 mydumper -u root -p 123 -o /tmp/backup/ // 备份db1库 mydumper -u root -p 123 -B db1 -o /tmp/backup // 备份db1库t1表 mydumper -u root -p 123 -B db1 -T t1 -o /tmp/backup // 备份多张表 mydumper -u root -p 123 -B db1 -T t1,t2 -o /tmp/backup // 备份db1库t1表,不备份表结构 mydumper -u root -p 123 -B db1 -T t1 -m -o /tmp/backup // 备份db1库t1表并压缩 mydumper -u root -p 123 -B db1 -T t1 -c -o /tmp/backup

    ※备份目录下游metadata的目录,里面记载着binlog和position号,方便日后搭建slave库

    4)还原数据

    // 还原db1 myloader -u root -p 123 -B db1 -d /tmp/backup/ // 还原db1的t1表 myloader -u root -p 123 -B db1 -o t1 -d /tmp/backup

    5)优点:

    多线程备份文件压缩多线程恢复保证数据一致性比mysqldump备份速度和恢复都要快

    最新回复(0)