当前位置:首页 > MySQL教程 > 正文内容

MySQL新特征归档引见【MySQL教程】,mysql,归档

搜教程4年前 (2019-12-01)MySQL教程158

  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的将来。

以上就是MySQL新特征归档引见的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16226.html

标签: mysql归档
分享给朋友:

“MySQL新特征归档引见【MySQL教程】,mysql,归档” 的相关文章

MySQL完成同时查询更新统一张表的实例剖析【MySQL教程】,MySQL,更新,查询

MySQL完成同时查询更新统一张表的实例剖析【MySQL教程】,MySQL,更新,查询

这篇文章重要引见了MySQL数据库同时查询更新统一张表的要领,须要的朋侪能够参考下 在寻常的项目中,经常会遇到如许的题目:我须要在一张标中同时更新和查询出来的数据。比方:有以下图一张表数据,如今须要更新操纵为:把status=1的name值更新为id=2的name值 通常情况下我们会想到...

运用union和in哪一个效率高【MySQL教程】,union,效率高,哪个

一直都认为是in的效力要高,然则此次确有点蒙圈。 SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);   这个查询的效力是,经常是1秒多。 mysql> SELECT * FROM runinfo WHERE sta...

Mysql删除反复数据保存最小的id【MySQL教程】,Mysql,保留,数据

在网上查找删除反复数据保存id最小的数据,要领以下: DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM...

Debian运用dpkg装置MySQL的要领【MySQL教程】,Debian,MySQL,dpkg

申明 运用MySQL 5.7,操作系统为64位 Debian GNU/Linux 8.6 (jessie)。 装置 因apt堆栈将mysql相干的包移除,须要本身去官网下载之,以及相干的依靠包。在装置mysql-community-server时,会提醒输入MySQL的root暗码。 以下部...

sql server:alter database name的题目【MySQL教程】,database,server,alter

--step 1 : 修正数据库称号 USE master GO ALTER DATABASE GeovinDuCms SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO EXEC master..sp_renamedb 'GeovinDuCms','...

怎样进步sql查询效力【MySQL教程】,效率,查询,提高

1.对查询举行优化,应只管防止全表扫描,起首应斟酌在 where 及 order by 触及的列上竖立索引。 2.应只管防止在 where 子句中对字段举行 null 值推断,不然将致使引擎摒弃运用索引而举行全表扫描,如: select id from t where num is null...