一、概述

线上有一个mysql,是在docker里面运行的。

为了避免数据丢失,需要做数据备份,但是不能影响mysql运行。所以这里采用xtrabackup

xtrabackup介绍

对于MySQL数据库的热备,xtrabackup是除了MySQL enterprise backup之外的不二之选。该工具提供了基于innodb存储引擎的热备,支持全量,增量备份,部分备份,时点恢复以及使用xtrabackup备份来重做slave等。xtrabackup工具包包含一个innobackupex命令行工具,同时支持InnoDB引擎以及MyISAM引擎。本文主要描述的是trabackup的备份原理并给出了相关演示。

xtrabackup工作原理

InnoDB引擎很大程度上与Oracle类似,使用redo,undo机制,因此在热备期间需要考虑对于日志缓冲区在线事物日志及时写出到文件的问题。如果log buffer没有及时写出将被日志的循环写特性覆盖。xtrabackup在启动时会记住log sequence number(LSN),然后一页一页地复制InnoDB的数据。与此同时,监控log buffer中的日志情况,一旦log buffer发生变化,即数据发生了不一致,该过程会立即被捕获并把变化的页面复制到xtrabckup log,直到全部innoDB数据文件复制完成之后,停止监控log buffer及日志复制。

xtrabackup在恢复期间对提交的事务前滚,未提交或失败的事务进行回滚,从而保证数据的一致性。因此对于InnoDB表在备份期间不会锁表。由于XtraBackup其内置的InnoDB库打开文件的时候是rw的,所以运行XtraBackup的用户,必须对InnoDB的数据文件具有读写权限。

extrabackup的备份步骤

二、xtrabackup运行

环境说明

操作系统:centos 7.6

ip地址:192.168.31.250

mysql数据目录(宿主机):/home/data

mysql备份目录(宿主机):/home/backup

说明:mysql容器和xtrabackup容器运行在同一台服务器上,因为xtrabackup运行过程中,需要读取mysql数据目录。

有3种方案安装xtrabackup,分别是:

编译安装

在线安装

docker封装

这里选择第3种方案,使用docker部署比较方案,方便迁移。

下载xtrabackup

找到Percona XtraBackup

这里选择2.4版本,8.0版本太新了。

选择centos7,下载percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm

镜像封装

这里以centos:7.8.2003作为基础镜像。

新建目录

mkdir -p /opt/centos7.8_xtrabackup

最终目录结构如下:

./├── dockerfile

└── percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm

dockerfile

FROM centos:7.8.2003ADD percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm /RUNyum install -y /percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm &&\yum clean all &&\rm -rf /percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm

生成镜像

docker build -t centos7.8_xtrabackup:v1 .

运行镜像

docker run -it -d \--name centos7.8_xtrabackup \--restart=always \-e TZ=Asia/Shanghai \-v /home/backup:/backup \-v /home/data:/data \

centos7.8_xtrabackup:v1

完整备份

进入docker

docker exec -it centos7.8_xtrabackup /bin/bash

执行以下命令

innobackupex --user=root --password=12456 --port=3306 --host=192.168.31.250 --socket=/data/mysql/data/mysqld.sock --datadir=/data/mysql/data --stream=tar /backup |gzip>/backup/mysql.tar.gz

输出:

...201110 15:39:17 [00] Streaming

201110 15:39:17 [00] ...donextrabackup: Transaction log of lsn (295739637) to (295739646) was copied.201110 15:39:17 completed OK!

有输出completed OK,表示备份成功。

参数说明:

--user #指定数据库备份用户

–password #指定数据库备份用户密码

–port #指定数据库端口

–host #指定备份主机

–socket #指定socket文件路径--datadir #指定mysql datadir路径--stream #指定流的格式做备份,–stream=tar,将备份文件归档

查看备份文件

[root@a241640e14f2 ]# ll /backup/total35548

-rw-r--r-- 1 root root 36400167 Nov 10 15:39 mysql.tar.gz

会发现,多了一个mysql.tar.gz

本文参考链接:

