当前位置: 首页 > article >正文

PingCAP TiDB数据库专员PCTA认证笔记

tidb-pcta-note

PingCAP TiDB数据库专员PCTA认证笔记

相关链接

官网认证中心
TiDB社区

体系架构

数据库设计

存算分离。三层架构:PD(Placement Driver)负责集群元信息管理和调度,TiDB负责sql计算,TiKV负责存储

存储引擎

1、基于LSM-Tree的RocksDB引擎,比B-Tree写入更快,用空间置换写入延迟
2、数据冗余副本:multi raft-group副本机制。基于raft,比Paxos更简单
3、弹性扩展:数据动态分片而不是预先分片,使用基于range范围的分片算法

sql计算引擎

1、分布式事务模型:MVCC,去中心化两阶段提交。事务默认隔离级别是SI(快照隔离),也支持RC(read commit)
2、计算:协作处理器Coprocessor
3、在kv上实现逻辑表:key=tableid+rowid+indexid,value=所有列按等位偏移的方式进行connect进行连接

HATP

1、针对OLAP引入Ti-spark,避免OOM,缓解算力问题
2、列式引擎上引入了delta tree,实现准实时更新的列式引擎Ti-flash用于OLAP数据副本
3、副本同步到列式引擎:Ti-Flash以Raft Learner的方式接入Multi-Raft组,使用异步方式传输数据,将行格式拆解为列格式
4、MPP解决计算节点的扩展与并行计算:OLAP的场景引入MPP并行计算框架

集群管理

集群部署

1、TiUP工具集群运维工具
2、安装顺序TiUP->TiUP cluster->配置集群拓扑文件->check检查配置参数->deploy部署->start启动->display查看运行状态
3、集群启动顺序PD->TiKV->TiDB->TiFlash,停止顺序反向

对mysql支持

1、支持类mysql 5.7协议连接客户端
2、不支持mysql存储过程、触发器、外键、函数等

TiDB参数

参数配置
1、系统参数配置:通过客户端连接修改,只针对tidb-server参数,配置参数持久化到TiKV
2、集群参数配置:通过tiup cluster edit-config命令修改,针对PD、TiKV、tidb-server等配置参数,保存在各自节点的配置文件中。配置后重启节点才生效。
系统参数作用域
1、global全局级别:不影响当前回话,影响新回话
2、session回话级别:立即生效,只影响当前回话,回话断开后失效

扩缩容

1、扩容scale-out,缩容scale-in
2、TiDB、TiKV、PD方式一样
3、TiFlash需要先根据剩余节点数调整数据库表的副本数

集群升级

1、只针对cluster,不是kv、db等
2、补丁升级:patch
3、大版本升级:不支持跨版本。升级TiUP->修改集群拓扑文件配置参数使得适应新版本->集群健康状态检查->升级->验证
4、升级方式:不支持回退。upgrade默认不停机,也可停机离线升级--offline
5、升级报错中断:audit查看失败日志,replay继续上次升级

用户管理

1、用户和角色都存在mysql.users表
2、角色没有账号密码,能包含其他角色,能像用户一样授权
3、角色是被锁住的,用户登录后要用命令开启被赋予的角色

文件与日志管理

1、每个组件都有日志文件、配置文件
2、tidb-server没有数据文件
3、tiup cluster edit-config命令查看配置

监控

1、额外安装:Grafana展示+Prometheus采集+Alertmanager告警,关注集群状态信息
2、4.0后Dashboard监控体系,没有告警功能,安装PD节点后自带无需独立部署,主要关注sql性能检测和诊断等。

数据备份

备份策略

1、热备:可读写,不停机。备份时影响性能。
2、温备:可读不可写,不停机。备份时影响性能。
3、冷备:不可读写,停机拷贝文件。也是物理备份。要容忍宕机,成本低。
1、逻辑备份:导出sql或csv文件,可在异构数据库或系统迁移。适合小数据,速度慢。
2、物理备份:复制二进制数据文件,只能迁移到相同存储引擎,可以跨机器架构。适合大数据,速度快。
3、基于复制的备份:binlog日志主从同步的异步复制,需要增加从库成本,但消除对注主库的性能影响。

TiDB BR工具

1、数据备份和恢复,只针对TiDB
2、Backup可全量、增量导出
3、Restore可全量、增量导入
4、数据量较大,热备,物理备份
5、直接拷贝TiKV 键值对SST文件
6、支持数据一致性检查
7、粒度为db实例、某表
8、由TiKV里的各Region Leader负责

数据迁移

TiDB Dumpling工具

1、只能全量导出
2、数据量较小,热备,逻辑备份
3、连接tidb-server
4、导出sql或csv文件,可在异构数据库或系统迁移
5、粒度到某行数据,可根据where条件过滤

TiDB Lightning工具

1、全量导入,只针对TiDB
2、数据源是Dumpling的导出,连接tidb-server
3、后端backend:Local-backend不用转储高版本4.0后适用,Importer-backend要转储和额外组件,TiDB-backend所有版本都可以且目标表可以不为空生产环境建议使用
4、主要功能:断点续传,库表过滤,并行导入,web界面管理任务

同步与复制

TiDB Data Migration工具

1、全量和增量同步,异步。从mysql协议数据库同步到TiDB
2、根据binlog同步,可以表过滤、表操作过滤(如只针对insert语句)
3、可针对分库分表合并,可以异构表迁移(列不一样)
4、集群部署,dmctl控制,dm-master调度,dm-worker执行任务

TiDB Binlog工具

1、5.0后被TiCDC替代
2、全量同步,逻辑备份。从tidb-server获取binlog row模式日志实现同步,下游可以是kafka、TiDB、类mysql、本地文件
3、集群部署,binlogctl控制,Pump记录binlog并按时间排序,再由Drainer将日志归并转换为结构化数据传给下游
4、日志只记录提交的事务,按提交时间,只有增删改没有查日志

TiDB CDC工具

1、增量同步,异步复制。从TiKV获取变更日志,下游是类mysql和kafka
2、集群部署,各节点的capture组件部分拉取(默认并发),master节点合并排序
3、限制:表必须有索引

笔记下载链接


http://www.kler.cn/a/450248.html

相关文章:

  • 三.统一异常Exception拦截处理
  • 绕组识别标签规范
  • PyTorch 神经网络回归(Regression)任务:关系拟合与优化过程
  • 环网冗余CAN转光纤 CAN光端机在风电项目应用
  • unity Toggle制作滑动开关
  • 递归读取指定目录下的文件
  • 【杂谈】-为什么Python是AI的首选语言
  • C# winform 字符串通过枚举类型转成int类型的数据
  • 【全栈实战】基于 Vue3 + Wot Design Uni 动手封装组件
  • 低代码可视化-uniapp进销存销售表单-代码生成器
  • LeetCode 2605 从两个数字数组里生成最小数字
  • Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
  • Echarts的高级使用,动画,交互api
  • Vue3:uv-upload图片上传
  • LeetCode:101. 对称二叉树
  • Vue3 组件 view-shadcn-ui 2024.5.3 发布
  • 如何利用Java爬虫按关键字搜索苏宁易购商品
  • 精准提升:从94.5%到99.4%——目标检测调优全纪录
  • 搭建Docker Harbor仓库
  • Qt5 cmake引用private头文件
  • scrapy 融合selenium
  • web的五个Observer API
  • 过滤掉list中两个连续的元素
  • C# 文件系统I/O操作--什么是I/O
  • day14-补充静态网卡配置
  • git 提交代码无法连接:Failed to connect to github.com port 443 after 21060 ms