【MySQL】数据库逻辑备份工具--mydumper
admin
2023-04-20 19:04:28
0次
[root@wallet01 ~]# yum install -y glib2-devel mysql-devel zlib-devel \
pcre-devel openssl-devel cmake

[root@wallet01 ~]# git clone https://github.com/maxbube/mydumper.git
Initialized empty Git repository in /root/mydumper/.git/
error:  while accessing https://github.com/maxbube/mydumper.git/info/refs
fatal: HTTP request failed

[root@wallet01 ~]# yum update -y nss curl libcurl

[root@wallet01 ~]# git clone https://github.com/maxbube/mydumper.git
Initialized empty Git repository in /root/mydumper/.git/
remote: Enumerating objects: 1185, done.
remote: Total 1185 (delta 0), reused 0 (delta 0), pack-reused 1185
Receiving objects: 100% (1185/1185), 983.01 KiB | 573 KiB/s, done.
Resolving deltas: 100% (724/724), done.

[root@wallet01 ~]# cd mydumper
[root@wallet01 mydumper]# cmake .
[root@wallet01 mydumper]# make
[root@wallet01 mydumper]# make install

[root@wallet01 ~]# mydumper --help

  -B, --database              需要备份的数据库,不指定则备份全部库
  -T, --tables-list           需要备份的表,多表用逗号隔开
  -O, --omit-from-file        File containing a list of database.table entries to skip, one per line (skips before applying regex option)
  -o, --outputdir             备份目录
  -s, --statement-size        Attempted size of INSERT statement in bytes, default 1000000
  -r, --rows                  Try to split tables into chunks of this many rows. This option turns off --chunk-filesize
  -F, --chunk-filesize        Split tables into chunks of this output file size. This value is in MB
  -c, --compress              压缩备份文件
  -e, --build-empty-files     Build dump files even if no data available from table
  -x, --regex                 Regular expression for 'db.table' matching
  -i, --ignore-engines        Comma delimited list of storage engines to ignore
  -N, --insert-ignore         Dump rows with INSERT IGNORE
  -m, --no-schemas            不备份表结构,仅备份表数据
  -d, --no-data               不备份表数据,仅备份表结构
  -G, --triggers              备份与表关联的触发器
  -E, --events                备份数据库的事件
  -R, --routines              备份数据库的存储过程和函数
  -W, --no-views              不备份数据库的视图
  -k, --no-locks              Do not execute the temporary shared read lock.  WARNING: This will cause inconsistent backups
  --no-backup-locks           Do not use Percona backup locks
  --less-locking              Minimize locking time on InnoDB tables.
  -l, --long-query-guard      Set long query timer in seconds, default 60
  -K, --kill-long-queries     Kill long running queries (instead of aborting)
  -D, --daemon                Enable daemon mode
  -I, --snapshot-interval     Interval between each dump snapshot (in minutes), requires --daemon, default 60
  -L, --logfile               Log file name to use, by default stdout is used              
  --use-savepoints            Use savepoints to reduce metadata locking issues, needs SUPER privilege
  --lock-all-tables           Use LOCK TABLE for all, instead of FTWRL
  --trx-consistency-only      Transactional consistency only
  --complete-insert           Use complete INSERT statements that include column names
  -h, --host                  The host to connect to
  -u, --user                  Username with the necessary privileges
  -p, --password              User password
  -a, --ask-password          Prompt For User password
  -P, --port                  TCP/IP port to connect to
  -S, --socket                UNIX domain socket file to use for connection
  -t, --threads               备份使用的线程数量,默认是 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

备份全部库:除了information_schema与performance_schema之外的库都会被备份
[mysql@wallet01 ~]$ mydumper -u root -p abcd.1234 -o /home/mysql/backup

备份指定的库 
[mysql@wallet01 ~]$ mydumper -u root -p abcd.1234 -B tpcc100 -o /home/mysql/backup
[mysql@wallet01 ~]$ cd backup
[mysql@wallet01 backup]$ ls -lh
total 732M
-rw-rw-r-- 1 mysql mysql  141 Feb  1 09:08 metadata
-rw-rw-r-- 1 mysql mysql 1.4K Feb  1 09:07 tpcc100.customer-schema.sql
-rw-rw-r-- 1 mysql mysql 172M Feb  1 09:08 tpcc100.customer.sql
-rw-rw-r-- 1 mysql mysql  804 Feb  1 09:07 tpcc100.district-schema.sql
-rw-rw-r-- 1 mysql mysql  11K Feb  1 09:07 tpcc100.district.sql
-rw-rw-r-- 1 mysql mysql  481 Feb  1 09:07 tpcc100.history-schema.sql
-rw-rw-r-- 1 mysql mysql  19M Feb  1 09:07 tpcc100.history.sql
-rw-rw-r-- 1 mysql mysql  431 Feb  1 09:07 tpcc100.item-schema.sql
-rw-rw-r-- 1 mysql mysql 7.9M Feb  1 09:07 tpcc100.item.sql
-rw-rw-r-- 1 mysql mysql  304 Feb  1 09:07 tpcc100.new_order-schema.sql
-rw-rw-r-- 1 mysql mysql 1.1M Feb  1 09:07 tpcc100.new_order.sql
-rw-rw-r-- 1 mysql mysql  615 Feb  1 09:07 tpcc100.order_line-schema.sql
-rw-rw-r-- 1 mysql mysql 204M Feb  1 09:08 tpcc100.order_line.sql
-rw-rw-r-- 1 mysql mysql  525 Feb  1 09:07 tpcc100.orders-schema.sql
-rw-rw-r-- 1 mysql mysql  14M Feb  1 09:07 tpcc100.orders.sql
-rw-rw-r-- 1 mysql mysql   66 Feb  1 09:07 tpcc100-schema-create.sql
-rw-rw-r-- 1 mysql mysql 1.2K Feb  1 09:07 tpcc100.stock-schema.sql
-rw-rw-r-- 1 mysql mysql 316M Feb  1 09:08 tpcc100.stock.sql
-rw-rw-r-- 1 mysql mysql  730 Feb  1 09:07 tpcc100.warehouse-schema.sql
-rw-rw-r-- 1 mysql mysql 1.2K Feb  1 09:07 tpcc100.warehouse.sql

