mysql数据库的新特性_【数据库】MySQL新特性归档介绍

99a204fa28b7ee10961c02d5e0675db7.png

MySQL 8.0.17发布了,看了下release note,发现果真如之前预期的那样,恢复了redo log归档(redo log archiving)功能。之所以说是“恢复”,那是因为在InnoDB非常古老的版本(MySQL 4.0.6之前的版本)才存在,之后就取消了,当时还支持redo log mirror,老一点的MySQL DBA可能都还有印象,不过这两个功能当时没什么卵用,所以取消了。

推案教程:MySQL数据库入门视频教程

此次,InnoDB重启redo log归档功能,按照开发团队的说法,主要是为了解决备份一致性的问题。文档里是这么写的:

Backup utilities that copy redo log records may sometimes fail to keep pacewith redo log generation while a backup operation is in progress, resultingin lost redo log records due to those records being overwritten. The redolog archiving feature addresses this issue by sequentially writing redo logrecords to an archive file. Backup utilities can copy redo log records fromthe archive file as necessary, thereby avoiding the potential loss of data.

in lost redo log records due to those records being overwritten. The redo

log archiving feature addresses this issue by sequentially writing redo log

records to an archive file. Backup utilities can copy redo log records from

the archive file as necessary, thereby avoiding the potential loss of data.

简言之,就是备份速度跟不上redo log生成的速度,结果导致redo log被覆盖了,然后备份就无法保证一致性。有了redo log归档,就可以在备份启动时同步启动redo log归档,备份结束时同步停止redo log归档,这样就可以避免这个问题了,备份结束后可以利用这期间生成的redo log进行数据恢复。

想要启用redo log归档功能,只需设置innodb_redo_log_archive_dirs选项即可,该选项可支持在线动态修改,例如:

[root@yejr.me]> SET GLOBAL innodb_redo_log_archive_dirs = "redolog-archiving-for-backup:/data/mysql8-redologs/";

指定/data/mysql8-redologs/目录作为redo log归档存放路径,并且指定label为 "redolog-archiving-for-backup",也就是这是专用于备份的redo log归档存放目录。

我们还可以指定另一个目录用于未来基于redo log的物理复制用途(我瞎猜的,可能没那么快实现)。

[root@yejr.me]> SET GLOBAL innodb_redo_log_archive_dirs = "redolog-archiving-for-backup:/data/mysql8-redologs1/;redolog-archiving-for-repl:/data/mysql8-redologs2";

选项innodb_redo_log_archive_dirs可以指定多个目录作为归档redo log存放位置。不过这个选项有几个限制:

设置完后,就可以开始进行redo log归档了。

第一个参数是我们之前定义过的一个label,第二个参数是该label对应目录下的子目录,也就是 "/data/mysql8-redologs/20190722"。我们在相应目录下就可以看到这样的redo log归档文件了:

[root@yejr.me]> ls -l /data/mysql8-redologs/20190722-r--r-----. 1 mysql mysql 0 Jul 22 20:54 archive.f0ff5743-97be-11e9-a5d6-0050568bba82.000001.log

文件名中常常的那串字符,就是本实例的UUID。此时文件的大小是0字节。

我们在另一个session发动一个sysbench oltp测试。执行完sysbench测试结束后,我们停止redo log归档工作:

[root@yejr.me]> DO innodb_redo_log_archive_stop();Query OK, 0 rows affected (0.00 sec)

我分别记录了测试前后redo log LSN的变化如下:

# 测试前的LSNLOG---Log sequence number 27938813989...# 测试后的LSNLOG---Log sequence number 27945024531

---

Log sequence number 27938813989

...

# 测试后的LSN

LOG

---

Log sequence number 27945024531

两次LSN的差值是:6210542 字节。

然后我们查看redo log归档文件大小是多少:

[root@yejr.me]> ls -l /data/mysql8-redologs/20190722-r--r-----. 1 mysql mysql 6213632 Jul 22 21:19 archive.f0ff5743-97be-11e9-a5d6-0050568bba82.000001.log

可以看到文件大小是 6213632 字节,和上面的 6210542 字节只相差了 3090 字节,和本次测试产生的redo log日志大小相当。后面我们就可以利用这个redo log做数据恢复之用了(不过,相应的官方工具还没开发出来,拭目以待吧)。

