[转帖]tidb RESTORE
https://docs.pingcap.com/zh/tidb/v4.0/sql-statement-restore
RESTORE
语句用于执行分布式恢复,把 BACKUP
语句生成的备份文件恢复到 TiDB 集群中。
RESTORE
语句使用的引擎与 BR 相同,但恢复过程是由 TiDB 本身驱动,而非单独的 BR 工具。BR 工具的优势和警告也适用于 RESTORE
语句。需要注意的是,RESTORE
语句目前不遵循 ACID 原则。
执行 RESTORE
语句前,确保集群已满足以下要求:
- 集群处于“下线”状态,当前的 TiDB 会话是唯一在访问待恢复表的活跃 SQL 连接。
- 执行全量恢复时,确保即将恢复的表不存在于集群中,因为现有的数据可能被覆盖,从而导致数据与索引不一致。
- 执行增量恢复时,表的状态应该与创建备份时
LAST_BACKUP
时间戳的状态完全一致。
执行 RESTORE
需要 SUPER
权限。此外,执行恢复操作的 TiDB 节点和集群中的所有 TiKV 节点都必须有对目标存储的读权限。
RESTORE
语句开始执行后将会被阻塞,直到整个恢复任务完成、失败或取消。因此,执行 RESTORE
时需要准备一个持久的连接。如需取消任务,可执行 KILL TIDB QUERY
语句。
一次只能执行一个 BACKUP
和 RESTORE
任务。如果 TiDB server 上已经在执行一个 BACKUP
或 RESTORE
语句,新的 RESTORE
将等待前面所有的任务完成后再执行。
RESTORE
只能在 "tikv" 存储引擎上使用,如果使用 "mocktikv" 存储引擎,RESTORE
操作会失败。
语法图
- RestoreStmt
- RESTOREBRIETablesFROMstringLitRestoreOption
- BRIETables
- DATABASE*DBName,TABLETableNameList
- RestoreOption
- RATE_LIMIT=LengthNumMB/SECONDCONCURRENCY=LengthNumCHECKSUM=BooleanSEND_CREDENTIALS_TO_TIKV=Boolean
- Boolean
- NUMTRUEFALSE
示例
从备份文件恢复
上述示例中,所有数据均从本地的备份文件中恢复到集群中。RESTORE
从 SST 文件里读取数据,SST 文件存储在所有 TiDB 和 TiKV 节点的 /mnt/backup/2020/04/
目录下。
输出结果的第一行描述如下:
列名 | 描述 |
---|---|
Destination |
读取的目标存储 URL |
Size |
备份文件的总大小,单位为字节 |
BackupTS |
不适用 |
Queue Time |
RESTORE 任务开始排队的时间戳(当前时区) |
Execution Time |
RESTORE 任务开始执行的时间戳(当前时区) |
部分恢复
你可以指定恢复部分数据库或部分表数据。如果备份文件中缺失了某些数据库或表,缺失的部分将被忽略。此时,RESTORE
语句不进行任何操作即完成执行。
外部存储
BR 支持从 Amazon S3 或 Google Cloud Storage (GCS) 恢复数据:
有关详细的 URL 语法,见外部存储。
当运行在云环境中时,不能分发凭证,可设置 SEND_CREDENTIALS_TO_TIKV
选项为 FALSE
:
性能调优
如果你需要减少网络带宽占用,可以通过 RATE_LIMIT
来限制每个 TiKV 节点的平均下载速度。
默认情况下,每个 TiKV 节点上运行 128 个恢复线程。可以通过 CONCURRENCY
选项来调整这个值。
在恢复完成之前,RESTORE
将对备份文件中的数据进行校验,以验证数据的正确性。如果你确信无需进行校验,可以通过 CHECKSUM
选项禁用这一步骤。
增量恢复
增量恢复没有特殊的语法。TiDB 将识别备份文件属于全量备份或增量备份,然后执行对应的恢复操作,用户只需按照正确顺序进行增量恢复。
假设按照如下方式创建一个备份任务:
在恢复备份时,需要采取同样的顺序:
MySQL 兼容性
该语句是 TiDB 对 MySQL 语法的扩展。
另请参阅
[转帖]tidb RESTORE的更多相关文章
- [转帖][分享] 关于系统DIY--by 原罪
http://wuyou.net/forum.php?mod=viewthread&tid=399277&extra=page%3D1 前几天我发了一个帖子<Windows组件w ...
- TiDB集群安装主要操作
TiDB集群安装主要操作 参考资料:https://www.cnblogs.com/plyx/archive/2018/12/21/10158615.html 一.TiDB数据简介 TiDB 是 Pi ...
- 探索TiDB Lightning的源码来解决发现的bug
背景 上一篇<记一次简单的Oracle离线数据迁移至TiDB过程>说到在使用Lightning导入csv文件到TiDB的时候发现了一个bug,是这样一个过程. Oracle源库中表名都是大 ...
- TiDB上百T数据拆分实践
背景 提高TiDB可用性,需要把多点已有上百T TiDB集群拆分出2套 挑战 1.现有需要拆分的12套TiDB集群的版本多(4.0.9.5.1.1.5.1.2都有),每个版本拆分方法存在不一样 2.其 ...
- TiDB Lightning导入超大型txt文件实践
背景 TiDB 提供了很多种数据迁移的方式,但这些工具/方案普遍对MySQL比较友好,一旦涉及到异构数据迁移,就不得不另寻出路,借助各种开源或商业的数据同步工具.其实数据在不同系统的流转当中,有一种格 ...
- [LeetCode] Restore IP Addresses 复原IP地址
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- canvas的save与restore方法的作用
网上搜罗了一堆资料,最后总结一下. save:用来保存Canvas的状态.save之后,可以调用Canvas的平移.放缩.旋转.错切.裁剪等操作. restore:用来恢复Canvas之前保存的状态. ...
- TFS Express backup and restore
When we setup source control server, we should always make a backup and restore plan for it. This ar ...
- Restore Volume 操作 - 每天5分钟玩转 OpenStack(60)
前面我们 backup 了 voluem,今天我们将讨论如何 restore volume. restore 的过程其实很简单,两步走: 在存储节点上创建一个空白 volume. 将 backup 的 ...
- Visual Studio 2015无法进行Package Restore的原因和解决方案
这篇文章是记录在我的当前电脑上面,安装Visual Studio 2015 Community Edition出现的无法进行Package Restore的问题,很可能在你的电脑上面无法重现.我的环境 ...
随机推荐
- Docker 使用及常见问题总结
一.使用 1.docker run -it 命令中的 it 参数是什么含义 在Docker中,-it是两个选项的组合,用于在交互式模式下运行容器.让我解释一下它们的含义: -i 或 --interac ...
- Java 将PPT转为OFD
本文以Java后端程序代码展示如何实现将PPT幻灯片转成OFD格式.下面是具体步骤. 步骤1:安装PPT库-Spire.Presentation for Java 方法一.通过Maven仓库安装.在p ...
- C# 将Excel转为OFD、UOS
本文以C#及VB.NET代码为例展示如何将Excel工作簿转换为OFD和UOS格式.通过workbook.LoadFromFile(string fileName)方法加载Excel源文档后,然后调用 ...
- 读书笔记丨远程服务调用和RESTful,如何分析和抉择?
摘要:相信未来REST规范将会变得更加流行和普及. 本文分享自华为云社区<云原生时代,远程服务调用和RESTful,如何分析和抉择?>,作者:breakDawn . 随着云原生的概念越来越 ...
- 基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云
摘要:本文主要讲解如何基于L2设备对接华为云IoTDA,以DAYU200开发板,采用IoTDeviceSDKTiny对接华为云IoTDA,当然这里也可以采用其他OpenHarmony的富设备. 本文分 ...
- 洞见商业新机,云原生数据库GaussDB让企业决策更科学
摘要:华为云GaussDB(for Redis)为数位科技打造了一个稳定可靠.高效安全.卓越性能的大数据引擎,KV存储降本80%,助力实体企业数字化转型之路走的更加稳健. 本文分享自华为云社区< ...
- 一文带你 GNN 从入门到起飞,做一个饭盆最稳 GNN 饭人!
摘要:本文介绍了图神经网络在学界和业界的发展情况,并给出了图神经网络的基本概念与表示形式,总结了图神经网络的变体,最后介绍了华为云图神经网络框架. 本文分享自华为云社区<干饭人,干饭魂,搞懂图神 ...
- 火山引擎 VeDI 推出这款产品 助力企业实现以“人”为中心的数据洞察
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 CDP(Customer Data Platform,客户数据平台)市场将迎来新一轮的高速增长. 国际数据公司(以 ...
- 聚焦企业数据生命周期全链路 火山引擎数智平台 VeDI 发布《数据智能知识图谱》
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台(VeDI)正式发布<数据智能知识图谱>(以下简称「图谱」),内容覆盖了包括数据 ...
- MySQL Select 语句执行顺序
一条 SQL 查询语句结构如下: SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN ...