如何从完整 MySQL 转储文件中提取表备份

2023-11-15

mysql转储是 MySQL/MariaDB 提供的用于备份数据库和表的实用程序。一般来说,我们会定期对数据库进行完整转储并保留它。但有时我们需要从备份中恢复单个或 2-3 个表。那么问题是如何从完整备份文件中恢复特定的表。本文将帮助您了解如何从完整数据库备份文件中提取表备份。此外,我们可以将所有表备份提取到每个表的单独文件中。

第 1 步 – 下载 MySQL 转储拆分脚本

将完整的 mysqldump 数据库备份文件拆分为单独的表特定文件备份。创建一个名为splitDB.sh并将以下脚本复制到其中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
 
####
# 将 MySQL 转储 SQL 文件拆分为每个表一个文件
# 基于http://blog.tty.nl/2011/12/28/splitting-a-database-dump
####
 
if [ $#-lt 1];然后
  echo “使用$0 DUMP_FILE [表]”
  exit
fi
 
if [ $#-ge 2];然后
  csplit -s -ftable $1 “/-- 表/的表结构” "%--表`$2`%的表结构" “/-- 表/的表结构” “%40103 设置TIME_ZONE=@OLD_TIME_ZONE%1”
else
  csplit -s -ftable $1 “/-- 表/的表结构” {*}
fi
 
[ $? -eq 0 ] || exit
 
mv table00 head
 
FILE=`ls -1 table* | tail -n 1`
if [ $#-ge 2];然后
  mv $FILE foot
else
  csplit -b '%d' -s -f$FILE $FILE “/40103 设置时区=@OLD_TIME_ZONE/” {*}
  mv ${FILE}1 foot
fi
 
for FILE in `ls -1 table*`; do
  NAME=`head -n1 $FILE | cut -d$'x60' -f2`
  cat head $FILE foot > “$NAME.sql”
done
 
rm head foot table*

该脚本取自https://gist.github.com/jasny/1608062.

步骤 2 – 从转储中提取所有表

对于此示例,我有一个名为的转储文件mydb.sql,我想将其拆分为每个表的小备份。为此我创建了一个新目录/opt/splitdb并复制上面的脚本名称splitDB.sh在此目录中。现在使用以下命令提取各个备份文件中的所有表。


cd /opt/splitdb
chmod +x splitDB.sh
./splitDB.sh mydb.sql    #Do not run with 'sh' command 
  

步骤 3 – 从转储中提取单个表

如果我们只想提取一张表,我们可以使用如下命令。例如我只想拆分名为的表my_tbl1 and my_tbl2。它将在当前目录中提取具有名称的备份my_tbl1.sql and my_tbl2.sql.


cd /opt/splitdb
chmod +x splitDB.sh
sh splitDB.sh mydb.sql my_tbl1
sh splitDB.sh mydb.sql my_tbl2
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从完整 MySQL 转储文件中提取表备份 的相关文章

  • MySQL+子串怎么做? + 替换?

    我不太擅长 SQL 希望能够变得更好 我在尝试执行某些表操作时遇到一些麻烦 我希望能够从下面的 ProgUID 列中选择子字符串 就像是 SUBSTRING table ProgUID 3 12 这将为我提供 ProgUID P CAMVE
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • 单行的总和值?

    我有一个 MySQL 查询 它返回由一系列 1 和 0 组成的单行 它用于进度条指示器 我现在在代码中对它进行求和 但我尝试对查询中的值求和 并意识到我无法使用 SUM 因为它们有很多列 但只有一行 有没有办法可以在查询中自动求和 就像这样
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • 当“修复表”查询在 mysql 中不起作用时该怎么办?

    我收到此错误 表的存储引擎不支持修复 当我尝试使用查询修复表时repair table tbl college master 表是 innodb 类型 但我不知道我收到此错误 See 手册 http dev mysql com doc re
  • MySql 最后插入 ID,连接器 .net

    我正在使用 MySql Connector net 我需要获取最后一个查询生成的插入 id 现在 我假设返回值是MySqlHelper ExecuteNonQuery应该是最后一个插入id 但它只返回1 我正在使用的代码是 int inse
  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • 如何在 phpmyadmin 中创建 MySQL 触发器

    我想在 MySQL 中创建一个触发器 我运行以下命令 mysql gt delimiter mysql gt CREATE TRIGGER before insert money BEFORE INSERT ON money gt FOR
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 按时间顺序将多个文件夹提交到 git 中

    我有数百个网站备份 每个文件夹一个 我想将它们放入 git 存储库中 每个备份作为一个版本 这些变化主要涉及图像文件和每天 2 个数据库备份 大小约为 25 GB 并且不断增加 有没有办法告诉 git 获取其中一个文件夹并将其提交到存储库中
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • 免费 PHP 登录库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • 映射 mysql 中同一个表的多个值

    您好 我必须使用另一个表中的值 id 获取文本值 表 1 包含值 ID 表 2 包含名称和值 ID 表 1 SEVERITY OCCURENCE DETECTABILITY 2 3 4 表 2 id name value 1 Very Hi
  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb

随机推荐

  • batchsize的选择和学习率调整

    batchsize的选择和学习率调整 增大Batch Size的好处 数据的处理速度加快 跑完一次 epoch 全数据集 所需的时间减少 在一定范围内 一般来说 Batch Size 越大 其确定的下降方向越准 引起训练震荡越小 尤其是网络
  • Angular学习笔记70:Angular项目的单元测试 -- 对组件进行测试

    对组件进行测试 对组件绑定的测试 例如在一个组件中 一个组件中模版里有一个标题的是 h2 class title title h2 组件的类文件中对应绑定了一个类文件中的属性 测试这个绑定的数据 it should render title
  • 华为云空间費用_华为云空间有什么用

    华为云空间是专门用于存储联系人 备忘录 照片 录音 云盘的 它还可以使用查找手机功能 其性质和云存储空间类似 手机用户可以将通讯录 照片或视频 录音以及其他资料存放在这里 而在其他的华为设备上登录云空间账号后 即可将这些信息同步到其他设备上
  • 渗透测试学习22:业务逻辑漏洞

    目录 登录认证模块 未授权访问和越权 验证码相关问题 支付漏洞 活动相关 薅羊毛 密码找回模块 登录认证模块 万能密码 现在很少了 但也可以试试 例子 admin or 1 1 弱口令 社工尝试获取账号 并构造密码库 明文密码传输 edu常
  • 我的LaTeX入门

    第一次打美赛就用了latex 比赛前刷了各种博客 学习了1天就上场 美赛期间全程扮演不同角色 就是打杂的 大家都是第一次参加 都很累 不过我是最累的 两天两夜没睡 建模 编程 latex写论文全程参与 用latex写论文真的是太爽了 闲着也
  • ExoPlayer结构分析

    最近要做音乐播放器 经过一周的调研 最终决定使用google的ExoPlayer 对ExoPlayer的架构 流程做个分析 梳理一下调用逻辑 先做个笔记 等项目做完了写一个多媒体播放的大型攻略 媒体资源的获取 MediaSource类代表媒
  • 计算机粘贴复制快捷键,电脑粘贴复制快捷键ctrl加什么(电脑快捷键方法大全)...

    工作效率高的人往往使用快捷键比较多 至少能节约一半的时间 今天分享的快捷键是Ctrl D 你会用吗 在office系列软件中它的功能不尽相同 能把Ctrl D常用的几个功能熟练掌握 高效完成工作某些工作 已经是不在话下 网页收藏 遇到喜欢的
  • libevent实现tcp服务器

    服务器端 libevent 创建TCP连接 创建event base 创建bufferevent事件对象 bufferevent socket new 使用bufferevent setcb 函数给 bufferevent的 read wr
  • VM8的虚拟机中检测USB设备功能禁止

    版本 VMware Workstation 8 0 2 build 591240 发现其启动Linux的时候有提示USB功能被禁止 需要到microsoft下开启VMware USB Arbitration Service服务 但是在ser
  • Matlab机器人工具箱

    因为需要用到和机器人相关的东西 就用到了这个工具箱 作者官网 http www petercorke com Robotics Toolbox html 我上传到CSDN 有需要的同学可以自行下载 robot 9 8 2013 2 12 z
  • 从Spice Model到模拟IC设计的心路历程

    写博客的伊始 是兴奋的 回想自己折腾的几年 从Spice Model到模拟IC电路设计的跳跃 充满了奇妙的意外之旅 Spice Model生涯 我于2017年1月1日走入职场从事14nm FinFET Spice Model研发工作 初涉职
  • 机器学习:L2正则项(权重衰减)和梯度的理解

    正则化方法 L2正则化 正则化定义 凡是可以减少泛化误差而不是减少训练误差的方法 都可以称作正则化方法 我们其实不用去管什么是泛化误差 什么是训练误差 只需 凡是能减少过拟合的方法都是正则化方法 正则化方法 防止过拟合 提高泛化能力 在训练
  • html密码验证 并跳转页面,vuejs 实现前后端分离登录验证和页面自动跳转

    使用的技术点 vue router axios vuex element ui qs 项目介绍 这个项目是一个类似google相册功能的项目 目前实现的是图片特征提取 可以以图搜图 最终打造成一个智能相册 后台由go语言开发 图片特征提取由
  • 只下载rpm包而不安装(用于内网虚拟机使用)

    这里写目录标题 问题 解决 1 安装yum utils 2 下载rpm包 3 将rpm包拷贝到离线的虚拟机并安装 遇到的问题 1 error while loading shared libraries libXXX so X cannot
  • 如何在 Ubuntu 18.04 LTS 上安装和配置 Apache

    本教程将帮助您在 Ubuntu 18 04 LTS Linux 操作系统上安装并保护 Apache Web 服务器 先决条件 通过 SSH 访问 Ubuntu 18 04 SUDO特权 在 Ubuntu 18 04 上安装 Apache 首
  • 如何将 Ubuntu 14.04 LTS 升级到 Ubuntu 16.04 LTS

    将 Ubuntu 14 04 LTS 升级到 Ubuntu 16 04 LTS Ubuntu 是广泛使用的 Linux 操作系统 用于桌面版和服务器版 Ubuntu 提供两种类型的发行版标准发布 and 长期支持 LTS 发布 Ubuntu
  • Bash 中单引号和双引号的区别

    Bash 是大多数 Linux 发行版中使用的 shell 它提供了多种引用字符串的方法 其中 单引号 和双引号 是最常用的 虽然它们可能看起来相似 但它们具有不同的行为 并且会影响 shell 解释字符串内容的方式 在本文中 我们将探讨
  • 如何在AWS实例中创建和添加EBS卷

    Amazon EBS 弹性块存储 提供持久块存储以与 Amazon 实例一起使用 每个 Amazon EBS 卷都提供高可用性和持久性 它能够在其可用区中自动复制 以保护您免受组件故障的影响 本文将帮助您创建 EBS 卷并将其添加到现有实例
  • 下载 CentOS 7 – DVD ISO 映像

    CentOS 是一个 Linux 操作系统 它是 Red Hat Enterprise Linux 100 兼容的重建版 用户可以免费下载并使用该企业级操作系统 CentOS 项目宣布了发行版的新更新 发布了CentOS 7 9它源自 Re
  • 如何从完整 MySQL 转储文件中提取表备份

    mysql转储是 MySQL MariaDB 提供的用于备份数据库和表的实用程序 一般来说 我们会定期对数据库进行完整转储并保留它 但有时我们需要从备份中恢复单个或 2 3 个表 那么问题是如何从完整备份文件中恢复特定的表 本文将帮助您了解