一般情况下,redo log归档对性能的影响比较小(顺序写入),在大量高并发事务的场景下,可能对性能影响会稍大点,不过也不用太担心,以后有机会我再做个性能对比测试吧。

发车前,月月提醒我,MySQL企业版的备份工具已经提前支持redo归档了,希望Percona Xtrabackup也能尽快支持哈。

最后,再多说一句。大家也能注意到,MySQL 8.0版本之后,和ORACLE是越来越像了。有ORACLE这个最成功的商业数据库大哥在前面,我们完全有理由不用担心MySQL的未来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么同事写的代码那么优雅~

大家好,我是若川,诚邀你进群交流学习。今天分享一篇相对轻松的代码简洁之道。学习源码系列、面试、年度总结、JS基础系列内容出自《代码整洁之道》、Alex Kondov[1]的博文tao-of-react[2]和《Clean Code of Javascript》image.png代码整洁有什么用&#…

[转]让你赚大钱成富翁的4个投资习惯

本文转自:http://bbs.jrj.com.cn/msg,68723793.html 第一条:对自己进行投资  这是最大最大的投资,当然收获也是最为丰盛的。艺不压身,这句话非常有哲理。朋友今年27岁,可是毫不夸张地说,他已经具有了百万…

thymeleaf th:href url传递多参数

<a th:href"{/teacherShowMember(class_id${class.classId}&#xff0c;class_name${class.className})}"></a> thymeleaf使用&#xff08;,,&#xff09;的形式解析多个参数,结合${}放置变量十分方便 传统URL传递多参数使用&#xff1f;&拼接 <a…

spring 加载java类_在Spring中基于Java类进行配置的完整步骤

在Spring中基于Java类进行配置的完整步骤发布于 2020-7-7|复制链接基于Java配置选项&#xff0c;可以编写大多数的Spring不用配置XML&#xff0c;下面前言JavaConfig 原来是 Spring 的一个子项目&#xff0c;它通过 Java 类的方式提供 Bean 的定义信息&#xff0c;在 Spring4 的…

2021 年最值得了解的 Node.js 工具(下)

大家好&#xff0c;我是若川&#xff0c;诚邀你加群长期交流。今天分享一篇用得上的 node 库。下篇。链接地址&#xff1a;https://github.com/huaize2020/awesome-nodejs。上篇是&#xff1a;2021 年最值得了解的 Node.js 工具❝前言&#xff1a;前端时间分享了这些node开源工…

技术点

前端所用技术 后台页面 感谢 H-ui、FlatLab 提供静态页面支持Ztree&#xff1a;jQuery树插件DataTables&#xff1a;jQuery表格插件Layer&#xff1a;web弹层组件Distpicker&#xff1a;中国省市区地址三级联动插件KindEditor&#xff1a;富文本编辑器 简洁方便 没UEditor那么多…

扫描java类文件_java递归与非递归实现扫描文件夹下文件的实例代码

java递归与非递归实现扫描文件夹下所有文件java扫描指定文件夹下面的所有文件&#xff0c;供大家参考&#xff0c;具体内容如下扫描一个文件夹下面的所有文件&#xff0c;因为文件夹的层数没有限制可能多达几十层几百层&#xff0c;通常会采用两种方式来遍历指定文件夹下面的所…

【阿里内部应用】基于Blink为新商业调控打造实时大数据交互查询服务

基于Blink为新商业调控打造实时大数据交互查询服务 案例与解决方案汇总页&#xff1a;阿里云实时计算产品案例&解决方案汇总从IT到DT、从电商到新商业&#xff0c;阿里巴巴的每个细胞都存在大数据的DNA&#xff0c;如何挖掘大数据的价值成为抢占未来先机的金钥匙&#xff0…

Vite 的好与坏

大家好&#xff0c;我是若川&#xff0c;诚邀你进群交流学习。今天分享一篇关于Vite的文章。学习源码系列、面试、年度总结、JS基础系列。全文 3000 字&#xff0c;欢迎点赞关注转发一、Vite 是什么2020年4月&#xff0c;尤大大发了这么一个推&#xff1a;随后&#xff0c;2021…

Windows phone 7新开发工具发布

春节假期已经接近尾声. 马上第一个工作日就要来临. 春节真的不再是一个简简单单的节日. 有时让人感到欣喜 这意味这一年的忙碌都会因为这个节日的到来而画上一个终止符.面临一个不长也不短的假期.眼下的一年翻过去 新的一年即将到来. 似乎一切都可以重新开始. 有时又令人感到无…

opentaps mysql_opentaps 1.4 联接 mysql 笔记

opentaps 1.4 连接 mysql 笔记一、安装 MySQ 略...二、创建MySQL Database opentaps ERP CRM1.mysql -u root -h 127.0.0.1 -p 2.mysql>create database opentaps default CHARACTER SET utf8 COLLATE utf8_general_ci;3.mysql>create user opentaps;4.mysql>grant …

这10道springboot常见面试题你需要了解下

1、什么是Spring Boot&#xff1f;多年来&#xff0c;随着新功能的增加&#xff0c;spring变得越来越复杂。只需访问https://spring.io/projects页面&#xff0c;我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同功能。如果必须启动一个新的Spring项目&#xff0…

Silverlight中使用MIRIA进行触屏编程

Silverlight for Windows phone7中可以使用XNA提供的功能进行触屏编程&#xff0c;不过暂时还没有网页Silverlight的XNA移植。经过搜索发现MIRIA这个开源项目http://miria.codeplex.com/ 可以在Silverlight中实现Touch、Gesture的功能。 用法如下&#xff1a; 1、项目中引用MIG…

React 核心开发者 Dan Abramov 访谈实录

大家好&#xff0c;我是若川。面试、学习源码系列、年度总结、JS基础系列译者注&#xff1a;本译文是在「在线对话 React.js 核心开发者」一个半小时直播的基础上进行的原文翻译&#xff0c;包括了直播中的所有问答内容&#xff0c;尽可能保留了 Dan 回答的中心语义&#xff0c…

python ev3图形化编程软件下载_mPython(图形化编程软件)

mPython是盛思技术团队在BBC官方原版PythonEditor基础上、拓展开发的应用软件。可以进行可视化代码编程&#xff0c;有hex、python、blockly三种代码读写等功能。功能介绍1、不依赖网络&#xff0c;可离线安装使用2、支持hex、python、blockly三种代码的读写3、blockly模式下支…

02-15 GUCCI 我喜欢的

我觉得&#xff0c;GUCCI是低调的奢华&#xff0c;价格不是很高&#xff0c;容易接近&#xff0c;符合我的风格&#xff0c;是现阶段我的选择 样式我喜欢 希望我的生活质量步步高升&#xff0c;将来不再为追求物质生活而奋斗。 转载于:https://www.cnblogs.com/yd1227/archive/…

php 批量修改mysql 数据表,字段 字符集编码

$sql"SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA 数据库名称";$r$pdo->query($sql,2);foreach($r as $v){//if($v[TABLE_NAME]!monxin_index_user){continue;} 代码来源 梦行云软件$sql"alter table ".$v[TABLE_NAME]." conver…

python如何安装panda数据库_在Pycharm中安装Pandas库方法(简单易懂)

开发环境的搭建是一件入门比较头疼的事情&#xff0c;在上期的文稿基础上&#xff0c;增加一项Anaconda的安装介绍。Anaconda是Python的一个发行版本&#xff0c;安装好了Anaconda就相当于安装好了Python&#xff0c;并且里面还集成了很多Python科学计算的第三方库。比如我们需…

译文 | Vue 在哪些方面做的比 React 更好?

大家好&#xff0c;我是若川。在过去的五年中&#xff0c;我一直是一名 React 工程师。我爱React。我喜欢开发 React 应用程序。我认为它是目前最好的UI框架之一。但是&#xff0c;在这个领域有一些竞争对手。其中最大的是 Vue.js 。我以前玩过一些 Vue.js&#xff0c;但我认为…

表单提交中Get和Post方式的区别及EncType表明提交数据的格式详解

表单提交中Get和Post方式的区别1. get是从服务器上获取数据&#xff0c;post是向服务器传送数据。2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中&#xff0c;值和表单内各个字段一一对应&#xff0c;在URL中可以看到。post是通过HTTP post机制&#xff0c;将表单…