docker mysql 备份_docker mysql数据备份xtrabackup相关推荐

  1. mysql数据库的在线数据备份与数据恢复

    MySQL是一种常用的关系型数据库管理系统,它支持在线备份和恢复数据.在线备份指的是在MySQL数据库运行时备份数据,而不会中断或影响现有的数据库服务.在本文中,我们将介绍MySQL数据库的在线数据备 ...

  2. 用多备份将网站数据备份到百度云,七牛云存储,阿里云OSS,亚马逊S3,金山云等云存储服务上

    真正运营过网站的人都知道,数据对一个网站来说至关重要,因此,网站数据备份也是日常必做工作.因为误操作,网站被攻击等种种原因都会导致数据丢失,这时,你才会明白"有备无患"的道理.备份 ...

  3. 混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案

    前言 阿里云对象存储(OSS)用户众多.很多用户因为业务或者合规性需求,需要对OSS内的数据做备份,无论是线上备份,还是线下备份.用户可以选择使用OSS的开放API,按照业务需求,做数据的备份,也可以 ...

  4. 文件服务器文件多备份方案,FileYee数据备份四种备份方案详解

    原标题:FileYee数据备份四种备份方案详解 其实有很多用户对FileYee数据备份软件不是特别熟悉,今天小编带大家了解一下FileYee的四种备份方案,一定会让大家对于数据备份有一个新的了解. 之 ...

  5. mysql grant all privileges_MySQL数据备份及还原(一)

    关于删库跑路的事故现在已经屡见不鲜了,数据备份的必要性是企业数据管理极其重要的一项工作.关于数据备份.恢复也有很多场景及方法,本系列也会将主要的几种工具通过案例进行演示. 本系列将从逻辑备份及恢复开始 ...

  6. docker mysql 防火墙_docker mysql

    Docker Mysql 1.目录 2.拉取Docker Image docker pull mysql 3.创建配置文件 映射/docker/mysql/cnf目录到/etc/mysql/conf. ...

  7. 保证服务器宕机业务不中断,备特佳CDP容灾备份系统——服务器端数据备份软件 - 和力记易--CDP容灾备份专家...

    软件介绍: 备特佳CDP容灾备份系统是和力记易自主研发适用于服务器端数据备份的CDP容灾备份软件,是一款主要面向Windows.Linux.Unix平台下集数据库备份.文件备份.操作系统备份于一体的C ...

  8. 数据备份_天津数据备份工具多少钱

    天津数据备份工具多少钱 DFA7G4AH 天津数据备份工具多少钱 参观了解DIDC情况后,江凌表示,市委市一直非常重视工业设计行业的发展,但目前尚无专门针对扶持工业设计的.伴随着制造业的发展,产品零件 ...

  9. 苹果手机怎么备份所有数据_ORICO手机备份宝,数据备份更轻松

    数字时代的今天,内容的产生.记录.分享等都伴随着大量的数据流动,极大方便了生活的同时,数据丢失与备份的问题也随之而来.出游的时候想要拍照却发现手机空间不足而被迫删除其他照片:用手机记录孩子的成长上传至 ...

  10. oracle数据备份 恢复,Oracle数据备份和恢复

    Oracle数据库的备份和恢复有很多种方法,是一个很大的话题,足可以写一本书,但是,本文只介绍采用exp和imp进行数据备份和恢复,这也是程序员最常用的方法. 本文涉及的备份与恢复的其它概念都是狭义的 ...

最新文章

  1. 练笔——《卫子夫·三篇》
  2. git Rebase 代替合并
  3. mysql t添加注释_mysql—添加注释(comment)的用法
  4. JEECG - 基于代码生成器的J2EE智能开发框架 续五:权限设计
  5. 视频擦除方向研究(生成技术的一类)
  6. GitHub项目:自然语言处理领域的相关干货整理
  7. u-boot移植随笔:u-boot shell与ASCII码
  8. leetcode 61 Rotate List ----- java
  9. 知乎“下沉”,快手“上游”
  10. 国内国外最好的java开发论坛及站点 [转]
  11. 10、Cocos2dx 3.0游戏开发找小三之容器篇:Vector、Map、Value
  12. 小程序容器在一体化在线政务服务平台中的应用
  13. 【原创】小时候特别喜欢玩的强手棋游戏
  14. 汇编语言L0C,单片机汇编语言指令查表.doc
  15. Android 通过 WebView 请求下载 APK
  16. SAP ERP统驭科目
  17. 计算机连接无线网络的步骤,台式电脑连无线网步骤
  18. OPUS进行音频编码与解码
  19. 未来是一个三无的世界,三无具体指什么?
  20. 一行代码教你撩妹手到擒来html+css+js烟花告白3D相册(含音乐+可自定义文字)520表白/七夕情人节/求婚...

热门文章

  1. Atitit 搜索蓝牙设备 powershell的实现 java noede.js python 先用脚本语言python nodejs,不好实现。。Java 也不好实现。。 Netcore可以,
  2. Atitit 操作系统原理索引 目录 1. 操作系统原理(cpu,process,mem,file,device mana) 1 1.1. 第1章 操作系统概述 1 2. 处理器管理 2 2.1.
  3. Atitit 模块打包器(module bundler)的概念与使用 目录 1. 解决问题 1 1.1. 多js合并方便性能加载 1 1.2. 静态模块打包 2 1.3. 动态模块打包 2 2. 最
  4. Atitit 格式转换的艺术 以excel转换txt为例
  5. atitit 图像处理 体系树 科技树 v4 r130a .xlsx
  6. Atitit HTTP 认证机制基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)attilax总结Atitit HT
  7. Atitit.linq java的原理与实现 解释器模式
  8. Atitit.java c++指针使用总结O7
  9. paip.防止代码命名重复的好方法
  10. Python :h5py 如何对dataset进行重新赋值?