广告
返回顶部
首页 > 资讯 > 数据库 >xtrabackup备份msyql数据库
  • 272
分享到

xtrabackup备份msyql数据库

2024-04-02 19:04:59 272人浏览 安东尼
摘要

 简介:Xtrabackup是由percona提供的Mysql数据库备份工具,可以对Innodb数据库做热备特点:(1)备份过程快速、可靠(2)备份过程不会打断正在执行的事务(3)能够基于压缩等功

 

简介:

Xtrabackup是由percona提供的Mysql数据库备份工具,可以对Innodb数据库做热备

特点:

(1)备份过程快速、可靠

(2)备份过程不会打断正在执行的事务

(3)能够基于压缩等功能节约磁盘空间和流量

(4)自动实现备份检验

(5)还原速度快

准备工作:

1.安装xtrabackup(在percona官网下载rpm包)

# yum install percona-xtrabackup-2.2.3-4982.el6.x86_64.rpm

 

2.创建最小权限用户

 MariaDB [(none)]>grant reload,lock tables,replication client on *.* to 'backupuser'@'localhost' identified by 'backuppassWord';

 

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.04 sec)

 

开始备份:(模拟线上环境)

1.完全备份(生成的备份目录为2015-04-09_02-35-22)

# innobackupex --user=backupuser --password=backuppassword /backup/

若显示以下内容即为备份成功:

150409 02:35:25  innobackupex: Connection to database server closed

150409 02:35:25  innobackupex: completed OK!

 

若显示以下错误信息:在my.cnf文件[mysqld] 中添加innodb_log_file_size = 5M 

InnoDB: Error: log file ./ib_logfile0 is of different size 5242880 bytes

InnoDB: than specified in the .cnf file 50331648 bytes!

innobackupex: Error: The xtrabackup child process has died at /usr/bin/innobackupex line 2672.

 

 

2.在数据库插入数据,模拟msyqld正常线上运行第一天

MariaDB [(none)]> create database xx;

Query OK, 1 row affected (0.00 sec)

 

3.执行增量备份(生成2015-04-09_02-59-13,此时--incremental-basedir则应该指为完全备份的目录2015-04-09_02-35-22)

注意:增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表而言,执行增量备份时其实进行的是完全备份

 

# innobackupex --incremental /backup/ --incremental-basedir=/backup/2015-04-09_02-35-22/

显示以下信息即为增量备份成功:

innobackupex: Mysql binlog position: filename 'mysql-bin.000001', position 324

150409 02:59:18  innobackupex: Connection to database server closed

150409 02:59:18  innobackupex: completed OK!

 

4.再次在数据库插入数据,模拟mysqld正常线上运行第二天

MariaDB [(none)]> create database yy;

Query OK, 1 row affected (0.00 sec)

 

5.再次执行增量备份(生成2015-04-09_03-00-38,此时--incremental-basedi则应该指为上一次增量备份的目录2015-04-09_02-59-13)

# innobackupex --incremental /backup/ --incremental-basedir=/backup/2015-04-09_02-59-13/

 

6.再次在数据库插入数据,模拟mysqld正常线上运行第三天

MariaDB [(none)]> create database zz;

Query OK, 1 row affected (0.00 sec)

 

7.模拟事故,停掉mysqld,删除/data目录下的数据

注意:线上环境应该将二进制日志文件(binlog)和数据文件分开存放;

# service mysqld stop

说明:因为此处实验我并没有将二进制日志文件和数据分开存放,所以我先将二进制日志复制到其他目录再删除数据

# cp mysql-bin.000001  /backup/

# rm /data/* -rf

 

8.查看上一次增量备份,二进制日志最后记录position的位置

# cat /backup/2015-04-09_03-00-38/xtrabackup_binlog_info

mysql-bin.000001        479        

 

9.导出二进制日志,从最后备份的position开始

# mysqlbinlog mysql-bin.000001 --start-position="479">/backup/binlog.sql

 

恢复数据:

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态

“准备”(prepare)增量备份与整理完全备份有着一些不同,尤其要注意的是:

