mysqldump备份工具
优点:逻辑备份工具,都是SQL语句,都是文本格式,便于压缩
缺点:备份效率较慢
mysqldump常用参数
- -A,--all-databases 全库备份
[root@db01 ~]# mkdir -p /data/mysql/backup [root@db01 ~]# mysqldump -uroot -p123456 -A >/data/mysql/backup/full.sql Warning: Using a password on the command line interface can be insecure. [root@db01 ~]# cd /data/mysql/backup/ [root@db01 backup]# ll total 884 -rw-r--r-- 1 root root 901685 Aug 15 09:04 full.sql [root@db01 backup]#
-
单库备份 -B 增加建库(create)及“use库”的语句,可以直接接多个库名,同时 备份多个库
[root@db01 backup]# mysqldump -uroot -p123456 -B world >/data/mysql/backup/world.sql #等效 [root@db01 backup]# mysqldump -uroot -p123456 world >/data/mysql/backup/world.sql
多库备份:(需要加-B参数)
[root@db01 backup]# mysqldump -uroot -p123456 -B world table01 table02 >/data/mysql/backup/world.sql
不加-B参数则是 备份 database.table
[root@db01 backup]# mysqldump -uroot -p123456 world table01 >/data/mysql/backup/table01.sql
-
备份多个表:
mysqldump 库1 表1 表2 表3 >库1.sql
mysqldump 库2 表1 表2 表3 >库2.sql -
-R, --routines 备份存储过程和函数数据
-
--triggers 备份触发器数据
-
-F, --flush-logs 刷新binlog日志(回顾binlog)
每天晚上0点备份数据库,每个库都会刷新一次,相当于每个数据库的日志对应一个文件mysqldump -A -B -F >/opt/$(date +%F).sql [root@db02 ~]# ll /application/mysql/logs/ -rw-rw---- 1 mysql mysql 168 Jun 21 12:06 oldboy-bin.000001 -rw-rw---- 1 mysql mysql 168 Jun 21 12:06 oldboy-bin.000002 -rw-rw---- 1 mysql mysql 210 Jun 21 12:07 oldboy-bin.index
-
--master-data={1|2} 告诉你备份后时刻的binlog位置
# 1 非注释,要执行(主从复制)
# 2 注释mysqldump -uroot -p123456 -A --master-data=2 >/data/mysql/backup/full.sql
查看full.sql文件的第22行,如下,会记录开始备份时的二进制日志位置。
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=331
-
锁表:适合所有引擎(myisam,innodb) --温备
-x, --lock-all-tables -l, --lock-tables
mysqldump -B -x oldboy >/opt/t.sql -
基于事务引擎:不用锁表就可以获得一致性的备份.
-
--single-transaction 对innodb引擎进行热备 ,原理:通过快照方式 (无需锁表)
-
压缩备份:适合多引擎混合(例如:myisam与innodb混合)
[root@db01 backup]# mysqldump -uroot -p123456 -A -R --triggers --master-data=2 --single-transaction |gzip>/data/mysql/backup/all_$(date +%F).sql.gz Warning: Using a password on the command line interface can be insecure. [root@db01 backup]# ll total 1388 -rw-r--r-- 1 root root 266834 Aug 15 10:04 all_2019-08-15.sql.gz
解压:
zcat t.sql.gz >t1.sql #解压 gzip -d t.sql.gz #删压缩包

