日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL ibdata1文件減肥過程解析

瀏覽:31日期:2023-09-15 20:49:40
目錄引言人物介紹系統表空間獨立表空間通用表空間UNDO 表空間臨時表空間前情提要制定“減肥”計劃”減肥“前全量備份停止數據庫服務刪除原實例新建實例啟動新建的數據庫服務導入備份數據驗證結果生產環境建議UNDO 相關參數設置關于 SQLESQLE 獲取引言

夏天來了,沒想到連 ibdata1 文件也要開始“減肥”了~~~

作者:楊彩琳

愛可生華東交付部 DBA,主要負責 MySQL 日常問題處理及 DMP 產品支持。愛好跳舞,追劇。

本文來源:原創投稿

有句話是這么說的:“在 InnoDB 存儲引擎中數據是按照表空間來組織存儲的”。其實潛臺詞就是:表空間是表空間文件,是實際存在的物理文件,MySQL 中有很多表空間,下面一起來了解一下吧。

人物介紹

在說“減肥”的故事之前,讓我們先了解一下需要“減肥”的文件包含哪些部分,都是什么。

系統表空間

首先要說的是本文的主角,系統表空間。它里面存儲的有:

InnoDB 表元數據doublewrite bufferchange bufferundo logs

若在未配置 innodb_file_per_table 參數情況下有新建表的操作,那么系統表空間也會存儲這些表和索引數據信息。前面有說過表空間也是實際存在的表空間文件,同樣系統表空間它可以有一個或多個數據文件,默認情況下,是在數據目錄中創建一個名為 ibdata1 文件的系統表空間數據文件,其文件大小和數量可以由參數 innodb_data_file_path 來定義。

獨立表空間

由 innodb_file_per_table 參數定義。啟用后,InnoDB 可以在 file-per-table 表空間中創建表,這樣新創建的數據庫表都單獨的表空間文件。該參數在 MySQL 5.6.7 及更高版本已經默認啟用了。

通用表空間

可以通過 CREATE tablespace 語法創建的共享 InnoDB 表空間。與系統表空間類似,它能存儲多個表的數據,也可將數據文件放置在 MySQL 數據目錄之外單獨管理。

UNDO 表空間

主要存儲 undo logs,默認情況下 undo logs 是存儲在系統表空間中的,可通過參數 innodb_undo_tablespaces 來配置 UNDO 表空間的數量,只能在初始化 MySQL 實例時才能設置該參數,并且在實例的使用壽命內是固定的,MySQL 8.0 可支持動態修改。

臨時表空間

非壓縮的、用戶創建的臨時表和磁盤上產生的內部臨時表都是存儲在共享的臨時表空間存儲的,可以通過配置參數 innodb_tmp_data_file_path 來定義臨時表空間數據文件的路徑、名稱、大小和屬性,如果沒有指定,默認是在數據目錄下創建一個名為 ibtmp1的大于 12M 的自動擴展數據文件。

前情提要

客戶反饋 MySQL 5.7 的配置文件中沒有開啟 UNDO 表空間和 UNDO 回收參數,導致 ibdata1 文件過大,并且一直在增長。需要評估下 ibdata1 文件大小如何回收及 UNDO 相關參數配置。

制定“減肥”計劃

思路:ibdata1 文件中包含了 InnoDB 表的元數據,change buffer,doublewrite buffer,undo logs 等數據,無法自動收縮,必須使用將數據邏輯導出,刪除 ibdata1 文件,然后將數據導入的方式來釋放 ibdata1 文件。

夏天來了,沒想到連 ibdata1 文件也要開始“減肥”了~~~

”減肥“前

減肥之前的 ibdata1 重量是 512M。

ps:因為是測試‘減肥計劃’,所以只模擬了一個‘微胖’的 ibdata1 文件。

