电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

MySQL官方導出工具mysqlpump的使用

瀏覽:111日期:2023-10-02 16:30:02
目錄簡介使用介紹實際體驗優缺點總結一下簡介

mysqlpump 是 mysqldump 的一個衍生,本身也參考了 mydumper 的思路,支持了并行導出數據,因此導出數據的效率比 mysqldump 會高很多。

使用介紹

mysqlpump 的絕大多數參數與 mysqldump 是一樣的,整體的使用方法和 mysqldump 沒有太多的差異。這里列出一部分 mysqlpump 中比較重要且常用的參數。

參數

說明

--default-parallelism=#

設置并行導出的并發度,與 single-transaction 沖突

--single-transaction

創建一個單獨的事務來導出所有的表

--exclude-databases=name

導出時排除掉某些庫,多個庫以逗號分隔

--exclude-tables=name

導出時排除掉某些表,多個表以逗號分隔

--include-databases=name

導出時包含某些庫,多個庫以逗號分隔

--include-tables=name

導出時包含某些表,多個表以逗號分隔

實際體驗

這里對 mysqlpump 做一次簡單的試用,目標實例選擇 MySQL 5.7,參數中同時采用了single-transaction和default-parallelism,試試看這個沖突的效果。

mysqlpump 側的輸出參考如下信息:

root@VM-64-10-debian:~# mysqlpump -h172.100.10.10 -uroot -p --single-transaction --default-parallelism=16 --set-gtid-purged=OFF -B sbtest > sbtest.sqlDump progress: 0/1 tables, 250/987400 rowsDump progress: 0/5 tables, 117250/3946600 rowsDump progress: 1/5 tables, 258750/3946600 rowsDump progress: 1/5 tables, 385500/3946600 rowsDump progress: 1/5 tables, 516750/3946600 rowsDump progress: 1/5 tables, 639250/3946600 rowsDump progress: 1/5 tables, 757000/3946600 rowsDump progress: 1/5 tables, 885000/3946600 rowsDump progress: 1/5 tables, 1005750/3946600 rowsDump progress: 1/5 tables, 1114250/3946600 rowsDump progress: 1/5 tables, 1223250/3946600 rowsDump progress: 2/5 tables, 1312500/3946600 rowsDump progress: 2/5 tables, 1430750/3946600 rowsDump progress: 2/5 tables, 1553000/3946600 rowsDump progress: 2/5 tables, 1680250/3946600 rowsDump progress: 2/5 tables, 1809500/3946600 rowsDump progress: 2/5 tables, 1940750/3946600 rowsDump progress: 2/5 tables, 2060000/3946600 rowsDump progress: 2/5 tables, 2175250/3946600 rowsDump progress: 2/5 tables, 2295250/3946600 rowsDump progress: 3/5 tables, 2413500/3946600 rowsDump progress: 3/5 tables, 2554500/3946600 rowsDump progress: 3/5 tables, 2693500/3946600 rowsDump progress: 3/5 tables, 2818750/3946600 rowsDump progress: 3/5 tables, 2941500/3946600 rowsDump progress: 4/5 tables, 3056000/3946600 rowsDump progress: 4/5 tables, 3172750/3946600 rowsDump progress: 4/5 tables, 3280000/3946600 rowsDump progress: 4/5 tables, 3372000/3946600 rowsDump progress: 4/5 tables, 3444750/3946600 rowsDump completed in 126555 milliseconds

可以看到當這兩個參數同時啟用的時候,mysqlpump 實際上還是在一個一個表的導出。single-transaction的優先級會高于default-parallelism。

去掉single-transaction再進行測試的時候,會發現一個比較有意思的現象,觀察 MySQL 的 processlist,會有如下結果:

mysql> show processlist;+---------+------+--------------------+------+---------+------+-------------------+----------------------------------------------------+| Id | User | Host | db | Command | Time | State | Info |+---------+------+--------------------+------+---------+------+-------------------+----------------------------------------------------+| 2763496 | root | 172.100.10.10:49086 | NULL | Query | 0 | starting | show processlist || 2763585 | root | 172.100.10.10:49192 | NULL | Sleep | 126 | | NULL || 2763586 | root | 172.100.10.10:49194 | NULL | Sleep | 126 | | NULL || 2763587 | root |172.100.10.10:49196 | NULL | Sleep | 126 | | NULL || 2763588 | root | 172.100.10.10:49198 | NULL | Sleep | 126 | | NULL || 2763589 | root | 172.100.10.10:49200 | NULL | Sleep | 126 | | NULL || 2763590 | root | 172.100.10.10:49202 | NULL | Sleep | 126 | | NULL || 2763591 | root | 172.100.10.10:49204 | NULL | Sleep | 126 | | NULL || 2763592 | root | 172.100.10.10:49206 | NULL | Sleep | 126 | | NULL || 2763593 | root | 172.100.10.10:49208 | NULL | Sleep | 126 | | NULL || 2763594 | root | 172.100.10.10:49210 | NULL | Sleep | 126 | | NULL || 2763595 | root | 172.100.10.10:49212 | NULL | Query | 125 | Sending to client | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest5` || 2763596 | root | 172.100.10.10:49214 | NULL | Query | 125 | Sending to client | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest4` || 2763597 | root | 172.100.10.10:49216 | NULL | Query | 125 | Sending to client | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest3` || 2763598 | root | 172.100.10.10:49218 | NULL | Query | 125 | Sending to client | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest2` || 2763599 | root | 172.100.10.10:49220 | NULL | Query | 125 | Sending to client | SELECT `id`,`k`,`c`,`pad` FROM `sbtest`.`sbtest1` || 2763600 | root | 172.100.10.10:49222 | NULL | Sleep | 125 | | NULL || 2763601 | root | 172.100.10.10:49224 | NULL | Sleep | 125 | | NULL |+---------+------+--------------------+------+---------+------+-------------------+----------------------------------------------------+18 rows in set (0.00 sec)mysql>

