【赵渝强老师】使用mydumper备份MySQL

在这里插入图片描述

MySQL在备份方面包含了自身的mysqldump工具,但其只支持单线程工作,这就使得它无法迅速的备份数据。而mydumper作为一个实用工具,能够良好支持多线程工作,这使得它在处理速度方面十倍于传统的mysqldump。其特征之一是在处理过程中需要对列表加以锁定,因此如果我们需要在工作时段执行备份工作,那么会引起DML阻塞。但一般现在的MySQL都有主从,备份也大部分在从上进行,所以锁的问题可以不用考虑。这样,mydumper能更好的完成备份任务。

mydumper具备以下特点:

  • 轻量级C语言写的
  • 执行速度比mysqldump快10倍
  • 事务性和非事务性表一致的快照(适用于0.2.2以上版本)
  • 快速的文件压缩
  • 支持导出binlog
  • 多线程恢复(适用于0.2.1以上版本)
  • 以守护进程的工作方式,定时快照和连续二进制日志(适用于0.5.0以上版本)
  • 开源组件(GNU GPLv3)
视频讲解如下

【赵渝强老师】使用mydumper备份MySQL

下面通过具体的步骤来演示如何使用mydumper进行数据库的热备份与恢复。
(1)安装mydumper

yum install -y \
https://github.com/maxbube/mydumper/releases/download/v0.9.5/mydumper-0.9.5-2.el7.x86_64.rpm

(2)查看mydumper的帮助信息

mydumper --help# 输出的信息如下:
Usage:mydumper [OPTION...] multi-threaded MySQL dumpingHelp Options:-?, --help             Show help optionsApplication Options:-B, --database         Database to dump-T, --tables-list      Comma delimited table list to dump (does not exclude regex option)-O, --omit-from-file   File containing a list of database.table 
entries to skip, one per line 
(skips before applying regex option)-o, --outputdir        Directory to output files to......

下表是mydumper常用参数的说明。
在这里插入图片描述

(3)创建mydumper备份的存储目录

mkdir -p /databackup/mydumper/all/

《MySQL数据库从零开始》

(4)备份所有数据库

mydumper -u root --password=Welcome_1 \
--socket /tmp/mysql.sock \
--outputdir /databackup/mydumper/all/# 提示:这里的--socket /tmp/mysql.sock参数是必须的。在默认情况下mydumper在加载/var/lib/mysql/mysql.sock文件。如果该文件不存在,将出现下面的错误信息。
** (mydumper:69463): CRITICAL **: Error connecting to database: 
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

(5)查看目录/databackup/mydumper/下的内容

tree /databackup/mydumper/all | more# 输出的信息如下:
/databackup/mydumper/all
├── demo1.audit_message-schema.sql
├── demo1.audit_message.sql
├── demo1.classes-schema.sql
├── demo1.dept-schema.sql
├── demo1.dept.sql
├── demo1.emp-schema.sql
├── demo1.emp.sql
├── demo1.indextable1-schema.sql
├── demo1.indextable1.sql
......

(6)查看文件/databackup/mydumper/demo1.emp.sql的内容

cat /databackup/mydumper/demo1.emp.sql# 输出的信息如下:
/*!40101 SET NAMES binary*/;
/*!40014 SET FOREIGN_KEY_CHECKS=0*/;
/*!40103 SET TIME_ZONE='+00:00' */;
INSERT INTO `emp` VALUES
(7369,"SMITH","CLERK",7902,"1980/12/17",800,NULL,20),
(7499,"ALLEN","SALESMAN",7698,"1981/2/20",1600,300,30),
(7521,"WARD","SALESMAN",7698,"1981/2/22",1250,500,30),
(7566,"JONES","MANAGER",7839,"1981/4/2",3670,NULL,20),
(7654,"MARTIN","SALESMAN",7698,"1981/9/28",1250,1400,30),
(7698,"BLAKE","MANAGER",7839,"1981/5/1",2850,NULL,30),
(7782,"CLARK","MANAGER",7839,"1981/6/9",2550,NULL,10),
(7788,"SCOTT","ANALYST",7566,"1987/4/19",3000,NULL,20),
(7839,"KING","PRESIDENT",-1,"1981/11/17",5950,NULL,10),
(7844,"TURNER","SALESMAN",7698,"1981/9/8",1500,NULL,30),
(7876,"ADAMS","CLERK",7788,"1987/5/23",1100,NULL,20),
(7900,"JAMES","CLERK",7698,"1981/12/3",950,NULL,30),
(7902,"FORD","ANALYST",7566,"1981/12/3",3000,NULL,20),
(7934,"MILLER","CLERK",7782,"1982/1/23",1400,NULL,10);# 提示:可以看出mydump也将数据备份成了SQL语句。

