位置: 编程技术 - 正文

Linux下实现MySQL数据备份和恢复的命令使用全攻略

编辑:rootadmin

推荐整理分享Linux下实现MySQL数据备份和恢复的命令使用全攻略,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

为了保障数据的安全,需要定期对数据进行备份。备份的方式有很多种,效果也不一样。一旦数据库中的数据出现了错误,就需要使用备份好的数据进行还原恢复。从而将损失降到最低。下面我们来了解一下MySQL常见的有三种备份恢复方式:

1、利用Mysqldump+二进制日志实现备份2、利用LVM快照+二进制日志实现备份3、使用Xtrabackup备份

一:实验环境介绍:

系统介绍:CentOS6.4_X数据库版本:mysql-5.5.

二:基于Mysqldump命令实现备份恢复

2.1、思路概念

Mysqldump是一个逻辑备份命令;意思就是将数据库中的数据备份成一个文本文件;也可以说是将表的结构和数据存储在文本文件中。

Mysqldump命令的工作原理很简单,它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换为一条INSTERT语句。这些CREATE语句和INSTERT语句都是还原时使用的。还原数据时就可以使用其中的CREATE语句来创建表。使用其中的INSERT语句来还原数据。它可以实现整个服务器备份,也可以实现单个或部分数据库、单个或部分表、表中的某些行、存储过程、存储函数、触发器的备份;并且能自动记录备份时刻的二进制日志文件及相应的位置。对于InnoDB存储引擎来讲支持基于单事务模式实现热备,对于MyISAM则最多支持温备。

2.2、备份策略

Mysqldump全备+二进制日志增备

2.3、过程实现

(1)Mysqldump全备由于Mysql数据库默认的为MyISAM存储引擎所以只有使用温备(备份同时仅支持读请求)进行,所以我们要为所有数据库添加读锁

解析:?lock-all-tables表示为所有表施加读锁;?master-data=2表示在备份文件中记录当前二进制日志的位置;?events表示备份数据的同时备份时间调度器代码;?routines表示备份数据的同时备份存储过程和存储函数;?all-databases表示备份所有库。

(2)二进制全备

方法一: 导出二进制日志文件内容

方法二:滚动日志复制文件

(3)二进制增备首先添加数据信息

然后二进制增备

解析:?start-position=是上次全备之后的二进制事件位置;?stop-position=最近一天的二进制事件位置。

2.4、模拟数据库损坏,实现恢复工作

这种备份方式恢复简单,但是恢复还原之后索引会出现错误需要重建,而且备份结果会占据很大的空间,请酌情使用。

PS:mysqldump常用命令小结备份MySQL数据库的命令

备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

直接将MySQL数据库压缩备份

备份MySQL数据库某个(些)表

同时备份多个MySQL数据库

仅仅备份数据库结构

备份服务器上所有数据库

还原MySQL数据库的命令

还原压缩的MySQL数据库

将数据库转移到新服务器

三、基于LVM快照实现备份恢复

3.1、思路明细

(1)LVM这种备份方式要求Mysql的数据保存在逻辑卷上(2)需要给Mysql服务器施加读锁(mysql>FLUSH TABLES WITH READLOCK;),这里不可直接退出服务器(3)另起终端为数据所在的卷创建快照(lvcreate),保证事务日志和数据文件必须在同一卷上(分别创建可能会导致数据文件和事务日志不一致,从而可能导致无法正常恢复)

3.2、备份策略

LVM快照全备+二进制日志增备(对于即时点恢复还要恢复至后续的二进制位置)

3.3、前提条件

(1)创建逻辑卷及挂载逻辑卷,此过程在此就不做演示了

(2)初始化mysql将其数据目录指向/mydata/data

(3)编辑查看配置文件,重启服务

3.4、过程展示

(1)确保事务日志和数据文件必须在同一卷上

解析:其中ib_logfile0与ib_logfile1是日志文件(2)施加全局锁并滚动日志

(3)查看并保存当前正在使用的二进制日志及当前执行二进制日志位置(非常重要)

(4)创建快照卷

(5)立即切换终端释放锁

(6)备份数据

(7)二进制实现增量备份

Linux下实现MySQL数据备份和恢复的命令使用全攻略

(8)模拟数据库崩溃

(9)恢复数据

此工具是接近于热备的方式实现的,并且用此方法来备份恢复数据速度是非常快的。

四:基于xtrabackup来实现备份恢复

