
TiDB
vkingnew
Learning......
展开
-
Gravity 介绍
Gravity是摩拜单车数据库团队自研的一套数据复制组件,目前已经稳定支撑了摩拜单车公司数百条同步通道,TPS 50000/s,80线延迟小于50ms。使用go语言编写,具有如下特点:1.多数据源(MySQL, MongoDB, TiDB, PostgreSQL)2.支持异构(不同的库、表、字段之间同步),支持分库分表到合表的同步。3.支持双活&多活,复制过程将流量打标,避免循...原创 2019-03-04 15:43:04 · 2378 阅读 · 0 评论 -
Gravity 安装部署
1.前提条件:安装部署好golang的环境变量:2.下载gravity的代码:# wget https://github.com/moiot/gravity/archive/v0.9.25.tar.gz注释:由于还是老的模式组织目录结构,需要把项目放在 GOPATH//src/github.com/moiot/ 3.由于目前的版本不支持go module功能需要解压到 指定的目录 ...原创 2019-03-04 15:23:33 · 1245 阅读 · 1 评论 -
Gravity 全量同步MySQL到TiDB
1.准备工作: 1.1 源库MySQL必须保证GTID复制,若是传统复制需要在线切换为GTID复制: #cat /etc/my.cnfserver-id =100#log-bin =/data/mysql/mysql_bin.loglog-bin =mysq...原创 2019-03-06 18:03:05 · 742 阅读 · 0 评论 -
TiDB 与MySQL的兼容性
截止版本:TiDB 2.1.5版本比对的版本:MySQL 5.7.25版本1.SQL语法 1.create table tablename as select * from t; (CTAS不支持) 2. Savepoints 3.LOCK TABLE 4.CHECK TABLE 5.CHECKSUM TABLE2.对象: 1.不支持view 2.不支持...原创 2019-03-08 17:56:59 · 2510 阅读 · 0 评论 -
TiDB 适用场景 不适用场景 及其被替代的产品
TiDB 适用场景:1.强一致性分布式事务: 可以把 TiDB 想象成一个单机的 RDBMS,ACID 事务可以在多节点间进行,无需担心一致性问题。 TiDB 对业务没有任何侵入性,是传统的数据库中间件、数据库分库分表等优雅的替换方案。 重点解决 MySQL 的单机性能和容量无法线性和灵活扩展的问题.2.数据归档库: 若存储不足的时候可以水平扩展机器,TiDB的存储量大,归档...原创 2019-03-08 17:55:11 · 8178 阅读 · 0 评论 -
TiDB Roadamp
Roadmap:20190301TiDB: Optimizer Statistics Optimization Multi-Column Statistics Cascades Planner Plan Management SQL Tuning Advisor Robust Access Path Selection: add the heuristic rule and im...原创 2019-02-26 19:16:22 · 352 阅读 · 0 评论 -
Docker Compose部署单机TiDB集群时指定TiDB版本
使用Docker Compose部署单机TiDB集群时指定版本--早前的版本:mysql> select tidb_version()\G *************************** 1. row ***************************tidb_version(): Release Version: v2.1.0-rc.3-232-ga3e25b2...原创 2019-03-21 08:58:20 · 440 阅读 · 0 评论 -
oracle goldengate for MySQL DDL试验
1.创建MySQL的连接:# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock到ogg的目录安装插件:#cd /usr/local/ogg_mysql# ./ddl_install.sh install root oracle 3306 5.7.25-logchecking MySQL versionDDL is supporte...原创 2019-02-21 12:00:20 · 810 阅读 · 0 评论 -
Gravity 监控
第一部分:监控指标的metrics第二部分:安装prometheus使用rpm包或者直接安装tar.gz包: --prometheus安装部署:## curl -s https://packagecloud.io/install/repositories/prometheus-rpm/release/script.rpm.sh | sudo bash# # yum -y in...原创 2019-03-05 10:11:06 · 722 阅读 · 0 评论 -
MySQL 向TiDB 实时迁移
可以借助如下工具将MySQL的数库备份恢复到TiDB,并借助sycner工具将增量的数据同步到TiDB。1.支持分库分表的合并2.支持全量+增量的数据同步方式.缺点:1.大数据量 超过100G的时候 loader导入的数据难以接受,速度慢2.当有分库分表的时候,在源库做DDL操作的时候会导致syncer挂掉。针对1 PingCAP开发tidb-lighning工具,针对问题2开...原创 2019-03-14 15:16:07 · 2089 阅读 · 0 评论 -
NewSQL TiDB vs CockroachDB
TiDB和CockroachDB都秉承Google Spanner的衣钵,分层结构和实现的依赖的存储等都有不少共同性。由于TiDB兼容MySQL的协议,CockroachDB兼容pg协议,在国内TiDB使用的案例比较多,涵盖了TMD,CockroachDB使用案例比较少,CockroachDB国内的使用用户有百度、京东物流等.可能的原因:1.pg在国内互联网领域储备的人才较少2....原创 2019-03-14 18:57:31 · 6521 阅读 · 0 评论 -
Gravity增量同步MySQL数据到TiDB
前提准备:试验:源库MySQL5.7.24中进行DML操作默认不支持DDL操作,需要在配置中开启DDL目标库查看验证:监控查看:原创 2019-03-07 17:42:20 · 810 阅读 · 0 评论 -
数据库与TiDB的同步
可以利用kafka读取源库的文件:MySQL--》TiDB方案1:数据量小的时候直接使用官方提供的mydumper+loader+syncer数据量大可用mydumper+TiDB lightning后期维护的时候使用:TiDB的同步(源库要不同的加减字段、修改字段) TiDB DM方案2:使用摩拜开源的gravityMongoDB --》TiDBSQL server...原创 2019-05-05 12:06:41 · 1722 阅读 · 0 评论 -
TiDB 数据迁移到MySQL
背景:由于TiDB 的语法和MySQL是兼容的,兼容度为90%以上,在测试开发或者数据回滚的阶段可以将TiDB的数据迁移到MySQL 5.7版本用于测试验证。源库为TiDB2.1.6版本目标库为MySQL5.7.25版本注意:MySQL8.0版本目前还兼容TiDB2.1版本,应该是兼容于TiDB 3.0.1.安装备份工具:#wget https://github.com/maxb...原创 2019-04-26 09:55:45 · 2240 阅读 · 0 评论 -
TiDB SQL 优化案例
单表简单的聚合查询耗时1min+,领导要求在10s以内查询聚合出结果。EXPLAIN ANALYZESELECT COUNT(s.id) pv, COUNT(DISTINCT IFNULL(s.user_id,s.uuid)) uv, ROUND(COUNT(s.id)/COUNT(DISTINCT IFNULL(s.user_id,s.u...原创 2019-03-28 00:33:42 · 1260 阅读 · 0 评论 -
TiDB 磁盘检验
TASK [machine_benchmark : Preflight check - Does fio randread iops of tikv_data_dir disk meet requirement] ********************************************fatal: [10.19.32.135]: FAILED! => {"changed...原创 2019-03-28 00:32:10 · 1313 阅读 · 0 评论 -
TiDB 监控截图
PD:TiDB 监控详情:TiKV监控信息:https://www.pingcap.com/docs-cn/op-guide/d...原创 2019-05-10 10:11:20 · 729 阅读 · 0 评论 -
TiDB 报错: GC life time is shorter than transaction duration
报错信息: Could not read data from track.ods_online_log_mark: GC life time is shorter than transaction duration, transaction starts at 2019-03-30 12:32:26.817 +0800 CST, GC safe point is 2019-03-30 12:...原创 2019-03-30 13:52:27 · 3993 阅读 · 0 评论 -
Gravity 将MongoDB的数据同步到kafka
源库为MongoDBMongoDB中的数据可以发送到kafka供下游的应用消费原创 2019-03-25 20:11:02 · 1251 阅读 · 0 评论 -
Gravity 同步MongoDB数据到TiDB
准备工作:在TiDB中创建的表、列字段要和MongoDB中的大小写一模一样,否则就会报错。1.2.3.生成测试数据:for (i = 1; i < 21; i++) { db.users.insert({ "userid": i, "username": "user" + i, "age": Math.floor(Math.random()*120), ...原创 2019-03-25 14:57:42 · 746 阅读 · 0 评论 -
NewSQL 数据库测试工具介绍sysbench YSCB TPC-H TPC-DS
NewSQL 介绍:分类:作为OLTP和OLAP关注的点不一样:测试工具:sysbench:https://github.com/akopytov/sysbenchTPC-C:TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统。1992年7月发布。几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测...原创 2019-03-15 12:14:57 · 978 阅读 · 0 评论 -
TiDB 2.1 group_concat bug 记录
截止TiDB 2.1.5版本 group_concat函数不支持order by desc 子句.create table t(id bigint not null auto_increment primary key,country varchar(20),city_id int,city_name varchar(20)); insert into t(province,city_...原创 2019-03-01 17:05:12 · 1114 阅读 · 0 评论 -
TiDB 2.1.5 升级记录
由于验证bug的问题或者生产环境的演练,升级到TiDB的最新版本,仅做记录。TiDB 于2019年2月28日发布,之前PoC测试使用的为TiDB2.1.3版本。-- 升级前的版本:MySQL [(none)]> select tidb_version()\G*************************** 1. row ***************************...原创 2019-03-01 14:59:20 · 454 阅读 · 0 评论 -
usql 安装试用体验
1.概述usql 即universal command-line interface for SQL databases。功能:usql provides a simple way to work with SQL and NoSQL databases via a command-line inspired by PostgreSQL's psql. usql supports mos...原创 2018-09-19 17:45:03 · 1006 阅读 · 0 评论 -
TiDB 虚拟机单机部署
单机环境仅用于练手和测试、开发验证。运行环境:vmware workstations + CentOS 7.51.下载软件:约170M左右#wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz# mv /usr/local/tidb-latest-linux-amd64/ /usr/local/tidb2.目录...原创 2018-09-06 21:25:42 · 2315 阅读 · 2 评论 -
TiDB 专用语法
TiDB专用语法有2个方面:优化器注释和表属性。注意优化器需要mysql客户端5.7.7版本以上支持,针对之前的版本则需使用如下命令:mysql -h 127.0.0.1 -P 4000 -uroot --comments--查询MySQL 客户端版本:#mysql --versionmysql Ver 8.0.12 for linux-glibc2.12 on x86_64 ...原创 2018-09-06 16:36:30 · 3672 阅读 · 0 评论 -
TiDB 真正支持的MySQL参数和tidb专用的参数
--版本:mysql> select tidb_version()\G*************************** 1. row ***************************tidb_version(): Release Version: v2.1.0-rc.1-1-g01c6bd8Git Commit Hash: 01c6bd820c752d6ee739020...原创 2018-09-06 16:17:02 · 3134 阅读 · 0 评论 -
TiDB 系统表
TiDB为了兼容MySQL 提供了一些系统运行时的信息,在schema上MySQL保持一致,有MySQL、information_schema 和performance_schema,暂时没有sys相关的库。其中很多表名暂时只是为了兼容MySQL而存在的,但是实际上没有真实的数据。下列列出有数据的表名:MySQL:mysql> select tidb_version()\G...原创 2018-09-03 12:00:06 · 1336 阅读 · 0 评论 -
TiDB 2.1RC1 升级步骤
--升级之前的版本查询:[root@node1 bin]# ./tidb-server -VRelease Version: v2.0.6Git Commit Hash: b13bc08462a584a085f377625a7bab0cc0351570Git Commit Branch: release-2.0UTC Build Time: 2018-08-06 10:57:4...原创 2018-08-31 17:37:05 · 523 阅读 · 0 评论 -
TiDB 字符集和时区
mysql> select @@version;+--------------------------------------+| @@version |+--------------------------------------+| 5.7.10-TiDB-v2.1.0-beta-179-g5a0fd2d |+------...原创 2018-08-21 16:44:37 · 2603 阅读 · 0 评论 -
TiDB开启慢查询日志记录
方法1:--开启慢查询日志:在所有的TiDB节点操作:mysql> show variables like '%general%log%';+------------------+-------------------------------------+| Variable_name | Value |+---...原创 2018-08-23 15:09:55 · 2533 阅读 · 0 评论 -
TiDB中TiKV性能参数调整过程
环境信息:$ ansible --versionansible 2.6.3 config file = /home/tidb/tidb-ansible/ansible.cfg configured module search path = [u'/home/tidb/.ansible/plugins/modules', u'/usr/share/ansible/plugins/mod...原创 2018-08-23 14:28:47 · 3528 阅读 · 0 评论 -
TiDB docker单机体验
准备工作:1.安装docker:yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repoyum list docker-ce -...原创 2018-08-17 17:44:22 · 3148 阅读 · 1 评论 -
TiDB 2.0 报错 9500 Transaction too large
TiDB执行语句报错:insert into t select * from tt;报错信息:9500:Transaction too large错误代码: 9500transaction too large, len:300001解释:由于分布式事务要做两阶段提交,并且底层还需要做 Raft 复制,如果一个事务非常大,会使得提交过程非常慢,并且会卡住下面的 Raft 复制流...原创 2018-09-20 16:16:30 · 5840 阅读 · 1 评论 -
TiDB 2.0 kill会话
运行环境:在tiDB中国目前的版本家索引很费时间,对磁盘的IO影响较大,若在加索引的时候可以考虑kill掉会话。待空闲时间在加索引。1.准备单表1000万条记录:sysbench2.执行添加字段和索引的语句:alter table benchmark1.sbtest1 add column datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ...原创 2018-09-20 16:56:19 · 1872 阅读 · 1 评论 -
GPU 数据库
在2015年之前GPU数据库还只是一个技术案例的演示版本,自2015年以来已经陆续有基于GPU加速的数据库。GPU数据库的若干优点针对大量数据执行重复性操作时,GPU数据库相比常规的CPU数据库有了显著改进。这是由于GPU在每块卡上可能有数千个核心和高带宽内存。GPU具有许多独特的优点:1.更快速的创新:GPU仍然遵循阿姆达尔定律(Amdahl’s law),效率提升通常是CPU速度提...原创 2018-12-29 17:01:26 · 3857 阅读 · 1 评论 -
TiDB DM工具通过ansible 部署实战
1.安装依赖的软件包:# yum -y install epel-release git curl sshpass python-pip2.# useradd -m -d /home/tidb tidb# passwd tidb# visudotidb ALL=(ALL) NOPASSWD: ALL# su - tidb$$ ssh-keygen -t rsaGener...原创 2019-03-04 23:15:17 · 657 阅读 · 0 评论 -
TiDB 部署NTP检查操作及原因
-- 报错:TASK [check_system_dynamic : Preflight check - NTP service] ************************************************************************************************************************************...原创 2019-03-01 11:34:24 · 1253 阅读 · 0 评论 -
TiDB 2.1 组件升级
1.修改 /home/tidb/tidb-ansible/inventory.ini 中的 tidb_version 参数值,指定需要升级的版本号$ vim /home/tidb/tidb-ansible/inventory.initidb_version = v2.1.3指定要升级到的版本。注意:如果使用 master 分支的 tidb-ansible,tidb_version = l...原创 2019-02-28 19:16:55 · 480 阅读 · 0 评论 -
TiDB 2 修改默认的监控保留日期
在中控机的目录下可以收到:[tidb@tidb tidb-ansible]#pwd/home/tidb/tidb-ansible$ grep -R prometheus_storage_retention *roles/prometheus/defaults/main.yml:prometheus_storage_retention: "15d"roles/prometheus/tem...原创 2019-02-19 14:37:45 · 818 阅读 · 0 评论