TiDB学习笔记(一)-PCTA

一、分布式存储系统

TiDB使用LSM Tree数据结构。B树需要两次写,LSM Tree用顺序写入替换随机写入
rocksdb存储引擎支持批量写入,无锁快照读
Raft协议逻辑清晰,安全性高   RPO=0    RTO<30s
tikv采用自动分片 range  高效扫描数据,弹性分片,自动分离与拓展    96MB自增分片,20MB合并分片    热点分片问题
MVCC  在key后添加版本号   key_version_value
分布式事务:去中心化两阶段提交,默认乐观事务锁,默认隔离级别Snapshot Isolation

二、分布式SQL引擎

主键->rowid  近似
MPP模型,实现SQL join的下推和并行处理。TiFlash作为MPP的计算节点,计算后的结果返回到TiDB server进行再计算
基于Multi-Raft实现单表跨IDC多节点写入
Local Read and Geo-partition


三、TiUP

4.0版本引入
TiDB包的管理器,管理TiDB的组件,包括部署、启动、关闭、销毁、弹性扩缩容、升级TiDB集群、管理TiDB集群参数
TiDB集群启动过程PD->TiKV->TiDB->TiFlash

TiDB连接特性支持MySQL5.7协议,无状态。不支持MySQL里的存储过程、函数、触发器、外键

四、配置

系统配置        可通过MySQL客户端进行修改,存储再TiKV,持久化到数据库层。无需重启节点。是TiDB Server使用的参数,不包括PD、TiKV、TiFlash和部分TiDB等节点的参数
有作用域。
        session:修改后,仅对当前会话有效。默认级别
        global:对当前会话和已连接的会话无效,修改后的新连接生效
        instance:仅影响当前TiDB Server
        
集群配置        需通过TiUP进行修改
                      包括PD、TiKV、TiFlash和部分TiDB等节点的参数,存储再配置文件中,需重启节点才可生效
                      无作用域

五、用户管理与安全

认证:权限控制第一步,第一次连接数据库必须认证,认证失败则无法连接数据库
授权:权限控制第二步,判断是否具有相关权限
角色:权限的集合。角色能被赋予权限,能包含其他角色。存在mysql.users表
角色特点:    角色是被锁住的。不能登录数据库
                      没有密码
                      set role all 使用户拥有的角色生效
                      如果创建角色时不指定主机名,默认是%

六、文件与日志管理

TiDB    配置文件、日志文件
TiKV    配置文件、日志文件、数据文件
PD       配置文件、日志文件、数据文件

七、监控

Dashboard 4.0版本引入,在PD中。监控和诊断,没有报警功能
Dashboard了解集群整体、组件运行情况,慢SQL和所有SQL查询耗时,集群读写流量分布及趋势变化,诊断集群问题,收集分析各组件性能数据
Prometheus存储数据,Grafana查询,报警
报警级别:紧急、严重、警告

八、备份恢复及数据同步工具

BR 热备 物理备份
Dumpling 热/温备 逻辑备份
复制 热备 逻辑备份
操作系统拷贝 冷/温备 物理备份

BR
分布式备份恢复的工具,适合大数据量的场景。备份、恢复的大版本要匹配
版本:v3.1及v4.0及以上
在tikv的各个节点上进行备份恢复操作,每个tikv节点都会有一个备份路径
备份文件:SST、backupmeta、backup.lock
限制:BR恢复到ticdc/drainer的上游集群时,恢复数据无法由ticdc/drainer同步到下游
推荐:BR备份、恢复串行执行,限速ratelimit,备份路径使用共享存储NFS
备份可对全部full、库db、表table进行操作,--filter或-f进行过滤来指定备份多张表,增量备份--lastbackupts


Dumpling
从MySQL/TiDB全量逻辑导出的工具
输出:SQL/CSV文件
版本:所有版本


Lightning
全量数据导入到TiDB集群的工具
输入:CSV文件、Dumpling输出文件
版本:v2.1及以上
三种模式:
    local:TB级别的大量数据,导入过程中集群无法提供服务
    importer:适用4.0版本以上
    tidb:在线导入,速度慢,支持导入到MySQL
导入数据之前,lightning会把tikv集群切换为导入模式,优化写入效率并停止自动压缩

TiDB binlog
增量日志同步。
输入:TiDB
输出:TiDB、MySQL、kafka、增量备份文件
版本:v2.1及以上
Pump记录binlog并按照事务时间进行排序,再提供给Drainer进行消费。    形成一个集群,可水平扩容。
Drainer将binlog转化成sql或指定格式的数据,再同步给下游。支持relay log,保证下游集群的一致性
binlogctl 查看、修改、暂停、下线 Pump/Drainer
启动顺序:PD,tikv,Pump,TiDB


TiDB Data Migration  DM
全量数据和增量数据迁移
输入:MySQL、Mariadb
输出:TiDB
版本:所有版本

TiCDC

通过拉取tikv的变更日志实现增量数据同步的工具。

输入:TiDB

输出:兼容MySQL协议的数据库和kafka

异步复制

TiSpark
列式存储...

TiFlash

...

时区
默认为system
作用域:全局、会话
timstamp类型的数据受时区影响

TiDB Cluster升级
准备:升级TiUP,修改配置,集群监控状态检查check(主要是region)
升级TiDB Cluster,检查集群监控状态display
不停机升级(默认),leader 可切换 可不切换
停机升级:停止集群,离线升级,启动集群

你可能感兴趣的:(TiDB,数据库,dba)