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.pswp.cn/news/275705.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275705.shtml
英文地址,請注明出處:http://en.pswp.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;將表單…