(1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。

(2)基于所有的备份将未提交的事务进行“回滚”。

 

此时备份目录下的所有文件:

xtrabackup备份msyql数据库

按排列顺序:完全备份文件  第一次增量备份文件  第二次增量备份文件  导出的部分二进制日志文件  所有的二进制日志文件

 

 

1.整理合并备份文件

# innobackupex --apply-log --redo-only /backup/2015-04-09_02-35-22/

 

将第一个增量备份合并到完全备份中

# innobackupex --apply-log --redo-only /backup/2015-04-09_02-35-22/ --incremental-dir=/backup/2015-04-09_02-59-13/

 

将第二个增量备份合并到完全备份中

# innobackupex --apply-log --redo-only /backup/2015-04-09_02-35-22/ --incremental-dir=/backup/2015-04-09_03-00-38/

注意:假如我们在每周日晚上00:00点做完全备份,在周1-周6晚上00:00点做增量备份,刚好有用户一直在00:00点前一直在操作,并且在00:01分才提交事务,所以为了避免系统自动将备份时候未提交的事务做回滚操作,所以我们需要加上--redo-only参数,让其只提交事务,而不回滚事务。到最后系统会判定哪些是需要回滚的操作执行回滚

 

2.恢复操作

# innobackupex --copy-back /backup/2015-04-09_02-35-22/

 

3.改变恢复后数据目录(/data)下文件的属主属组为msyql

# chown -R mysql.mysql /data/*

 

4.查看数据库有备份的内容有无恢复

# service mysqld start

 

xtrabackup备份msyql数据库

可以看到备份的数据已经恢复

 

5.通过二进制日志恢复未来得及备份的数据

# mysql <binlog.sql

 

xtrabackup备份msyql数据库

可以看到未来的及备份的数据也通过二进制日志恢复

 

-------------------------------完成。-------------------------------------

 

您可能感兴趣的文档:

--结束END--

本文标题: xtrabackup备份msyql数据库

本文链接: https://www.lsjlt.com/news/48022.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • xtrabackup备份msyql数据库
     简介:Xtrabackup是由percona提供的mysql数据库备份工具,可以对Innodb数据库做热备特点:(1)备份过程快速、可靠(2)备份过程不会打断正在执行的事务(3)能够基于压缩等功...
    99+
    2022-10-18
  • Xtrabackup备份数据库
    Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。   Xtr...
    99+
    2022-10-18
  • Xtrabackup备份mysql数据库
    Xtrabackup由percona提供percona Xtrabackup是一个自由、开源的完整的在线备份工具,支持mysql、perconna server、mariadb到官网https://www....
    99+
    2022-10-18
  • 使用XtraBackup 备份MySQL数据库
    本次测试使用XtraBackup备份MySQL数据库版本:XtraBackup2.4.5+MySQL5.7.16下载地址:https://www.percona.com/downloads/XtraBack...
    99+
    2022-10-18
  • xtrabackup如何备份mysql数据库
    参考:http://mingxiao.blog.51cto.com/8124243/1623634一 全备1.命令安装:yum install -y gnupg rpm&nbs...
    99+
    2022-10-18
  • mariadb数据库 xtrabackup 备份工具
    XtraBackup备份工具三步骤 1.安装XtraBackup软件包。 2.使用XtraBackup执行完整备份、增量备份。 3.准备数据恢复目录。 需要yum -y install perl-DBD-M...
    99+
    2022-10-18
  • xtrabackup备份恢复MySQL数据库
    1. 全量备份恢复: 查看原表内容: MariaDB [(none)]> select * from testdb.students; +----+------------+------...
    99+
    2022-10-18
  • 使用xtrabackup备份MySQL数据库
    前言 Xtrabackup提供了两种命令行工具: xtrabackup:专用于备份InnoDB和XtraDB引擎的数据; innobackupex:是一个perl脚本,在执行过程中会调用xtraback...
    99+
    2022-10-18
  • xtrabackup 实现MySQL数据库备份
    mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的 数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。 这时就 需要一种好用又高效的工具,xtr...
    99+
    2018-06-08
    xtrabackup 实现MySQL数据库备份 数据库入门 数据库基础教程 数据库 mysql
  • XtraBackup 备份还原 MySQL 5.6 数据库
    下载XtraBackup:# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.6/binary/tarbal...
    99+
    2022-10-18
  • xtrabackup进行MySQL数据库备份/还原
    http://hongge.blog.51cto.com/使用xtrabackup进行MySQL数据库备份前面介绍mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于5...
    99+
    2022-10-18
  • 如何配置xtrabackup备份mysql数据库
    这篇文章将为大家详细讲解有关如何配置xtrabackup备份mysql数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1    安装yum源:yu...
    99+
    2022-10-18
  • mysql数据库xtrabackup压缩备份测试
         网上有篇文章为:TB级mysql数据之xtrabackup压缩备份迁移方案,今天自己亲测下,看看效果。结论在最后给出。简单介绍下环境: win7下安装的vmware ...
    99+
    2022-10-18
  • 如何使用Xtrabackup备份MySQL数据库
    这篇文章将为大家详细讲解有关如何使用Xtrabackup备份MySQL数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文则演示如何从xtrabackup的备份中进行...
    99+
    2022-10-18
  • 怎么使用Xtrabackup备份MySQL数据库
    这篇文章主要为大家展示了“怎么使用Xtrabackup备份MySQL数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用Xtrabackup备份MySQ...
    99+
    2022-10-18
  • 使用xtrabackup备份innodb引擎的数据库
    innodb引擎的数据库可以使用mysqldump备份,如果表很大几十个G甚至上百G,显示用mysqldump备份会非常慢。然后使用xtrabackup 可以很快的在线备份innodb数据库。InnoDB ...
    99+
    2022-10-18
  • XtraBackup备份还原MySQL数据库的过程
    本篇内容介绍了“XtraBackup备份还原MySQL数据库的过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-18
  • msyql 数据库
    ### 忘记密码vim /etc/my.cf在[mysqld]中添加 skip-grant-tables重启Mysql现在可以直接进入mysql,改掉root密码执行以下命令USE mysql;UPDAT&...
    99+
    2022-10-18
  • XtraBackup MySql 数据备份和恢复
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/6/x86_64/percona-xtrabackup-24...
    99+
    2017-01-22
    XtraBackup MySql 数据备份和恢复
  • xtrabackup全量、增量备份恢复mysql数据库
    一. 全量备份恢复: 查看原表内容: MariaDB [(none)]> select * from testdb.students; +----+------------+------...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作