(7)备份指定数据库demo1

mkdir -p /databackup/mydumper/demo1/mydumper -u root --password=Welcome_1 \
--socket /tmp/mysql.sock \
--database demo1 \
--outputdir /databackup/mydumper/demo1/

(8)备份指定数据库demo1下指定的表(员工表和部门表)

mkdir -p /databackup/mydumper/multi_tables/mydumper -u root --password=Welcome_1 \
--socket /tmp/mysql.sock \
--database demo1 \
--tables-list emp,dept \
--outputdir /databackup/mydumper/multi_tables/

(9)删除demo1数据库

mysqladmin -uroot -pWelcome_1 drop demo1# 输出的信息如下:
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.Do you really want to drop the 'demo1' database [y/N] y
Database "demo1" dropped

(10)使用myloader执行恢复数据库demo1

mysqladmin -uroot -pWelcome_1 create demo1 myloader -u root -p Welcome_1 --socket /tmp/mysql.sock \
--database demo1 \
-d /databackup/mydumper/demo1/# 提示:在执行恢复之前,demo1如果没有,则需要事先创建。

(11)检查数据是否恢复

《MySQL数据库从零开始》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88531.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云 Flexus+DeepSeek 征文|华为云单机部署 Dify-LLM 开发平台全流程指南【服务部署、模型配置、知识库构建全流程】

华为云 FlexusDeepSeek 征文|华为云单机部署 Dify-LLM 开发平台全流程指南【服务部署、模型配置、知识库构建全流程】 文章目录 华为云 FlexusDeepSeek 征文|华为云单机部署 Dify-LLM 开发平台全流程指南【服务部署、模型配置、知识库构建全流程】前言1、…

✨通义万相 2.1(Wan2.1)环境搭建指南:基于 CUDA 12.4 + Python 3.11 + PyTorch 2.5.1 GPU加速实战

🚀【超详细】基于 CUDA 12.4 Python 3.11 构建 Wan2.1 项目的集成推理环境(含 PyTorch 2.5.1 GPU 安装教程) 本文将一步一步带你搭建一个可用于构建和运行 Wan2.1 的深度学习环境,完全兼容 CUDA 12.4,并基于官方镜像 …

PROFIBUS DP转ETHERNET/IP在热电项目中的创新应用

在热电项目中,多种设备的高效协同是保障能源稳定供应的关键。PROFIBUS DP与ETHERNET/IP两种工业通信协议因特性不同而应用场景各异。通过协议转换技术实现JH-PB-EIP疆鸿智能PROFIBUS DP转ETHERNET/IP,可整合西门子PLC与电力仪表、变频器等设备&#xff0…

精准把脉 MySQL 性能!xk6-sql 并发测试深度指南

在数据库性能测试领域,xk6-sql凭借其强大的功能和灵活性,成为众多开发者和测试人员的得力工具。它能够模拟高并发场景,精准测试数据库在不同负载下的性能表现。然而,在一些网络受限的环境中,实现xk6-sql的离线安装以及…

【文件】Linux 内核优化实战 - fs.inotify.max_user_instances

目录 一、参数作用与原理1. 核心功能2. 应用场景 二、默认值与影响因素1. 默认配置2. 影响因素 三、调整方法与示例1. 查看当前值2. 临时修改(生效至系统重启)3. 永久修改(修改配置文件)4. 合理值建议 四、常见报错与解决方案1. 报…

c++系列之特殊类的设计

💗 💗 博客:小怡同学 💗 💗 个人简介:编程小萌新 💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞 仅在堆上创建对象的类 将类的构造函数,拷贝构造私有,防止在栈上生…

SpringBoot的国际化

国际化(internationalization)是设计容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言元素。换言之,应用程序的功能和代码设计考虑了在不同地区运行的需要。开发这样的程序的过程,就称为国际化。 那么当我…

