mysql备份还原方案xtrabackup

摘要:mysql当数据库过大的时候,使用mysqldump的方式进行备份是一种非常慢的操作,500G的数据就够你备份一天一夜,我发现了一种mysql快速备份的方案,它使用文件存储的方式进行备份,支持全量和增量备份,这里所写为全量方式(如果可以接受备份开始到下次恢复之间的数据丢失时使用)。xtrabackup的备份速度很快,不管有多少的数据,备份速度完全是依赖于磁盘的读写速度,还支持压缩、不打断正在执行的事务、自动实现备份检验(用mysqldump会锁表,要加上可重复读--single-transaction才不会影响线上的程序写表,但是写表后的东西在还原的时候就会丢了,这也是全量备份的痛点)

特点

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

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

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

(4)自动实现备份检验

(5)还原速度快

准备mysql备份组件需要的安装包

检查服务器是centos6版本还是centos7+版本。选择安装包

安装备份工具

以下所有操作如果是在集群下,要在一个主节点上操作,操作一次即可,启动时设置主节点为被同步节点,集群的管理我们以后再讨论。

1. 上传并解压

假设当前系统是centos6+,使用Percona-XtraBackup-2.4.12-r170eb8c-el6-x86_64-bundle.tar包,拷贝到系统/tmp/backup_mariadb20181127目录下(没有则创建,日期写当天),使用tar xvf Percona-XtraBackup-2.4.12-r170eb8c-el6-x86_64-bundle.tar命令解压,你可以得到以下文件。

2. 安装rpm包

执行以下命令

3. 检查是否安装成功

按以下显示则安装成功

开始备份

1. 执行命令开始备份

执行以下命令开始备份,其中/etc/my.cnf为mysql配置文件位置,10.123.2.4为mysql绑定的ip(写当前机器的ip),user1为用户名,123456Abc为密码,/tmp/backup_mariadb20181127为备份文件所在目录,所有按实际环境填写。此处我们只备份cloud库所以--databases库就不用改动了

如果只需要备份其中一个或多个数据库,可以加参数--databases="cloud test",其中cloud和test是库名

可以使用--use-memory= (例如: 1MB, 1M, 1GB, 1G)选项加速,在不指定内存大小的情况下,默认会占用100MB的内存。

2. 检查是否备份成功

最后一行显示completed OK! 则备份成功,在所执行的目录下(此处是/tmp/backup_mariadb20181127)会出现备份的文件

可以看到文件结构,我们此处自动生成的备份文件夹名为2018-11-27_11-52-48,是一个以时间命名的文件夹

还原备份

1. 事务日志应用到备份

备份出的数据并不能直接使用,因为备份出的数据是不一致的,我们还需要将同时备份出的事务日志应用到备份中,才能得到一份完整、一致、可用的数据,xtrabackup称这一步操作为prepare,也就是还原数据前的"准备"工作。

在事务日志容量很大的情况下,可以使用--use-memory= (例如: 1MB, 1M, 1GB, 1G)选项加速,在不指定内存大小的情况下,默认会占用100MB的内存。

输出最后如下就为正确

2. 恢复数据

方法一、此处使用该方法,适用于备份部分数据库的方法

数据目录在/data/mariadb/data,我们备份的数据库为cloud库。

进入mysql命令行mysql -A,删除cloud库drop database cloud;(如果无法进入命令行则到数据目录下直接干掉cloud文件夹,集群操作的话必须通过drop或者先停止集群,确定好主从模式)

执行命令

方法二、先停止数据库服务/etc/init.d/mysqld stop,且对应的数据目录(此处是/data/mariadb/data)为空,如果不为空,手动删除,一般此方法针对全量备份的方法。

--copy-back:对应的目录就是我们准备好的可用数据的目录。此处为/tmp/backup_mariadb20181127/2018-11-27_11-52-48

--datadir:指定的目录就是还原后数据要存放的目录,如果my.cnf设置了datadir,可以省略--datadir,执行copyback时会读取my.cnf中的配置,datadir目录必须为空目录,如果不为空,手动删除。

3. 设置属主属组为mysql并启动

此时我们还不能启动mysql,因为我们是使用root用户拷贝的数据,所以数据目录中的数据文件的属主属组仍然为root,我们需要将这些文件的属主属组设置为mysql。

引用

