0

0

用xtrabackup备份mysql数据库方法指导

巴扎黑

巴扎黑

发布时间:2017-07-19 11:32:03

|

1384人浏览过

|

来源于php中文网

原创

xtrabackup是由percona提供的mysql备份工具,它是一款物理备份工具,通过连接数据库把数据库的数据备份出来。对于innodb存储引擎其支持全量备份和增量备份。对于myisam存储引擎只支持增量备份。因为xtrabackup对innodb的增量备份是基于表空间的LSN进行的,所谓LSN即:表空间分成多个数据块,每个数据块都有相应的序列号,当数据块数据发生变化则更新序列号。全量备份即备份所有数据块,则增量备份则基于全量备份最后一个数据块的序列号到最新的数据块序列号进行备份。因为myisam不支持表空间,所以不能进行增量备份。Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。Xtrabackup中主要包含两个工具:xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构;innobackupex:是将xtrabackup进行封装的perl脚本,可以备份和恢复MyISAM表以及数据表结构。

xtrabackup备份出来的数据包括:

  • 表空间

  • 数据文件

  • 二进制日志

  • 事务日志
    ...

xtrabackup在进行数据恢复之前需要注意如下要点:

  1. 如果有增量备份则需要在恢复之前先进行增量备份和全备份的合并再恢复;

  2. 如果是支持事务的表的备份,则恢复之前需要先进行事务日志的回滚和提交操作;

  3. 如果是多个连续的备份操作,则只需要提交事务日志,不需要回滚,只有在全部备份操作合成之后再进行事务的回滚;

此文通过详细的实验步骤来演示xtrabackup的使用方法。
实验步骤

  1. 一台centos7虚拟机,安装mariadb-5.5.52版本的数据库,首先通过sql脚本导入hellodb测试库,其包括一个students数据表,此实验在students表中进行操作,命令如下:
    mysql -uroot

  2. 安装xtrabackup,可以从官方网站下载安装包,然后通过yum进行安装,下载站点为:,此处不再演示安装过程;

  3. xtrabackup的主要命令为innobackupex,通过innobackupex --help或者man手册可以获取到帮助信息;

  4. 数据库已经导入,此时可以进行数据库的备份操作,先进行数据库的全量备份和恢复:

  • xtrabackup_binlog_info:记录二进制日志的内容;

  • xtrabackup_checkpoints:记录备份类型,开始和结束的lsn编号等备份信息;

  • xtrabackup_info:记录更详细的备份信息,如是否为所有库备份,是否压缩,备份执行的命令等信息;

    简灰服装商城整站 For SHOPEX
    简灰服装商城整站 For SHOPEX

    SHOPEX简灰服装商城整站源码下载。 安装方法:1.解压上传程序至网站根目录.. 访问:域名/bak.(用户名:admin 密码:123456)2.进入帝国备份王后,配置数据库数据库信息.选择-www.taomoban.net目录.还原数据库.3.修改FTP目录下的config/config.phpphp 数据库连接信息.4.登陆网站后台--清空缓存..5.删除bak文件夹 后台:shopadm

    下载
  • xtrabackup_logfile:记录的是事务日志,为二进制文件,不可查看;

  1. 首先确保数据库已经开启二进制日志,通过show global variables like 'log_bin';命令可以看到是否已经开启,通过show binary logs;可以看到目前正在使用的二进制日志是哪一个;

  2. 通过xtrabackup进行备份,数据备份到/data/backup目录下,备份完成会在指定目录下生成一个以当前时间命名的文件夹:
    innobackupex -u root /data/backup

  3. 文件夹内容如下:
    用xtrabackup备份mysql数据库方法指导

  4. 此时就备份成功了,然后演示数据库的恢复操作。注意:恢复之前需要首先停止数据库服务:
    innobackupex --apply-log 2017-07-13_21-02-07/ #首先进行事务日志的提交和回滚     innobackupex --copy-back 2017-07-13_21-02-07/ #进行数据恢复,会自动把数据恢复到mysql的数据目录下

  5. 恢复成功之后所有已经恢复数据的属主和属组都是root用户,需要修改成mysql用户才能登陆数据库;

  6. 此时登陆数据库即可看到所有数据都已经恢复了。

  • 这次演示增量备份和恢复操作:

    • 生产环境建议二进制日志和数据文件分开放在不同磁盘,因为二进制文件可以用来进行时间点恢复,可以尽可能保证丢失更少的数据,如果二进制文件也丢失,则可能会丢失大量数据;

    • 在数据恢复操作完成之后一定要再进行一次数据的全备份,保证数据安全;

    1. 往数据库中插入几条新的信息,然后进行数据库的增量备份;

    2. 通过如下命令进行数据库的增量备份,备份成功之后还是会在/data/backup目录下生成一个新的以时间命名的文件夹:
      innobackupex -u root -p 1234567a --incremental --incremental-basedir=/data/backup/2017-07-13_21-07-23/ /data/backup/

    3. 然后停掉数据库服务,删除数据库目录下的所有数据,进行数据恢复操作,步骤如下:
      innobackupex --apply-log --redo-only 2017-07-13_22-16-19/ #进行全量备份的事务提交,但是不回滚未提交事务,因为未提交事务可能在下次的增量备份中提交     innobackupex --apply-log --redo-only 2017-07-13_22-16-19/ --incremental-dir=2017-07-13_22-18-34/ #进行增量备份和全备份的合成已经事务提交工作     innobackupex --apply-log 2017-07-13_22-16-19/ #对于全备份也没有完成的事务进行回滚操作     innobackupex --copy-back 2017-07-13_22-16-19/ #此时采用全备份即可恢复数据,不再需要增量备份,因为已经进行了备份的合成操作

    4. 同样需要修改恢复完成数据的属主和属组,然后登陆数据库即可看到完整是数据,此时实验演示完成。

      注意:

    相关专题

    更多
    java数据库连接教程大全
    java数据库连接教程大全

    本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

    20

    2026.01.15

    Java音频处理教程汇总
    Java音频处理教程汇总

    本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

    5

    2026.01.15

    windows查看wifi密码教程大全
    windows查看wifi密码教程大全

    本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

    27

    2026.01.15

    浏览器缓存清理方法汇总
    浏览器缓存清理方法汇总

    本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

    2

    2026.01.15

    ps图片相关教程汇总
    ps图片相关教程汇总

    本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

    7

    2026.01.15

    ppt一键生成相关合集
    ppt一键生成相关合集

    本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

    3

    2026.01.15

    php图片上传教程汇总
    php图片上传教程汇总

    本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

    2

    2026.01.15

    phpstorm相关教程大全
    phpstorm相关教程大全

    本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

    4

    2026.01.15

    Golang gRPC 服务开发与Protobuf实战
    Golang gRPC 服务开发与Protobuf实战

    本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

    16

    2026.01.15

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    MySQL 教程
    MySQL 教程

    共48课时 | 1.8万人学习

    MySQL 初学入门(mosh老师)
    MySQL 初学入门(mosh老师)

    共3课时 | 0.3万人学习

    简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信

    共1课时 | 793人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号