美文网首页
TiDB综合一

TiDB综合一

作者: 开心的蛋黄派 | 来源:发表于2024-05-20 15:51 被阅读0次

    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没有超过数据丢失的时间点。
    • 恢复方法
      • 对于简单场景,设置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)。
        • 限制内存使用。

    5. 架构

    • 组件: tidb-server, pd, tikv, tiflash
    • 上下游服务: dm支持(mysql->tidb), ticdc(tidb->kafka 不需要开启binlog)

    6. 版本升级

    1. 新版本调研
    2. 功能性测试
    3. 业务性测试
      • 流量收集(vc-mysql-sniffer)
      • 解析日志(pt-query-digest)
      • 流量回放(pt-upgrade)
    4. 进行原地升级

    7. region

    Region是TiKV存储层数据的基本单位,它包含一个连续且有序的数据区间。每个Region的默认大小为96MB,但这个大小是可以根据需要进行调整的。Region具有动态性,能够根据数据的增长和缩减进行合并或分裂,以适应不同的数据存储需求。为确保数据的高可用性,每个Region都维护了多个副本,这些副本之间通过Raft协议来保持数据的一致性。此外,Region还支持事务的快照隔离和多版本并发控制(MVCC)机制,这为高效的数据读写操作提供了坚实的基础。

    8. tidb的兼容性问题

    1. **存在版本BUG
    2. 官方文档存在疏漏和错误的描述
    3. 构建集群成本较高
    4. tidb-server 层不能很好的控制内存,很容易出现OOM(Out of Memory)
    5. 异构数据库迁移的兼容性问题

    相关文章

      网友评论

          本文标题:TiDB综合一

          本文链接:https://www.haomeiwen.com/subject/hgdsfjtx.html