暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mysql逻辑全量备份-mysqldump

Java软件编程之家 2019-09-11
112

mysql逻辑备份典型工具代表是mysqldump,一般数据量不大的情况通过mysqldump进行定时全量逻辑备份完全能够胜任。下面我们就演示如何使用mysqldump实现逻辑全量备份。


mysqldump-备份

 官方文档:https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html


备份命令:

    mysqldump \
    -hlocalhost \
    -P3306 \
    -uroot \
    --single-transaction \
    --flush-logs \
    --events \
    --master-data=2 \
    --routines \
    --triggers \
    --flush-privileges \
    --default-character-set=utf8 \
    --databases test_backup > opt/backup/mysql/logic/full/`date +%Y-%m-%d`.sql

    --single-transaction: 基于InnoDB表保证数据一致性,但不要同时使用--lock-all-tables--lock-table --master-data=2 记录备份那一时刻的二进制日志的位置-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=154;这行语句),并且注释掉,1是不注释的---databases 指定导出的数据库,注意--all--databases可以导出所有数据库,但是要注意很多mysql默认数据库会缺失,比较多坑;

    --flush-logs在开始转储之前(一般在锁住表后备份前)新创建一个MySQL二进制日志文件,例如mysql-bin.000005通过flush-logs命令后目录下会多一个mysql-bin.000006,并且新的日志会写到新创建的000006文件下。这个命令很有作用,可以避免从文件中间进行操作。

    --routines从转储的数据库转储存储的例程(过程和函数)

    --triggers备份表相关触发器

    --events:备份事件信息

    --flush-privileges:导出mysql数据库权限,虽然这里没什么用,一般生产配合--all-databases一起使用。


    mysqldump-恢复

    注意,建议根据前面文章【理解Mysql备份和恢复】恢复指导思想进行操作,下面模拟发生数据库故障导致数据损坏

      rm -rf usr/local/mysql/data/test_backup/*

       

      开始模拟恢复数据。

      1、关闭mysql服务

      由于mysqldump不能真正关闭mysql服务,所以这里关闭意义是关闭外部访问,可以修改配置文件my.cnf添加配置skip-networking然后重启mysql服务

      2、开始恢复

      # 根据恢复指导思想,需要对故障数据库现场保留一份

      tar -zcvf mysql.tar.gz usr/local/mysql

      # 必须先删除故障数据库

      drop database test_backup;

      # 再手工创建

      create database test_backup;

      # 关闭二进制日志记录,防止重复记录

      set sql_log_bin=0;

      source /opt/backup/mysql/logic/full/2019-09-09.sql;

      # 开启二进制日志记录

      set sql_log_bin=1;

       

      也可以使用mysql test_backup < /opt/backup/mysql/logic/full/2019-09-09.sql进行恢复。该命令不需要登录进入mysql命令行执行,而是在服务器命令行执行。

      3、查看恢复情况

       


       至此,通过mysqldump实现逻辑全量备份演示完毕!


      文章转载自Java软件编程之家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论