[root@10-186-61-119 data]# lltotal 2109496-rw-r----- 1 mysql mysql56 Jun 14 14:26 auto.cnf-rw-r----- 1 mysql mysql 409 Jun 14 14:26 ib_buffer_pool-rw-r----- 1 mysql mysql 536870912 Jun 14 14:35 ibdata1-rw-r----- 1 mysql mysql 536870912 Jun 14 14:35 ib_logfile0-rw-r----- 1 mysql mysql 536870912 Jun 14 14:35 ib_logfile1-rw-r----- 1 mysql mysql 536870912 Jun 14 14:32 ib_logfile2-rw-r----- 1 mysql mysql 12582912 Jun 14 14:26 ibtmp1drwxr-x--- 2 mysql mysql 4096 Jun 14 14:26 mysql-rw-r----- 1 mysql mysql 5 Jun 14 14:26 mysqld.pidsrwxrwxrwx 1 mysql mysql 0 Jun 14 14:26 mysqld.sock-rw------- 1 mysql mysql 5 Jun 14 14:26 mysqld.sock.lock-rw-r----- 1 mysql mysql 6675 Jun 14 14:32 mysql-error.log-rw-r----- 1 mysql mysql 967 Jun 14 14:34 mysql-slow.logdrwxr-x--- 2 mysql mysql 8192 Jun 14 14:26 performance_schemadrwxr-x--- 2 mysql mysql 8192 Jun 14 14:26 sysdrwxr-x--- 2 mysql mysql 172 Jun 14 14:30 test全量備份

對庫做全量備份。我們使用 mysqldump 做全備,因為 Xtrabackup 會備份 ibdata1 文件。

/data/mysql/3309/base/bin/mysqldump -uroot -p \-S /data/mysql/3309/data/mysqld.sock \--default-character-set=utf8mb4 \--single-transaction --hex-blob \--triggers --routines --events --master-data=2 \--all-databases > /data/full_$(date +%F).sql停止數據庫服務systemctl stop mysql_3309刪除原實例[root@10-186-61-119 data]# rm -rf /data/mysql/3309[root@10-186-61-119 data]# rm -rf /etc/systemd/system/mysql_3309.service新建實例

重新創建一個同端口的 MySQL 實例(步驟略過),注意配置文件中需要配置下列參數:

innodb_undo_tablespaces = 3innodb_max_undo_log_size = 4Ginnodb_undo_log_truncate = 1innodb_file_per_table = 1

新建實例數據文件如下:

[root@10-186-61-119 ~]# ll /data/mysql/3309total 4drwxr-x--- 2 mysql mysql 6 Jun 14 14:51 backupdrwxr-x--- 9 mysql mysql 129 Jun 14 14:52 basedrwxr-x--- 2 mysql mysql 77 Jun 14 14:52 binlogdrwxr-x--- 5 mysql mysql 331 Jun 14 14:52 data-rw-r--r-- 1 mysql mysql 3609 Jun 14 14:52 my.cnf.3309drwxr-x--- 2 mysql mysql 6 Jun 14 14:51 redologdrwxr-x--- 2 mysql mysql 6 Jun 14 14:51 relaylogdrwxr-x--- 2 mysql mysql 6 Jun 14 14:52 tmp啟動新建的數據庫服務[root@10-186-61-119 ~]# systemctl start mysql_3309[root@10-186-61-119 ~]# ps -ef | grep 3309mysql 7341 1 0 14:52 ?00:00:01 /data/mysql/3309/base/bin/mysqld --defaults-file=/data/mysql/3309/my.cnf.3309 --daemonize導入備份數據[root@10-186-61-119 data]# /data/mysql/3309/base/bin/mysql -uroot -p \-S /data/mysql/3309/data/mysqld.sock < full_2023-06-14.sql驗證結果

減肥前 512M,減肥后 128M。

[root@10-186-61-119 data]# lltotal 1747000-rw-r----- 1 mysql mysql56 Jun 14 14:52 auto.cnf-rw-r----- 1 mysql mysql 422 Jun 14 14:52 ib_buffer_pool-rw-r----- 1 mysql mysql 134217728 Jun 14 14:57 ibdata1-rw-r----- 1 mysql mysql 536870912 Jun 14 14:57 ib_logfile0-rw-r----- 1 mysql mysql 536870912 Jun 14 14:57 ib_logfile1-rw-r----- 1 mysql mysql 536870912 Jun 14 14:52 ib_logfile2-rw-r----- 1 mysql mysql 12582912 Jun 14 14:52 ibtmp1drwxr-x--- 2 mysql mysql 4096 Jun 14 14:55 mysql-rw-r----- 1 mysql mysql 5 Jun 14 14:52 mysqld.pidsrwxrwxrwx 1 mysql mysql 0 Jun 14 14:52 mysqld.sock-rw------- 1 mysql mysql 5 Jun 14 14:52 mysqld.sock.lock-rw-r----- 1 mysql mysql 6841 Jun 14 14:55 mysql-error.log-rw-r----- 1 mysql mysql 414 Jun 14 14:52 mysql-slow.logdrwxr-x--- 2 mysql mysql 8192 Jun 14 14:52 performance_schemadrwxr-x--- 2 mysql mysql 8192 Jun 14 14:52 sysdrwxr-x--- 2 mysql mysql 172 Jun 14 14:56 test-rw-r----- 1 mysql mysql 10485760 Jun 14 14:57 undo001-rw-r----- 1 mysql mysql 10485760 Jun 14 14:57 undo002-rw-r----- 1 mysql mysql 10485760 Jun 14 14:57 undo003

恭喜 ibdata1 文件減肥成功!

生產環境建議

上面的“減肥”計劃對于生產環境可能有點暴力,所以,對于生產環境若是遇到相同場景的,建議采用下面較溫和謹慎的方法:

申請一臺新的服務器,部署從庫。配置好 innodb_file_per_table 參數,UNDO 相關參數;主庫進行邏輯全備;將主庫備份數據恢復到新從庫,并建立復制關系;主從切換,提升新從庫為主庫。UNDO 相關參數設置

注意:MySQL5.7 不支持在線或者離線分離 UNDO 表空間操作,UNDO 表空間的獨立必須在數據庫初始化時指定。

## 控制 Innodb 使用的 UNDO 表空間的數據量,默認值為 0,即記錄在系統表空間中。innodb_undo_tablespaces = 3## 控制 UNDO 表空間的閾值大小innodb_max_undo_log_size = 4G## 控制將超過 innodb_maxundo_log_size 定義的閾值的 UNDO 表空間被標記為 truncationinnodb_undo_log_truncate = 1關于 SQLE

愛可生開源社區的 SQLE 是一款面向數據庫使用者和管理者,支持多場景審核,支持標準化上線流程,原生支持 MySQL 審核且數據庫類型可擴展的 SQL 審核工具。

SQLE 獲取類型地址版本庫https://github.com/actiontech/sqle文檔https://actiontech.github.io/sqle-docs/發布信息https://github.com/actiontech/sqle/releases數據審核插件開發文檔https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_audit...