4.1、优势特性

完全以热备的形式进行,能够实现快速可靠地完全备份和部分备份,支持增量备份,支持时间点还原,备份过程中不会打扰到事务操作,能够实现网络传输和压缩功能从而有效的节约磁盘空间,备份完成后可自动验证数据是否可用,恢复速度较快等等。更多优势特性请参考 = 1)。单表单空间的数据显示形式为:

4.2、安装Xtrabackup

下载percona-xtrabackup最新的版本为2.1.4(percona-xtrabackup-2.1.4-.rhel6.x_.rpm)安装:

若有错误无法安装请安装perl-DBD-mysql依赖包

注意:不同的环境依赖的关系包可能有多个,请依照提示进行配置

4.3、完全备份

使用innobakupex备份时,其会调用xtrabackup备份所有的InnoDB表,复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件,同时还会备份触发器和数据库配置信息相关的文件。这些文件会被保存至一个以时间命令的目录中。完全备份命令如下:

实现过程及说明:

OK! 备份完成切换至备份文件目录查看备份的数据信息及创建生成的文件:

针对文件解析:

(1)xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;每个InnoDB页(通常为k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。(2)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。(3)xtrabackup_binary —— 备份中用到的xtrabackup的可执行文件;(4)backup-my.cnf —— 备份时用到的配置选项信息,也就是配置文件中关于mysqld的相关文件配置;(5) xtrabackup_logfile —— 非文本文件是xtrabackup本身的日志文件;

4.4、准备一个完全备份

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

innobakupex命令的?apply-log选项可用于实现上述功能。如下面的命令:

4.5、模拟数据库崩溃实现完全恢复

(1)模拟崩溃

(2)从完全备份中恢复数据(谨记:在恢复数据之前千万不可初始化数据库和启动服务)innobackupex命令的?copy-back选项用于执行恢复操作,其通过复制所有数据相关的文件至mysql服务器DATADIR目录中来执行恢复过程。innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。

(3)当数据恢复至数据目录以后,还需要确保所有数据文件的属主和属组均为正确的用户,如mysql,否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。

(4)启动服务器登陆查看恢复完成。

注意:每一次恢复完成之后一定要重新做一次完全备份工作!!

4.6、使用innobackupex进行增量备份

说明:每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长。这正是InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。第一次改动数据实现增量备份实现增量备份可以使用下面的命令进行:

其中,/innobackup指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。?incremental-basedir是指向上一次完全备份所在的目录。

第二次改动数据进行增量备份:

第二次增量备份的执行命令和第一次大致相同,只有其?incremental-basedir应该指向上一次的增量备份所在的目录。

第三次改动数据还未进行增量备份

4.7、使用innobackupex基于完全+增量+二进制日志恢复数据

(1)由于笔者这里将二进制日志和数据文件写在了同一个文件目录下所以在模拟数据库崩溃前必须先复制出二进制日志文件,所以建议看客们将数据目录和二进制目录分开存放,不要和笔者一样犯如此二的错误。方法如下:前提是在刚刚建立服务器尚未启动服务器之前做如下操作;

好了言归正传复制二进制日志文件:

(2)模拟服务器崩溃

(3)准备备份

首先注意“准备”增量备份与整理完全备份有着一些不同,尤其要注意的是:1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。2)基于所有的备份将未提交的事务进行“回滚”。

完全备份“准备”

第一次增量备份“准备”也就是说将第一次增量备份合并到了完全备份中

第二次增量备份“准备”也就是说将第二次增量备份也合并到了完全备份中

其中 ?redo-only是只将已提交的事务同步到数据文件中,未提交的事务日志不在进行回滚了。

(4)恢复数据(基于innobackupex基于完全+增量)

(5)更改属组属主

(6)启动查看

结果显示数据正确完整,但是第三次的改动信息未生效。

(7)基于二进制日志实现数据恢复查看最后一次增量备份二进制日志所在的位置:

查看二进制日志文件将未备份数据的二进制日志导出

恢复数据

这种备份恢复方式完全以热备的形式实现完全备份和增量备份和二进制日志还原数据,并且恢复速度也很快,是最佳的备份恢复方式!!

总结:以上三种备份恢复都是可以基于二进制日志文件进行的,因而体现出了二进制日志的重要性,从而映射出了日志的重要性;所以学习查看使用日志文件是学习Mysql的重中之重!