备份指定的表
[mysql@wallet01 ~]$ mydumper -u root -p abcd.1234 -B tpcc100 -T customer -o /home/mysql/backup
[mysql@wallet01 ~]$ cd backup
[mysql@wallet01 backup]$ ls -lh
total 172M
-rw-rw-r-- 1 mysql mysql  141 Feb  1 09:20 metadata
-rw-rw-r-- 1 mysql mysql 1.4K Feb  1 09:20 tpcc100.customer-schema.sql
-rw-rw-r-- 1 mysql mysql 172M Feb  1 09:20 tpcc100.customer.sql
-rw-rw-r-- 1 mysql mysql   66 Feb  1 09:20 tpcc100-schema-create.sql

备份多表
[mysql@wallet01 ~]$ mydumper -u root -p abcd.1234 -B tpcc100 -T customer,orders -o /home/mysql/backup
[mysql@wallet01 ~]$ cd backup
[mysql@wallet01 backup]$ ls -lh
total 186M
-rw-rw-r-- 1 mysql mysql  141 Feb  1 09:24 metadata
-rw-rw-r-- 1 mysql mysql 1.4K Feb  1 09:24 tpcc100.customer-schema.sql
-rw-rw-r-- 1 mysql mysql 172M Feb  1 09:24 tpcc100.customer.sql
-rw-rw-r-- 1 mysql mysql  525 Feb  1 09:24 tpcc100.orders-schema.sql
-rw-rw-r-- 1 mysql mysql  14M Feb  1 09:24 tpcc100.orders.sql
-rw-rw-r-- 1 mysql mysql   66 Feb  1 09:24 tpcc100-schema-create.sql

仅备份表结构
[mysql@wallet01 ~]$ mydumper -u root -p abcd.1234 -B tpcc100 -T customer -d -o /home/mysql/backup
[mysql@wallet01 ~]$ cd backup
[mysql@wallet01 backup]$ ls -lh
total 12K
-rw-rw-r-- 1 mysql mysql  141 Feb  1 09:25 metadata
-rw-rw-r-- 1 mysql mysql 1.4K Feb  1 09:25 tpcc100.customer-schema.sql
-rw-rw-r-- 1 mysql mysql   66 Feb  1 09:25 tpcc100-schema-create.sql

仅备份表数据
[mysql@wallet01 ~]$ mydumper -u root -p abcd.1234 -B tpcc100 -T customer -m -o /home/mysql/backup
[mysql@wallet01 ~]$ cd backup
[mysql@wallet01 backup]$ ls -lh
total 172M
-rw-rw-r-- 1 mysql mysql  141 Feb  1 09:27 metadata
-rw-rw-r-- 1 mysql mysql 172M Feb  1 09:27 tpcc100.customer.sql

[root@wallet01 ~]# myloader --help

  -d, --directory                   备份目录
  -q, --queries-per-transaction     Number of queries per transaction, default 1000
  -o, --overwrite-tables            如果表已经存在则删除
  -B, --database                    还原到另一个数据库,例如备份A库,还原为B库
  -s, --source-db                   需要还原的数据库(备份文件中)
  -e, --enable-binlog               Enable binary logging of the restore data
  -h, --host                        The host to connect to
  -u, --user                        Username with the necessary privileges
  -p, --password                    User password
  -a, --ask-password                Prompt For User password
  -P, --port                        TCP/IP port to connect to
  -S, --socket                      UNIX domain socket file to use for connection
  -t, --threads                     还原使用的线程数量,默认是 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
  
还原全部库       
[mysql@wallet01 ~]$ myloader -u root -p abcd@1234 -o -d /home/mysql/backup 

还原指定的库
[mysql@wallet01 ~]$ myloader -u root -p abcd@1234 -o -s tpcc100 -d /home/mysql/backup 

备份的tpcc100库还原为tpcc200库
[mysql@wallet01 ~]$ myloader -u root -p abcd@1234 -o -B tpcc200 -s tpcc100 -d /home/mysql/backup

还原指定的表
[mysql@wallet01 ~]$ mysql -uroot -pabcd@1234 tpcc100 < /home/mysql/backup/tpcc100.customer-schema.sql

[mysql@wallet01 ~]$ mysql -uroot -pabcd@1234 tpcc100 < /home/mysql/backup/tpcc100.customer.sql

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...