以上就是MySQL ibdata1文件減肥過程解析的詳細內容,更多關于MySQL ibdata1文件減肥的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美亚洲一级| 91精品视频一区二区| 久久精品国产成人一区二区三区| 男女男精品网站| 欧美专区18| 天堂av在线一区| 国产精品日本| 亚洲97av| 国产精品欧美一区二区三区不卡| 欧美日韩一区二区高清| 欧美日韩伊人| 国产精品国产三级在线观看| 里番精品3d一二三区| 久久影院午夜精品| 天堂中文av在线资源库| 欧美不卡高清一区二区三区| a日韩av网址| 久久亚洲在线| 国产一级一区二区| 日韩激情精品| 精品欠久久久中文字幕加勒比| 国产va在线视频| 欧美日韩在线二区| 男女性色大片免费观看一区二区| 日韩二区三区在线观看| 欧美极品中文字幕| 欧美不卡高清一区二区三区| 亚洲在线观看| 国产欧美一区二区三区国产幕精品 | 国产精品视频一区视频二区| 国产福利亚洲| 日韩精品免费一区二区在线观看 | 精品成人18| 亚洲国产欧美日本视频| 欧美一区二区性| 综合在线一区| 风间由美中文字幕在线看视频国产欧美| 91av亚洲| 视频国产精品| 精品国产欧美日韩一区二区三区| 麻豆视频一区| 国产高清一区| 久久精品凹凸全集| 日韩欧美一区二区三区免费看| 美女精品在线观看| 国产精品嫩模av在线| 久久夜夜操妹子| 亚洲啊v在线免费视频| 国产一区二区三区精品在线观看| 99精品99| 国语精品一区| 蜜臀国产一区二区三区在线播放| 欧美激情麻豆| 奶水喷射视频一区| 精品三级在线| 免费日韩av片| 国产美女高潮在线观看| 亚洲最新av| 波多野结衣久久精品| 亚洲一二av| 日韩高清中文字幕一区二区| 欧美亚洲三区| 国产精品高颜值在线观看| 日本伊人久久| 免费视频一区二区三区在线观看| 亚洲成人av观看| 欧美亚洲一区二区三区| 精品三级久久| 久久国产精品免费一区二区三区 | 久久婷婷av| 日本aⅴ免费视频一区二区三区| 欧洲一区二区三区精品| 欧美成人高清| 日韩精品中文字幕一区二区| 日韩国产一区二区三区| 日韩精品久久理论片| 亚洲第一精品影视| 国产精品magnet| 欧美专区在线| 日韩毛片在线| 久久精品资源| 视频一区免费在线观看| 天堂8中文在线最新版在线| 久久精品99久久久| 一二三区精品| 亚洲欧美日韩精品一区二区| 国产成人精品一区二区三区免费| 婷婷成人av| 中文亚洲免费| 久久三级视频| 中文字幕人成乱码在线观看| 国产精品免费99久久久| 亚洲不卡视频| 中文一区一区三区免费在线观 | 亚洲免费成人| 国产精品国产三级国产在线观看| 日本中文字幕一区二区| 亚洲精品91| 久久精品在线| 大香伊人久久精品一区二区| 国产精品久久久久9999高清| 中文字幕av一区二区三区人| 亚洲91久久| 日本一二区不卡| 麻豆视频一区二区| 国产麻豆精品| 国产欧美自拍| 国产欧美丝祙| 日韩激情综合| 日韩精品免费一区二区夜夜嗨| 欧美aa国产视频| 麻豆91小视频| 欧美在线观看视频一区| 合欧美一区二区三区| 欧美在线不卡| 五月激激激综合网色播| 亚洲最新av| 亚洲一区黄色| 久久福利毛片| 亚洲激情黄色| 在线亚洲国产精品网站| 亚洲国产不卡| 欧美精品九九| 国产一级一区二区| 视频一区二区三区入口| 91麻豆国产自产在线观看亚洲| 久久在线91| 国产成人精品一区二区三区视频 | 美女久久久久| 欧美日韩国产在线观看网站 | 88xx成人免费观看视频库| 亚洲特级毛片| 五月天久久网站| 成人久久一区| 久久国产直播| 黑丝一区二区三区| 黄色在线一区| 老司机精品久久| 日韩精品一区二区三区中文| 奇米狠狠一区二区三区| 国产伦精品一区二区三区视频| 88久久精品| 欧美激情福利| 在线精品亚洲欧美日韩国产| 精品久久在线| 欧美日中文字幕| 四虎在线精品| 精品日韩一区| 99xxxx成人网| av资源新版天堂在线| 特黄毛片在线观看| 午夜久久免费观看| 亚洲另类黄色| 美女精品一区二区| 日韩三区在线| 在线精品国产亚洲| 国产精品最新| 久久久精品久久久久久96| 尤物精品在线| 亚洲精品极品| 精品国产aⅴ| 免费精品国产的网站免费观看| 国产精品日本| 国产精品亚洲二区| 日韩欧美精品一区| 亚洲丝袜美腿一区| 国产精品久久777777毛茸茸| 久久精品观看| 亚洲精品国产日韩| 麻豆网站免费在线观看| 中国女人久久久| 久久超级碰碰| 香蕉国产精品| 国产日韩免费| 日韩精品永久网址| 亚洲一区欧美二区| 国产亚洲欧美日韩精品一区二区三区 | 精品三级国产| 在线 亚洲欧美在线综合一区| 日本欧美一区二区| 福利一区在线| 首页国产欧美日韩丝袜| 国产精品日韩精品中文字幕| 在线日韩欧美| 91av一区| 午夜视频精品| 国产一区丝袜| 亚洲精品第一| 亚洲成人国产| 国产精品丝袜在线播放| 日韩亚洲国产欧美| 国产videos久久| 亚洲欧洲一区二区天堂久久| 国产精品久久久久久久久久妞妞| 91精品精品| 国产精品草草| 石原莉奈在线亚洲三区| 97精品国产福利一区二区三区| 亚洲影院天堂中文av色| 国产v日韩v欧美v|