热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

innobackupex备份文件中没有mysql库_记一次innobackupex备份恢复数据库过程

简介:以前备份都是通过mysqldump备份数据库的,由于是逻辑备份,所以采用这种备份方式数据是很安全的,跨平台、版本都很容

简介:以前备份都是通过mysqldump备份数据库的,由于是逻辑备份,所以采用这种备份方式数据是很安全的,跨平台、版本都很容易。

凡事有利必有弊,逻辑备份在你数据库比较大时,备份、恢复数据所耗费的时间也是蛮长的,所以要不断改进,可以使用物理备份。

Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品。Xtrabackup由个部分组成:xtrabackup和innobackupex,其中xtrabackup工具用于备份innodb和 xtraDB引擎的表;而innobackupex工具用于备份myisam和innodb引擎的表。

一.工具安装

[root@danny ~]# yum -y list |grep xtrabackup

percona-xtrabackup.x86_64 2.3.-.el7 @epel

holland-xtrabackup.noarch 1.1.-.el7 epel

percona-xtrabackup-test.x86_64 2.3.-.el7 epel

[root@danny ~]# yum -y install percona-xtrabackup

二.全量备份

#全备

innobackupex --defaults-file=/etc/my.cnf --user=root --password= /data/

#该语句将拷贝数据文件(由my.cnf里的变量datadir指定)至备份目录下(/data),注意:如果不指定--defaults-file,默认值为/etc/my.cnf。

备份成功后,将在备份目录下创建一个时间戳目录(本例创建的目录为/data/--18_13--/),在该目录下存放备份文件。

#在/data目录下可看到备份目录如下

[root@danny data]# ls

--18_13--

#查看原mysql库目录和当前备份目录区别

[root@izm5edykqg8tzid352ga0iz data]# ls /var/lib/mysql.bak/

auto.cnf ibdata1 lfc_oasys mysql-bin. mysql-bin.index relay-log.info sshmall

binlog_rollback.py ib_logfile0 lfc_wm mysql-bin. mysqld-relay-bin. rollback T1

diymall ib_logfile1 master.info mysqld-relay-bin.index rollback.sql wordpress

electronicproductssh_db lfcmall mysql mysql-bin. performance_schema sdbp2

[root@izm5edykqg8tzid352ga0iz data]# ls /data/--18_13--/

backup-my.cnf ibdata1 lfcmall mysql sdbp2 wordpress xtrabackup_checkpoints

diymall ib_logfile0 lfc_oasys performance_schema sshmall xtrabackup_binlog_info xtrabackup_info

electronicproductssh_db ib_logfile1 lfc_wm rollback T1 xtrabackup_binlog_pos_innodb xtrabackup_logfile

三.备份恢复

注:恢复之前,要先关闭数据库,并且删除数据文件和日志文件(本次我直接删除mysql目录下所有文件--有备份),否则恢复时会报错。

/etc/init.d/mysqld stop

