1. 整体介绍
-
水平无限扩展能力
TiDB采用了分布式架构设计,可以实现存储与计算的水平扩展,无须预设分库分表。 -
并行计算
TiDB通过将数据分散在多个节点上,并利用并行处理技术,可以更高效地处理复杂查询和事务。 -
高可用与故障自恢复
基于Raft共识算法,TiDB构建了多副本的数据同步机制,确保任何单一节点故障时,系统都能自动切换至备份节点并快速恢复服务,有效避免单点故障风险,提高了业务连续性。 -
实时分析与HTAP能力
在同一平台上同时支持在线事务处理(OLTP)和在线分析处理(OLAP),为企业决策提供实时洞察力,提升数据驱动业务的能力。 -
*rocksdb特点
RocksDB本身使用k-v存储,使用LSM-Tree作为其底层数据结构,这种结构擅长处理大量的写入操作(写入属于追加操作),但在读取时可能需要额外的合并操作,更适合于需要高写入性能和水平扩展能力的场景,如大数据、实时分析等。
2. 如何进行备份和恢复
-
小规模备份与恢复
利用dumpling方式只备份核心的库表,利用lightning进行恢复。 -
大规模备份与恢复
利用br进行一致性备份与恢复。
3. 如何进行数据恢复
-
相关参数
-
tidb_gc_enable
: 控制GC是否启用。 -
tidb_gc_run_interval
: 设置GC的运行间隔时间。 -
tidb_gc_life_time
: 设定数据的保留时间,超过此时间的数据将被GC清理。建议与实际业务结合,设置时间长会增加磁盘占用和查询时间。 -
tidb_gc_concurrency
: 控制GC的并发度。
-
-
恢复注意事项
- 在进行数据恢复时,需要确保GC不会清理掉需要恢复的数据。因此,可能需要临时调整
tidb_gc_life_time
来延长数据的保留时间。 - 如果使用了Flashback功能来恢复数据,必须确保GC safe point没有超过数据丢失的时间点。
- 在进行数据恢复时,需要确保GC不会清理掉需要恢复的数据。因此,可能需要临时调整
-
恢复方法
- 对于简单场景,设置
tidb_snapshot
变量后使用SELECT ... INTO OUTFILE
语句。 - 对于大数据场景,使用Dumpling导出TiDB的历史数据快照。
- 对于简单场景,设置
4. 相关问题
-
oom问题
-
tikv oom
- 降低
block-cache-size
配置。 - 增加TIKV节点。
- 升级TIKV机器配置内存。
- 优化慢查询。
- 降低
-
tidb server oom
- 设置
tidb-mem-oom-action=cancel
。 - 在架构层面实现自动摘除故障节点。
- 设置
-
tiflash oom
- 进行版本升级(可能是版本BUG)。
- 限制内存使用。
-
tikv oom
5. 架构
- 组件: tidb-server, pd, tikv, tiflash
-
上下游服务: dm支持(mysql->tidb), ticdc(tidb->kafka 不需要开启binlog)
,
6. 版本升级
- 新版本调研
- 功能性测试
- 业务性测试
- 流量收集(vc-mysql-sniffer)
- 解析日志(pt-query-digest)
- 流量回放(pt-upgrade)
- 进行原地升级
7. region
Region是TiKV存储层数据的基本单位,它包含一个连续且有序的数据区间。每个Region的默认大小为96MB,但这个大小是可以根据需要进行调整的。Region具有动态性,能够根据数据的增长和缩减进行合并或分裂,以适应不同的数据存储需求。为确保数据的高可用性,每个Region都维护了多个副本,这些副本之间通过Raft协议来保持数据的一致性。此外,Region还支持事务的快照隔离和多版本并发控制(MVCC)机制,这为高效的数据读写操作提供了坚实的基础。
8. tidb的兼容性问题
- **存在版本BUG
- 官方文档存在疏漏和错误的描述
- 构建集群成本较高
- tidb-server 层不能很好的控制内存,很容易出现OOM(Out of Memory)
- 异构数据库迁移的兼容性问题:
网友评论