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  #删压缩包

     

  • 查看更多参数:https://www.cnblogs.com/cqliyongqiang/p/9542386.html

最后修改于 2019-08-16 08:45:35
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