rm -rf /var/lib/mysql/*

innobackupex --defaults-files=/etc/my.cnf --user=root --password=123456 --apply-log /data/2019-02-18_13-15-45/

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /data/2019-02-18_13-15-45/

从上面可以看出,恢复分为两个步骤

第1步是apply-log,为了加快速度,一般建议设置--use-memory,如:--use-memory=6G,这个步骤完成之后,目录/data/2019-02-18_13-15-45/下的备份文件已经准备就绪。

注意:准备全备文件的操作只是对备份集(/data/2019-02-18_13-15-45)本身做相关处理,所以在准备恢复前最好对备份集再次备份

第2步是copy-back,即把备份文件拷贝至原数据目录下。

注意:恢复完成后一定要检查并修改权限,如下:

chown -R mysql.mysql /var/lib/mysql

/etc/init.d/mysqld start

恢复并重启mysql后目录如下:

[root@danny data]# ls /var/lib/mysql

auto.cnf ibdata1 lfcmall mysql mysql.sock sp2p wordpress

diymall ib_logfile0 lfc_oasys mysql-bin. performance_schema sshmall xtrabackup_binlog_pos_innodb

electronicproductssh_db ib_logfile1 lfc_wm mysql-bin.index rollback T1 xtrabackup_info

四.增量备份还原

备份

1.先全量备份

innobackupex --defaults-file=/etc/my.cnf --user=root --password=5113041wsdg /data/

2.第一次增量

innobackupex --defaults-file=/etc/my.cnf --user=root --password=5113041wsdg --incremental --incremental-basedir=/data/2019-02-19_09-48-41/ /data/

3.第二次增量

innobackupex --defaults-file=/etc/my.cnf --user=root --password=5113041wsdg --incremental --incremental-basedir=/data/2019-02-19_09-53-55/ /data/

备份目录如下

[root@danny data]# ls

--19_09-- //全量备份

--19_09-- //第一次增量

--19_09-- //第二次增量

还原

1.停止mysql服务器并清空数据目录

/etc/init.d/mysqld stop

mv /var/lib/mysql /tmp/

2.prepare全备

innobackupex --incremental --apply-log --redo-only /data/2019-02-19_09-48-41

3.prepare第一个增量

innobackupex --incremental --apply-log --redo-only /data/2019-02-19_09-48-41 --incremental-dir=/data/--19_09--

4.prepare第二个增量

innobackupex --incremental --apply-log /data/2019-02-19_09-48-41 --incremental-dir=/data/--19_09-- //注意最后一个增量没有--redo-only参数

此时两次增量备份其实都合并到全备上了,恢复是只需要使用全备进行恢复就可以了

5.所有整合数据还原

innobackupex --defaults-file=/etc/my.cnf --copy-back /data/--19_09--

6.修改mysql数据目录权限启动服务

chown -R mysql.mysql /var/lib/mysql

/etc/init.d/mysqld start

7.数据验证

注意:

1.通过上面三个备份目录里的xtrabackup_checkpoints文件(2019-02-19_09-53-55/xtrabackup_checkpoints),可以看出是哪种备份类型,全量(full-backuped)还是增量(incremental) 并且全量到增量的from_lsn和last_lsn是一一对应的。

2.--incremental指明是增量备份,--incremental-basedir指定上次完整备份或者增量备份文件的位置。这里的增量备份其实只针对的是InnoDB,对于MyISAM来说,还是完整备份。

Jira 的 数据库备份恢复 简单过程

1 发现jira的备份恢复很简单, 只需要导入导出一个zip包即可 导出 选择系统 管理员入口登录 选择导入导出 进行备份系统数据 选择一个文件名就能备份 备份结果 将文件copy到上一一级目录的 i ...

使用innobackupex备份mysql数据库

1  因为使用perl脚本编写,安装前应先安装 yum install perl-Time-HiRes -y yum -y install perl-DBD-MySQL.x86_64 一起安装     ...

Xtrabackup之innobackupex备份恢复详解(转)

add by zhj:对于Xtrabackup2.2来说,已经解决了本文结尾提到的那个bug,当使用--copy-back时,同时加--force-non-empty-directories 即可.这 ...

Mysql启停以及恢复备份恢复数据库

1.mysql启停 进入cmd 输入如下命令 net stop mysql(自己起的mysql名称) -------停 net strat mysql   ---------------------- ...

mysql备份恢复数据库据/表

备份单个数据库,只备份表,如要恢复,必须先创建一个数据库[root@s]# mysqldump -u root -p dbname1 > dbname1.sql[root@s]# mysql - ...

Oracle备份恢复简单过程以及中间的坑.

Oracle 冷备: 貌似需要dbca创建一致的oracle instance 服务器配置版本尽量相同,安装路径相同. 关闭Oracle服务 将oracle app 目录下的oradata以及有快速闪 ...

利用exp/imp备份恢复数据库实例

用exp/imp备份数据库: Oracle数据导入导出imp/exp功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的 ...

Oracle之RMAN备份恢复1-基础篇

1,rman的作用与体系架构 1.1 什么是rman rman(recovery manager)是oracle8i以后dba的一重要工具一般位于$oracle_home/bin目录下,主要用来备份, ...

controlfile与备份恢复

controlfile与备份恢复     数据库正常关闭,trace controlfile信息.   ************************************************ ...

随机推荐

Tkinter单选框及滚动条

界面:左侧是单选框,右侧是信息显示框,下方是按扭 功能:点击开始爬取按扭,则会自动执行函数,显示在文本框中 indicatoron = 0 改变单选框按扭样式 效果图一: 效果图二: 效果图三: 示例 ...

最简单的视音频播放示例3:Direct3D播放YUV,RGB(通过Surface)

上一篇文章记录了GDI播放视频的技术.打算接下来写两篇文章记录Direct3D(简称D3D)播放视频的技术.Direct3D应该Windows下最常用的播放视频的技术.实际上视频播放只是Direct3 ...

机器学习算法-K-means聚类

引文: k均值算法是一种聚类算法.所谓聚类.他是一种无监督学习,将类似的对象归到同一个蔟中.蔟内的对象越类似,聚类的效果越好. 聚类和分类最大的不同在于.分类的目标事先已知.而聚类则不一样. 由于其产 ...

syslinux 3.84 2009-12-18 ebios copyright (c) 1994-2009 H. Peter Anvin et al

使用USB方式安装win7+Ubuntu12.04双系统时出现"syslinux 3.84 2009-12-18 ebios copyright (c) 1994-2009 H. Peter ...

CvvImage类

从OpenCV 2.2.0开始,OpenCV取消了CvvImage这个类.可是今天要用到,可以自己加入到工程中. 首先,找到CvvImage的原代码.我在网上已经找到了,具体代码如下. 这是CvvIm ...

【shell脚本练习】网卡信息和简单日志分析

题目 1.写一个脚本getinterface.sh,脚本可以接受参数(i,I,a),完成以下任务: (1)使用以下形式:getinterface.sh [-i interface|-I IP|-a] ...

python---购物车

购物车功能如下: 1. 输入收入多少,购买商品 2. 打印购物清单,根据清单选择商品: 3. 结算,打印购物清单及总金额 # -*- coding:utf-8 -*- # LC goods=[[1,' ...

C C++互相调用注意

注意:直接调用会找不到函数定义 1. C 调用 C++封装好后的函数: 在C++中有一个函数 int main_cpp(): 首先构建头文件, #ifndef CPP_FILE_H   #define ...

Windows共享设置

Windows文件共享默认是开启的,任何用户都可以方便的设置共享目录.那么如何关闭并禁止呢. ====打开或关闭网上邻居的网络发现:1. 右键单击,网上邻居,弹出菜单选择:属性,打开网络和共享中心界面 ...

Javascript DOM操作浅谈

1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于Javascript ...



推荐阅读
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • Python Django大学生心理健康管理系统开发(含源码、文档)
    本项目包含完整的源代码、设计文档、数据库结构以及详细的安装指南,旨在为计算机专业的学生提供一个全面的心理健康管理系统解决方案。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文深入探讨了 Oracle 数据库的网络配置,包括全局数据库名、实例名等关键参数的设置与作用,旨在为数据库管理员和开发人员提供全面的参考。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
author-avatar
lin悟_462
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有