可以很明顯的看出來,mysqlpump 的“并行導出”實際上只是基于表級別的并行導出,當存在單個大表的時候,導出的時間會被嚴重的影響,存在短板效應。

額外的疑問:如果default-parallelism和single-transaction有沖突的話,那么并行導出的時候是不是無法確認數據一致性?

實踐出真實,打開 general_log 看一下導出時的操作:

2021-05-12T11:54:09.033215Z75 Connect root@172.100.10.10 on using SSL/TLS2021-05-12T11:54:09.075347Z75 Query FLUSH TABLES WITH READ LOCK //開始鎖表2021-05-12T11:54:09.103132Z75 Query SHOW WARNINGS2021-05-12T11:54:09.106382Z75 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ2021-05-12T11:54:09.106553Z75 Query SHOW WARNINGS2021-05-12T11:54:09.106640Z75 Query START TRANSACTION WITH CONSISTENT SNAPSHOT2021-05-12T11:54:09.108115Z75 Query SHOW WARNINGS2021-05-12T11:54:09.127277Z76 Connect root@172.100.10.10 on using SSL/TLS2021-05-12T11:54:09.127452Z76 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ2021-05-12T11:54:09.127590Z76 Query SHOW WARNINGS2021-05-12T11:54:09.127680Z76 Query START TRANSACTION WITH CONSISTENT SNAPSHOT2021-05-12T11:54:09.127790Z76 Query SHOW WARNINGS......2021-05-12T11:54:10.018813Z90 Connect root@172.100.10.10 on using SSL/TLS2021-05-12T11:54:10.018944Z90 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ2021-05-12T11:54:10.019047Z90 Query SHOW WARNINGS2021-05-12T11:54:10.019150Z90 Query START TRANSACTION WITH CONSISTENT SNAPSHOT2021-05-12T11:54:10.019226Z90 Query SHOW WARNINGS2021-05-12T11:54:10.025833Z91 Connect root@172.100.10.10 on using SSL/TLS2021-05-12T11:54:10.025934Z91 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ2021-05-12T11:54:10.026048Z91 Query SHOW WARNINGS2021-05-12T11:54:10.026141Z91 Query START TRANSACTION WITH CONSISTENT SNAPSHOT2021-05-12T11:54:10.026219Z91 Query SHOW WARNINGS2021-05-12T11:54:10.026293Z75 Query UNLOCK TABLES //結束鎖表2021-05-12T11:54:10.026406Z75 Query SHOW WARNINGS

可以看到并行導出之前,有一個線程加上了全局讀鎖,然后等所有的并發線程打開事務之后才解鎖了表,因此并行導出的時候也是數據一致的。

優缺點 優點: 并行備份數據庫和數據庫中的對象,比 mysqldump 更高效。更好的控制數據庫和數據庫對象(表,存儲過程,用戶帳戶)的備份。備份進度可視化。 缺點: 只能并行到表級別,如果有一個表數據量特別大那么會存在非常嚴重的短板效應。導出的數據保存在一個文件中,導入仍舊是單線程,效率較低。無法獲取當前備份對應的binlog位置。總結一下

盡管 mysqlpump 還有非常多的不足,但是相比較于原始的 mysqldump 已經有了非常大的進步,從這個工具的發布也可以看出來 Oracle 終于開始重視 MySQL 的生態工具了,期待官方提供更多的更優秀的生態工具。

以上就是MySQL官方導出工具mysqlpump的使用的詳細內容,更多關于mysqlpump的使用的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 中山市派格家具有限公司【官网】 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 光照全温振荡器(智能型)-恒隆仪器 | 南京交通事故律师-专打交通事故的南京律师 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 环球周刊网| 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 牛皮纸|牛卡纸|进口牛皮纸|食品级牛皮纸|牛皮纸厂家-伽立实业 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 锂离子电池厂家-山东中信迪生电源| 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 农产品溯源系统_农产品质量安全追溯系统_溯源系统 | China plate rolling machine manufacturer,cone rolling machine-Saint Fighter | 物流公司电话|附近物流公司电话上门取货 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 上海璟文空运首页_一级航空货运代理公司_机场快递当日达 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 电动液压篮球架_圆管地埋式篮球架_移动平箱篮球架-强森体育 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 信阳市建筑勘察设计研究院有限公司 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 |