prometheus+grafana+Linux监控

prometheusgrafanaLinux监控 环境说明 操作前提: 先去搭建Docker部署prometheusgrafana...这篇文章的系统 Docker部署prometheusgrafana...的参考文章: Docker部署prometheusgrafana…-CSDN博客 Linux部署docker参考文章: 02-Docker安装_doc…

文档处理控件Aspose.Words教程:在.NET中将多页文档转换为单个图像

在Aspose.Words for .NET 25.6版本中,我们引入了一项新功能,允许您将多页文档导出为单个光栅图像。当您需要将文档作为单个可视文件共享或显示时,此功能非常有用。 Aspose.Words for .NET 25.6 的新功能 在 25.6 版之前,将多页文…

vuex4.0用法

VUEX 状态管理,多个组件有共享数据的时候,就叫状态管理 什么情况下会用到vuex , 如果你不知道vuex的情况也能完成你的需求,就说你的项目中不需要用到状态管理。 组件层级比较复杂的时候,还是用组件传值的方式来传值,…

2025.6.24总结

今天发生了两件事,这每件事情都足以影响我的工作状态。 1.团队中有人要转岗 这算是最让我有些小震惊的事件了。我不明白,那个同事干得好好的,为啥会转岗,为啥会被调到其他团队。虽然团队有正编,有od,但我自始自终觉得…

状态模式详解

概述 结构设计类似责任链模式,但是在各个状态进行遍历的过程中,更注重的是条件的判断,只有符合条件的状态才能正常匹配进行处理。条件不成功的会立即切换到下一个状态。 有限状态机 状态机一般指的是有限状态机(FSM&#xff1a…

Lua 调试(Debug)

Lua 调试(Debug) 引言 Lua 是一种轻量级的编程语言,广泛应用于游戏开发、嵌入式系统、脚本编写等领域。在 Lua 开发过程中,调试是确保程序正确运行的重要环节。本文将详细介绍 Lua 调试的基本方法、常用工具以及调试技巧,帮助开发者提高编程…

Windows安装Emscripten‌/emsdk(成功)

安装git安装python 不要自行下载版本,先卸载其他版本的python。 使用管理员打开cmd,输入python3,直接跳转到应用商店,安装即可。 为什么一定要这么安装?好像是跟路径有关。 下载emsdk git clone https://github.c…

AI网页部署在本地_windows

用bolt.new写了一个网页,下载ZIP至本地 以下是在 Windows 上本地运行你用 Node.js 搭建的网页服务,并在浏览器中访问的常见流程: 1、安装 Node.js 访问官网 Node.js — Run JavaScript Everywhere ,下载适合 Windows 的 LTS 版本…

Linux sudo命令

sudo是一个常用的Linux命令,用于以超级用户的权限执行命令。下面是对sudo命令的介绍: sudo命令的作用: sudo允许普通用户以超级用户(root)的身份执行特定命令或访问特定文件。它提供了一种安全且可控制的方式&#xf…

邮件合并----批量从excel表中导出数据到word中

文章目录 前言一、操作流程1. 打开word,开始邮件合并->邮件合并分布向导2. 开始邮件合并,一共6步3. 选择全部,点击确认,即可生成Excel表中244条记录,也就是244页。 总结 前言 涉及到将学生的姓名、学号、档案编号、…

活动安排贪心算法

输入说明 n      —— 活动数量 s[1…n]  — 第 i 个活动的开始时间 (start) f[1…n]  — 第 i 个活动的结束时间 (finish) 前置要求:数组已按 f 从小到大排好序 (若没排,先调用 sortByFinishTime(),复杂度 O(n log …

Mysql8启用日志审计插件

概述 等保要求,数据库启用日志审计。Mysql8上面使用开源插件audit-plugin-for-mysql(MariaDB的审计插件不用折腾了,无论直接使用还是编译使用,在Mysql8上都不行) 插件下载 日志审计插件下载地址: https:…

机器学习-线性模型

目录 线性模型 1、线性回归: 2、对数几率回归: 3、线性判别分析: 4、多分类学习: 5、类别不平衡问题: 基本数理知识补充: 损失函数: 凹凸函数 梯度下降 线性模型 线性模型形式简单、易…