位置: 编程技术 - 正文

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安装总结)

  • 车船税是什么意思图片
  • 月底计提分录
  • 信息技术费如何做账
  • 个人房产房租收入怎么算
  • 发包工程会计账务处理
  • 机票报销需要什么单据
  • 酒店内部招待费怎么记账
  • 应收账款减少计提坏账吗
  • 银行询证函费用计入财务费用还是管理费用
  • 委托贷款利息收入账务处理
  • 非货币性资产交换的会计处理
  • 公司搞活动的话术
  • 劳务费备注差额征税是什么意思呢?
  • 公司三季度亏损20个亿这股票值得买吗
  • 为他人提供纳税担保, 你的责任都清楚了吗?
  • 怎么判断要不要交水利基金
  • 2019一般纳税人转小规模
  • 环保税优惠问题
  • 未取得房产证的房子如何迁户口
  • 以自有资金进行股权投资
  • 产值税收是什么意思
  • 无法删除文件提示怎么办
  • 经营租赁方式租入分录
  • 开具的服务费怎么做分录
  • 企业缴纳社保的社保险种包括
  • 小规模开票运费怎么开
  • 利息如何做会计分录
  • 什么是递延所得税资产和负债
  • 使用过的固定资产出售,怎么处理
  • 悬崖雕塑
  • 前端没思路怎么办
  • zend framework手册
  • 其他营业账簿印花税减免政策
  • php获取文件后缀名的方法
  • 前端发起请求怎么设置
  • 公司可以不再提取法定公积金
  • FPN细节剖析以及pytorch代码实现
  • net命令详解步骤
  • 研发费用税前加计扣除金额怎么算
  • 应交税款怎么计算
  • 临时工享受的福利有哪些
  • 企业的所有分类
  • 2.MyBatis
  • pandas columns排序
  • 投资款印花税税源采集表税目
  • 总公司签合同开票分公司做业务分公司如何确认收入?
  • 税前扣除项目主要包括
  • 购入固定资产入账会计凭证怎么做
  • 2020年税务师报名流程
  • 法定盈余公积和任意盈余公积可用于
  • 餐饮企业原材料采购描述错误的是
  • 提前报废固定资产需要补提折旧
  • 应收票据属于其他货币资金吗
  • 商业成本会计如何记账
  • 垫付的开办费怎么做账
  • 初级会计现值的计算
  • sql server233错误
  • MySQL 5.7.18 release版安装指南(含有bin文件版本)
  • win7用u盘怎么重装系统
  • centos7如何设置中文
  • 新手菜鸟什么意思
  • webinstall.exe - webinstall是什么进程
  • 注册表里的默认可以删吗
  • ip地址xp系统
  • 在mac中该如何共享文件夹
  • windows2008域
  • win8系统教程
  • uibutton设置圆角
  • jquery的使用方法
  • shell字符串比较相等
  • javascript随机生成数字
  • Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
  • easyui 表单提交
  • 基层税务所工作现状
  • 大连税务稽查局魏禾简历
  • 垃圾填埋税率
  • 丰田2.0和2.5混动发动机
  • 买下中国需要多少钱?
  • 江苏省国税局客服电话
  • 辽宁省地方税务局公告2014年第10号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设