前面文章有介绍过 MySQL 系统自带的 mysqldump 备份工具的使用,其实还有一个开源工具 mydumper 同样适用于 MySQL 的逻辑备份。之前一直没有正式体验过,只是听说比 mysqldump 要快很多,具体使用效果如何, 一起来看下吧。
mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具,备份方式为逻辑备份。它支持多线程,备份速度远高于原生态的mysqldump以及众多优异特性。因此该工具是DBA们的不二选择。本文主要描述该工具的使用方法并给出示例。
本文档将详细介绍如何对 TiDB 进行全量备份与恢复。增量备份与恢复可使用 TiDB Binlog。
本文为 DM 源码阅读系列文章的第四篇,上篇文章 介绍了数据同步处理单元实现的功能,数据同步流程的运行逻辑以及数据同步处理单元的 interface 设计。本篇文章在此基础上展开,详细介绍 dump 和 load 两个数据同步处理单元的设计实现,重点关注数据同步处理单元 interface 的实现,数据导入并发模型的设计,以及导入任务在暂停或出现异常后如何恢复。
Mydumper 采用更先进的Stream流式管道技术,能够通过一条命令实现备份和恢复,显著加快了恢复速度。它可以:
安装机器腾讯云CVM镜像TencentOS Server 3.1 (TK4) 兼容Centos
下载安装:https://github.com/mydumper/mydumper
Tools SIG Community:主要涵盖 TiDB 数据处理工具,包含 TiDB 数据备份/导入导出,TiDB 数据变更捕获,其他数据库数据迁移至 TiDB 等。
mydumper早期版本,第一步先通过mydumper导出数据入本地;第二步再通过myloader导入本地数据库里。
提起mydumper,首先让人想到的是相对于mysqldump的多线程逻辑备份工具,而往往会忽略同是mydumper项目下的myloader工具。myloader是与mydumper工具备份配合使用的多线程备份恢复工具,可以直接以mydumper输出文件为输入,恢复备份数据。
相对于 MySQL 官方提供的逻辑备份工具 mysqldump,mydumper 最突出的特性就是可采用多线程并行备份,极大提高了数据导出的速度。本文基于 mydumper在 github 上托管的最新源码,对其实现原理进行较详细的介绍。
mydumper 最突出的特性就是可采用多线程并行备份,极大提高了数据导出的速度。其特征之一是在处理过程中需要对列表加以锁定,所以备份时尽量不要选择工作时间,避免引起 DML 阻塞。若是主从架构的话,从库一般处于只读状态,则可以直接在从库上执行备份操作,不会有 DML 堵塞了。
#!/bin/bash #ocpyang@126.com ########脚本说明 #1.默认读取当前目录下database.txt文件,备份部分数据库 #2.如果database.txt为空,则执行全备或备份指定的个别数据库 #set parameter mydumper=/usr/local/bin/mydumper #根据自己的实际情况设置 dir_backup=/backup #根据自己的实际情况设置 mysql_host=localhost #根据自己的实
参考:http://www.tuicool.com/articles/2eAVVvN
一 前言 大家对于MySQL的逻辑备份工具mysqldump应该都比较了解,本文介绍一款由MySQL ,Facebook 等公司的开发维护另外一套逻辑备份恢复工具---mydumper/myloader。 目前已经开发到0.9.1 版本。 mydumper 具有如下特性 1 支持多线程导出数据,速度比mysqldump快,生产上150G 导出到本地SSD磁盘40min 。 2 支持一致性备份,使用FTWRL(FLUSH TABLES WITH READ LOCK)会阻塞DML语句,保证备份数据的一致性。 3 支持将导出文件压缩,节约空间。 4 支持多线程恢复。 5 支持以守护进程模式工作,定时快照和连续二进制日志 6 支持按照指定大小将备份文件切割。 7 数据与建表语句分离。
mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具,备份方式术语逻辑备份。它支持多线程,备份速度远高于原生态的mysqldump以及众多优异特性。因此该工具是DBA们的不二选择。本文主要描述该工具的安装及其出现异常的解决方法。
上面,我们使用 -B test 表明是对 test 这个 database 操作,然后用 -T t1,t2 表明只导出 t1,t2 两张表。
-B, --database Database to dump
之前写到我们只是同步了一个db库,如果说我们打算同步两个、多个甚至全库需要如何操作呢,这里自己也在此研究了下,大佬们可以借鉴下
上篇文章介绍了 mydumper 备份工具的使用方法,文中有提到 mydumper 和 myloader 是一对相互的命令,即 mydumper 负责备份(导出),myloader 负责恢复(导入)。那么 myloader 又该如何使用呢?本篇文章我们一起来看下。
作为一名MySQL DBA,就应该了解MySQL备份无论是逻辑备份还是物理备份,都会使用FLUSH TABLES WITH READ LOCK(下面简称FTWRL)锁来保证数据库备份的一致性。
databases Binlog my.cnf /data/xxx(数据目录)
墨墨导读:备份恢复是DBA最后一道防线。最近项目碰到备份恢复的相关的事项,结合自己的经验,巩固一下知识。
mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具,备份方式为逻辑备份。它支持多线程,备份速度远高于原生态的mysqldump以及众多优异特性。与其相配套的恢复工具则是myloader,主要用于将dump出来的sql以并行的方式进行恢复。本文主要描述myloader的使用方法并给出示例。
TiDB 提供了很多种数据迁移的方式,但这些工具/方案普遍对MySQL比较友好,一旦涉及到异构数据迁移,就不得不另寻出路,借助各种开源或商业的数据同步工具。其实数据在不同系统的流转当中,有一种格式是比较通用的,那就是txt/csv这类文件,把数据用约定好的分隔符换行符等标记存放在一起,比如最常见的逗号分隔:
mydumper与myloader是一个优秀的第三方mysql数据库逻辑备份恢复工具,使用多线程的导出与导入。弥补了mysqldump单线程的不足。本文描述的是如何加快mydumper与myloader的导出与导入供大家参考。
关于新的MySQL Shell Dump&Load实用程序的第二部分旨在演示性能,同时还将其与其他各种逻辑转储和加载工具进行比较:mysqldump,mysqlpump&mydumper。
虽然云上的数据库已经有了高可用的报障功能了,但是对于某些业务需要更加灵活的数据处理以及其他需求外,需要搭建一个线下的从库来实现,这里实际上腾讯云也给出了一份maridb自建从库的文档,大家也可以按照这里去配置
#!/usr/bin/phthon import os import time import commands import shutil import threading from os.path import join, getsize import MySQLdb as mydb # 备份目录 baseDir = "/data2/backup/backup_data/" # ns 或 wx; 备份后是否要压缩(mydumper 自带压缩功能),要压缩 T
应用侧的同学需要对数据进行导出和导入,于是跑来找 DBA 咨询问题:MySQL 如何导入大批量的数据?
https://github.com/ddcw/ddcw/tree/master/html/GetImportExportCommand.html
(2) slave配置 slave如上安装时的配置,注意的是replicate-do-db、replicate-ignore-db的配置
用于保证InnoDB备份数据时的一致性,配合RR隔离级别一起使用;当发起事务时,读取一个数据的快照,直到备份结束,都不会读取到本事务开始之后提交的任何数据
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低。衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间。这篇文章主要讨论MySQL的备份方案,重点介绍几种备份方式的原理,包括文件系统快照(LVM),逻辑备份工具Mysqldump,Mydumper,以及物理备份工具Xtrabackup,同时会详细讲解几种方案的优缺点,以及可能遇到的问题。
数据库作为基础设施,其安全性不言而明,因此数据安全备份和恢复功能是在严肃使用场景下的标配。TiDB 作为一款分布式数据库,目前可以满足超大集群的备份恢复的需求,经过测试,10T 数据的备份恢复速度可以达到 GB/s 级别。这得益于我们研发的分布式备份恢复工具 Backup&Restore That Scales(以下简称 BR)。
前几天有客户测试使用云数据库的时候提出要禁止mydumper 关闭redo log的操作 (说白了就是导入数据时保持MySQL 实例的redo logging功能), 这才想起 在 MySQL 8.0.21 版本中,开启了一个新特性 “Redo Logging 动态开关”。
TDSQL平台下,某系统由于业务需求,要将其中三个数据库迁移至其他实例。TDSQL拥有DCN同步以及多源同步等迁移功能,但是由于前期部署规划问题并没有安装相关组件,因此综合考虑后,决定使用mydumper进行数据冷迁移。
在做一些技术规划的时候,会发现有一些事情需要前置,比如说MySQL里面的工具,如果等到实际碰到了各色的问题再来统一,就比较难了。有沟通成本,人力成本,技术沉淀和持续交付等等的成本,这些最好提前和团队有一个基本的沟通,达成一个共识。内部统一了以后,和开发同学规范统一就有了一个基线。 大体来说,我考虑了以下几个方面,内容适当做了删减。 运维管理工具 数据备份恢复工具 数据库优化工具 客户端工具 性能测试工具 数据库版本管理工具 数据库审计工具 我来逐个说一下,有更好的工具也欢迎各位拍砖。 运维管
本文和封面来源:https://www.percona.com/blog,爱可生开源社区翻译。
中信银行的某个大佬在一个会议中提及中信银行将成为中国第一个在技术上支持生僻字的商业银行。由于历史原因,我们的MySQL部署规范提供的字符集为utf8字符集,需要将数据库的字符集集体转换为utf8mb4。
MySQL Shell 8.0.21带有两个实用程序,可用于对实例(util.dumpInstance())或选定的模式(util.dumpSchemas())执行逻辑转储。这些工具相对于mysqldump实用程序提供了重大的性能改进,我们的一些基准测试显示吞吐量高达3GB / s!让我们看看如何实现这一目标。
MySQL 的数据导出导入其实从MYSQL 5.5 到 5.7 大部分采用的方法有如下几种
学习一款数据库,要学会备份和恢复。备份是一个严谨的工作,作为一个dba,掌握数据库备份、恢复的各种手段。
TiDB-DM(Data Migration)是用于将数据从 MySQL/MariaDB 迁移到 TiDB 的工具。该工具既支持以全量备份文件的方式将 MySQL/MariaDB 的数据导入到 TiDB,也支持通过解析执行 MySQL/MariaDB binlog 的方式将数据增量同步到 TiDB。特别地,对于有多个 MySQL/MariaDB 实例的分库分表需要合并后同步到同一个 TiDB 集群的场景,DM 提供了良好的支持。如果你需要从 MySQL/MariaDB 迁移到 TiDB,或者需要将 TiDB 作为 MySQL/MariaDB 的从库,DM 将是一个非常好的选择。
株式会社 FUNYOURS JAPAN 自 2014 在日本成立以来,营运多款颇受好评的页游跟手游,如:剣戟のソティラス、九十九姬 等,对于营运游戏来说,能够了解游戏中的玩家在做什么,喜欢的偏好是什么,关卡的设计是否平衡,都是相当重要的,所以随着营运时间的增长,资料库数据在亿笔以上也是寻常的。
问题现象:tdsql-xxxxxx 库plidb表letterperson字段PrintState被大量置为了‘0’
Mysql的使用中,会伴随着一个其他数据库中很少被提到的问题,数据融合。ORACLE ,SQL SERVER ,PG 你可以去分区表,MYSQL 中遇到这样的问题大多去分库分表去解决,虽然现在有了TIDB 可以进行MYSQL 的后续的数据融合,但如果数据量不大的情况下,或者有些 MYSQL 8的新支持的语法需求等等,多源复制还是一个好的选择。
TiDB-DM 是由 PingCAP 开发的一体化数据同步任务管理平台,支持从 MySQL 或 MariaDB 到 TiDB 的全量数据迁移和增量数据同步,在 TiDB DevCon 2019 正式开源。作为一款连接 MySQL/MariaDB 生态和 TiDB 生态的中台类型产品,DM 获得了广泛的关注,很多公司、开发者和社区的伙伴已经在使用 DM 来进行数据迁移和管理。随着大家使用的广泛和深入,遇到了不少由于对 DM 原理不理解而错误使用的情况,也发现了一些 DM 支持并不完善的场景和很多可以改进的地方。
重要结论先说:导入大批量数据时,采用GreatSQL 8.0.32-24中新增并行load data特性是最快的,关于该特性的描述详见:Changes in GreatSQL 8.0.32-24。
领取专属 10元无门槛券
手把手带您无忧上云