加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

为什么我们要从MySQL迁移到TiDB?

发布时间:2020-08-15 05:29:32 所属栏目:编程 来源:网络整理
导读:【金融特辑】光大****科技部DBA女神带你从0到1揭秘MGR 【51CTO.com原创稿件】当一张百亿数据量的表放在你眼前,你将面对着什么?加列?哭吧,怎么也得等个几天乃至几周。加索引?哭吧,岂论你用 pt-online-schema,照旧 gh-ost,你都面对着拷贝一张姑且表用以

enum modify 为 tinyint 发明内容呈现变革,本来的’'酿成了 default 值,‘1’ 酿成了 2,经测试 varchar 正常,因此不要实行去改观 DM 备份出来的 Schema 文件来实现表布局改观,应该从上游 MySQL 办理。

⑤分区表元数据无法获取

没有视图可以查询当前已建分区信息。在 TiDB 中今朝没有视图支持查询分区表已建分区信息,那么用户何处没有步伐直观的判定当前已建的分区,以及当前是否必要实时的添加新分区。今朝已转化为 PRM 产物需求,信托新版本不旧会实现。

分区表 - 部门分区 - limit 未下推:分区表呈现 limit 未下推的征象,表 content_info_p 个中只有分区 p201911 稀有据。该题目已在 3.0.6 版本修复。

mysql.tidb 表权限非常:行使 use db_name 可能 mysql 客户端指定 DB name 后,可以对该表举办查询或更新操纵。打算 3.1 版本修复。

事物的限定:单个事物的 SQL statement 不高出 5000(stmt-count-limit 参数可调);每个键值对不高出 6M;键值对的总数不高出 300000;键值对的总巨细不高出 100M。

注:键值对是指一张内外有 2 个索引,那么一共就是数值 +2 个索引,总共 3 个键值对,那么每个键值对的老是不能高出 30 万/3=10 万。

一行数据会映射为一个 KV entry,每多一个索引,也会增进一个 KV entry,以是这个限定反应在 SQL 层面是:总的行数*(1+索引个数)<30w。

官方提供内部 batch 的要领,来绕过大事宜的限定,别离由三个参数来节制:

tidb_batch_insert

tidb_batch_delete

tidb_dml_batch_size

写热门的处理赏罚:假如可以去掉 MySQL 自增主键,就可以通过建表时指定 SHARD_ROW_ID_BITS、PRE_SPLIT_REGION 来实现预切分,停止单调自增激发的只往某个 KV 上写数据引起的热门题目。

详情可参考官网 TiDB 专用体系变量和语法中 SHARD_ROW_ID_BITS 的先容。

⑥TiDB 监控和 DM 监控 Ansible 陈设数据斗嘴

这块可以通过将 TiDB 和 DM 监控陈设到差异的呆板上来绕过办理,不然就会呈现通过 Ansible 安装后,ansible-playbook rolling_update_monitor.yml --tags=prometheus 时,两者只有一个是正常的。

磁盘已行使不提议高出 50%:数据量太多 LSM 过大, compaction 本钱会很高,而且内存掷中率降落,同时单机规复时刻很长,50% 阁下最好,行使率太高,假如溘然写入爆增,region 来不及调治会写满磁盘,有风险。

因此提议 SSD 不要行使高出 2T 的,回收更多的呆板会有更好的机能。

⑦Mydumper 导致的内存和网卡打满

在行使 Mydumper 备份大时,会打满 TiDB 网卡,同时会耗损 TiDB、TiKV 更多的内存。

【TiDB ERR】[emergency]TiDB_schema_error:192.168.1.1:10080,[add_dba_mysql]【360】 

【TiDB ERR】[critical]NODE_memory_used_more_than_80%:192.168.1.2:9100,[add_dba_mysql]【360】 

去抓取慢日记会看到如下内容:

grep Query_time tidb_slow_query-2019-12-24T04-53-14.111.log|awk -F : '$2>10' 

# Time: 2019-12-24T03:18:49.685904971+08:00 

# Txn_start_ts: 413433784152621060 

# User: backup@192.168.1.3 

# Conn_ID: 4803611 

# Query_time: 4002.295099802 

SELECT /*!40001 SQL_NO_CACHE */ * FROM `360`.`t_d` ; 

等候后续的版本物理备份,逻辑备份看起来今朝是可以备份,但会较量耗损资源,同时规复时刻也会更久。

瞻望

从 TiDB 2.x 开始我们就已经开始举办测试了,最终选择的版本是 3.0.2,后续进级到 3.0.5。

上述文章总结和一些案例但愿可以或许辅佐到已行使或规划行使 TiDB 的伴侣。

360 云平台 DBA 团队也打算将 TiDB 推上 360 HULK 云平台,为 360 团体更多的营业线提供富厚多彩和不变靠得住的数据库处事。

在这里起主要感激 PingCAP 同窗实时的技能支持,辅佐我们尽快的办理了一些技能题目。

同时,我本身也通读完了 TiDB 的官方手册。从 Ansible 陈设、二进制陈设、进级、DM、Lighting、Pump、Drainer、调优、排障、迁徙、备份,这一起打怪下来,亲自感觉到了 TiDB 越来越好的进程。

我信托将来跟着 3.1 和 4.0 版本的推出,有更多人插手行使 TiDB 的这个步队中来。

从营业给我们的反馈也是对 TiDB 的行使环境暗示满足,我们信托,TiDB 会在各人配合的全力下,越来越好。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读