前言: 细节提示:先执行 show global variables like 'log_bin';看看log_bin的值,如果服务器变量log_bin的值为OFF,需要修改my.cnf配置文件,将log_bin=mysql-bin,再重启MariaDB

  • mysqldump: 客户端SQL导出工具,通过mysql协议连接至mysqld服务器
(1)使用格式:
 
    mysqldump [选项] > backup.sql
 
 
(2)选项说明
 
    -A: 备份所有的数据库
 
    -B 数据库1, 数据库2, 数据库3:指定需要备份的数据库
 
    MyISAM, InnoDB: 温备
 
        -x 或 --lock-all-tables:锁定所有表
 
        -l 或 --lock-tables:锁定备份数据库中的表
 
 
    InnoDB:热备
 
        --single-transaction:启动一个大的单一事务实现备份
 
        -B 或 --databases 数据库1,数据库2:备份指定的数据库
 
        -C 或 --compress:压缩传输
 
注意:二进制文件不应该与数据文件放在同一个磁盘上
 
# 前言:由于mysqldump只能实现数据库中指定数据库或数据表的完全备份,无法实现对表的单行或多行的增量备份,那么对应增量备份,将使用二进制文件进行备份
 
 
第一步:
 
使用mysqldump做完全备份,其中使用 --master-data=2 选项会在hellodb.sql中增加一条注释说明完全备份的结束位置,并且会显示完全备份结束后,滚到到了那个日志文件
 
mysqldump -uroot -h192.168.23.11 -p123456 -B uplooking --lock-tables --flush-logs  > uplooking.sql
 
 
第二步:
 
对完全备份之后的时间点到当前时间点做增量备份,在需要备份的服务器上操作,其中8631是完全备份后的时间点,因此,将从这个点开始到最后的日志文件的SQL语句都备份出来
 
mysqlbinlog  /data/mysql/mysql-bin.000005 > increment.sql
 
(对于之后的每次增量做备份,可以无需指定开始时间,我们可以在增量备份之前将,二进制日志滚动,那么每次增量的时候,登入mysql使用 flush logs 命令,滚动日志,那么如何再有日志产生,将会写在下一个日志文件里,那么对于上一次增量备份到此时,可以直接使用客户端命令 mysqlbinlog  /data/mysql/mysql-bin.000005 > increment.sql , 再将备份文件拷贝到备份的数据库中就可以了)
 
 
第三步:
 
set sql_log_bin = OFF; # 关闭二进制文件
 
show variables like 'sql_log_bin'; # 查看状态
 
 
 
第四步:
 
将hellodb.sql和increment.sql文件都拷贝到对应的数据恢复的主机上,将备份的SQL文件进行导入(关闭备份数据库服务器的二进制日志功能)
 
mysql -p123456 < hellodb.sql
 
mysql -p123456 < increment.sql
 
 
第五步:
 
# 当关闭二进制文件之后再导入文件系统上保存的SQL文件,但是SQL文件不要放在/root目录下面,因为/root目录对其它用户的权限是0,而mysqld进程的属主和属组都是mysql,因此无法进入/root目录里面,去读取SQL文件,切记
 
# 导入了SQL文件之后,在开启二进制文件
 
set sql_log_bin = ON; # 开启二进制文件
 
show variables like 'sql_log_bin'; # 查看状态
 
 
注意:SQL文件进行导入的时候不能一个同样的SQL进行重复导入,如果是插入语句,就会一直插入值

MySQL 基于mysqldump备份工具实战演练的更多相关文章

  1. MySQL基于mysqldump及lvmsnapshot备份恢复

    一.备份对象 数据 配置文件 代码:存储过程,存储函数,触发器 跟复制相关的配置 二进制日志文件 二.备份工具 mysqldump:逻辑备份工具 InnoDB热备.MyISAM温备.Aria温备 备份 ...

  2. MySQL 的mysqldump备份

    MySQL 的mysqldump备份 来自<mysql技术内幕 innodb存储引擎> --single-transaction:只对innodb表有效 --lock-tables:对My ...

  3. MySQL备份和恢复[3]-mysqldump备份工具

    mysqldump 概述 逻辑备份工具: mysqldump, mydumper, phpMyAdmin Schema和数据存储在一起.巨大的SQL语句.单个巨大的备份文件 mysqldump:是My ...

  4. MySQL Backup mysqldump备份流程学习

    我们都知道MySQL逻辑备份工具mysqldump可以保证备份数据的一致性,但是它是怎么保持一致性的? 本文不讨论mysqldump具体的选项和用法,一直对mysqldump的工作机制梳理的不太清楚, ...

  5. mysql和mariadb备份工具xtrabackup和mariabackup(mariadb上版本必须用这个)

    简介 xtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server ...

  6. MySQL使用mysqldump备份及还原

    MySQL可以使用mysqldump进行数据的逻辑备份,配合开启bin log日志可以实现数据的全量恢复及增量恢复 MySQL版本查看 修改配置文件记录bin log日志 [mysqld] #bin ...

  7. 028:基于mysqldump备份脚本

    MySQL Backup and Recovery 一 MySQL Backup 1.功能 mysqldump全量和增量备份,通过最近一次备份刷新产生binlog来定位执行增量. 脚本下载地址 git ...

  8. 二十、mysql mysqldump备份工具

    .备份所有数据库 mysqldump -uroot -p --all-database > c:\all.sql 备份所有数据库到c盘下的all,sql文件 .备份某个数据库 mysqldump ...

  9. MySQL 基于xtrabackup备份—热备工具

    xtrabackup(仅对InnoDB存储引擎支持热备) percona公司开发 改进的MySQL分支:percona-server 存储引擎改进:InnoDB —> XtraDB 使用本地的R ...

随机推荐

  1. Flume的介绍和简单操作

    Flume是什么 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数 ...

  2. ruby on rails 环境搭建(mac or ubuntu)

    环境配置前操作 mac: app_store安装x-code ubuntu: 终端->配置文件->首选项->命令->以shell方式登录 安装RVM mac: $ ruby - ...

  3. Python 装饰器装饰类中的方法(转)

    def catch_exception(origin_func): def wrapper(self, *args, **kwargs): try: u = origin_func(self, *ar ...

  4. golang 错误处理与异常

    原文地址 golang 中的错误处理的哲学和 C 语言一样,函数通过返回错误类型(error)或者 bool 类型(不需要区分多种错误状态时)表明函数的执行结果,调用检查返回的错误类型值是否是 nil ...

  5. java课堂实践(5月17日)20155317 王新玮

    对P145 MathTool.java 代码托管 在IDEA中,使用JUnit进行单元测试,测试用例不少于三个,要包含正常情况,边界情况.提交测试代码和运行结果截图,加上学号水印,提交码云代码链接. ...

  6. Using Xpath With Default XML Namespace in C#

    If you have a XML file without any prefix in the namespace: <bookstore xmlns="http://www.con ...

  7. WPF 窗口句柄获取和设置

    原文:WPF 窗口句柄获取和设置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83347163 ...

  8. Potree学习总结

    一.      简介 基于Web端的三维模型展示,这里仅介绍Three.js和Potree. Three.js 是一款基于WebGL的运行在浏览器中的 3D 开源引擎,用它创建各种三维场景.它类似于M ...

  9. ELKStack入门篇(一)之ELK部署和使用

    一.ELKStack简介 1.ELK介绍 中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details ELK Stack包 ...

  10. javaweb(三十四)——使用JDBC处理MySQL大数据

    一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...