mysql 协议还原_mysql备份还原方案xtrabackup相关推荐

  1. MySQL 8.0.15备份还原 MySQL 5.7.17

    MySQL 8.0.15备份还原 MySQL 5.7.17 问题场景 解决方案 报错及替换后结果 问题场景 MySQL 8.0.1版本数据库备份 还原到 MySQL 5.7.17 数据库中:报错: 解 ...

  2. mysql 5.6.17 备份还原_mysql 备份和恢复

    7. 备份和恢复 本章主要会介绍: 1.备份的类型:逻辑备份,物理备份,全备和增量4种 2.创建备份的方法 3.还原方法,包括还原到时间点 4.备份计划,压缩和加密 5.表维护,恢复损坏的表 7.1备 ...

  3. mysql zip 还原_mysql 压缩还原数据库

    MySQL数据库备份和还原的常用命令 其实很多情况下mysql备份就是采用了这些命令,例如: mysql导入和导出数据 linux自动定时备份web程序和mysql数据库 备份MySQL数据库的命令 ...

  4. mysql在linux下备份还原,Linux下MySQL的备份与还原

    Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...

  5. oracle导入导出还原,Oracle 备份 还原 数据库 导入导出

    导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP ROWS=N //不保存数据: 导出 EXP USER/PASSWORD@ODBC FILE=C:\***.DMP  ...

  6. mysql 协议说明_MySQL认证协议_MySQL

    本文是针对MySQL 5.5.9写的.MySQL协议是向老版本兼容的.老版本的MySQL Client可能不理解下面的某些字段而忽略掉. 实际使用的时候,服务器的协议版本应当大于等于客户端.遗憾的是, ...

  7. mysql备份后缀是什么_mysql备份还原

    一.备份常用操作基本命令 1.备份命令mysqldump格式 格式:mysqldump -h主机名  -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 2.备份M ...

  8. MySQL - 日常操作二 备份还原

    登录mysql的命令 # 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 mysql -h 110.110.110.110 -P3306 -uroot -p mysql -uroot ...

  9. 用mysql命令还原_mysql——数据还原——使用mysql命令还原

    备份文件中通常包含create语句和insert语句,mysql命令可以执行备份文件中的create语句和insert语句: 通过create语句来创建数据库和表,通过insert语句来插入备份的数据 ...

  10. Mysql学习总结(48)——MySql的日志与备份还原

    一.错误日志 当数据库出现任何故障导致无法使用时,第一时间先去查看该日志 1.服务器启动关闭过程中的信息 2.服务器运行过程中的错误信息 日志存放路径,可以通过命令查看:

最新文章

  1. ubuntu12.04没有输入法。。
  2. 卡通渲染进阶 = toonlighting + outline + rimlighting + hair specular
  3. .Net学习笔记----2015-06-30(超市收银系统01-仓库类)
  4. java指令导出data文件_直接用 java 命令行动态生成jpg文件 (转)
  5. python画大对勾_python+selenium个人学习笔记8-获取信息和勾选框
  6. JAVA动漫论坛BBS系统的设计与实现
  7. 《时空幻境》Braid.v1.010.r2-RES-patch
  8. linux 安装.gz文件,linux安装gz文件命令
  9. 数学分析教程(科大)——1.3笔记+习题
  10. 客户端修改服务器的cookie,客户端与服务器cookie
  11. 从USB获得高效的双轨电源
  12. 【CTS】Ubuntu下安装CTS测试环境
  13. 修改文件句柄:ulimit 系统设置脚本(避免设置不彻底而无效)
  14. 治疗贫血的几款食疗方
  15. 《Maven官方文档》Maven 开发
  16. 自由曲面光学元件的OAM测量
  17. Mysql整型id和uuid区别
  18. LADY M过了自己的“赏味期限”?
  19. php工作便签,便签本的正确使用方法
  20. 论文阅读笔记《Fine-tuning Deep Neural Networks in Continuous Learning Scenarios》

热门文章

  1. 修改mongodb oplog size
  2. 删除exchange误发邮件
  3. jetty源码阅读总结1
  4. 网络模拟器NS-2及其应用分析
  5. 2018年java技术面试题整理
  6. JavaScript题 - 应用
  7. Spring异步任务处理,@Async的配置和使用
  8. 使用scp从远程服务器下载文件到本地
  9. Swift 变量、常量、数据类型
  10. @RequestMapping测试各种访问方式