MySQL的安装以及基本的管理命令和设置 MySQL安装Linux/UNIX上安装MysqlLinux平台上推荐使用RPM包来安装Mysql,MySQLAB提供了以下RPM包的下载地址:MySQL-MySQL服务器。你需要该选项,除非你只想连接运行

MySQL启动连接的命令以及与PHP程序连接的基本语法 使用mysql二进制方式启动连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接mysql服务器的简单实例:[

MySQL创建和删除数据库的命令及相关PHP脚本的操作方法 使用mysqladmin创建数据库使用普通用户,你可能需要特定的权限来创建或者删除MySQL数据库。所以我们这边使用root用户登录,root用户拥有最高权限,可以

标签: Linux下实现MySQL数据备份和恢复的命令使用全攻略

本文链接地址:https://www.jiuchutong.com/biancheng/312339.html 转载请保留说明!

上一篇:MySql命令实例汇总(mysql的一些命令)

下一篇:MySQL的安装以及基本的管理命令和设置(mysql安装总结)

  • 新公司如何申报城市建设税
  • 疫情期间生活服务业免征增值税截止时间
  • 记账凭证如何填写明细科目
  • 用餐补贴算在工资里面吗
  • 个人所得税算错
  • 进料加工余料结转可以跨年吗
  • 职工福利费专票账务处理
  • 技改贴息资金的财务、会计及税收处理
  • 董事费监事费个税计算
  • 6000万居间费如何避税
  • 行政事业单位核算短期投资时有关预算会计核算正确的是
  • 上月暂估计提的费用次月来发票怎么写会计分录?
  • 以前年度少计费用,调整分录
  • 以前年度取得假发票账务处理
  • 促销赠品的会计处理
  • 退回多交的所得税怎么做分录小规模
  • 进项税小于销项税怎么处理
  • 企业所得税收入大于增值税收入的原因
  • 营改增后征收增值税的税目
  • 小规模纳税人提供设计服务税率
  • 去税务局交的社保能退么
  • 实收资本账簿印花税需要每年交吗
  • 房产税入哪个科目
  • 资产改变用途的法律规定
  • 所得税季报收入是全年吗
  • 上海地方教育费附加减半征收2018
  • 工业总产值计算方式计算公式
  • 公司周年庆典费用计入什么科目
  • 个体户需要记账嘛
  • 银行发放贷款银行会计怎么做账务处理
  • 进项税额转出是负数是什么意思
  • macOS 11 Big Sur 开发者预览版 Beta 7正式推送
  • php
  • PHP:pg_close()的用法_PostgreSQL函数
  • 运输发票符合什么要求
  • neoCopy.exe - neoCopy是什么进程 有什么用
  • 应付债券的会计处理例题
  • 落枕怎么办怎么治疗
  • 企业购入设备涉及的税种
  • 坏账准备的借贷方向表示什么意思
  • php自定义表单系统
  • axios在vue中的使用慕课笔记
  • 为什么生产工人工资不属于固定成本
  • 前端常见面试
  • 进项未认证但已开票怎么办
  • mysql查询语句慢怎么优化
  • 改变记帐方式的原因
  • 现金折扣不考虑增值税
  • 实收资本为零该怎么办
  • 利润分配贷方余额怎么处理
  • 施工企业工人工作总结
  • 工会经费保留整数吗
  • 完工产品制造成本表
  • 小规模纳税人销售货物税率是多少
  • 社保金的滞纳金个人承担吗?
  • 逾期纳税申报会被罚款吗
  • 银行承兑汇票能拆分背书吗
  • 银行对账单和回单有什么区别
  • 财务报表是否合法公允
  • ubuntu 安装zsh
  • centos7配置免密登录
  • bios报警声
  • U盘安装centos 7出现unknown chipset
  • 如何使用一键启动
  • win10系统无法更改
  • win7浏览器在c盘哪里
  • Win10预览版更新弹窗如何关闭
  • linux shell脚本实例
  • linux删除一个非空子目录命令
  • 怎么给异地的人订外卖
  • 游戏开发之二维码怎么弄
  • windows7打开命令提示符
  • android怎么学
  • Windows10下安装fastdfs
  • shell脚本随机数
  • jquery实现轮播图原理
  • python自动化部署k8s集群
  • 公办幼儿园和企办幼儿园区别
  • 济南市土地使用税申报表怎样作废
  • 四川残疾人社保补贴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设