TiDB 分布式数据库(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

#

# TiDB :A Distributed SQL Database

# github :https://github.com/pingcap/tidb

# doc : https://github.com/pingcap/docs-cn 

#


#架构

Name
Host IP Services
node1 192.168.174.134
PD, TiDB
node2 192.168.174.136 TiKV1
node3 192.168.174.137 TiKV2
node4 192.168.174.138 TiKV3


#软件下载(每台都需操作)

1
2
3
[root@node1 ~] # wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz
[root@node1 ~] # tar -xf tidb-latest-linux-amd64.tar.gz -C /usr/local/
[root@node1 ~] # mkdir /data/tidb/{data,log} -p


#开启服务(注:集群的启动顺序不能错)

#在node1开启PD

1
2
3
4
[root@node1 ~] # /usr/local/tidb-latest-linux-amd64/bin/pd-server --name=pd1   \
--data- dir = /data/tidb/data     --client-urls= "http://192.168.174.134:2379"   \
--peer-urls= "http://192.168.174.134:2380"   --initial-cluster= "pd1=http://192.168.174.134:2380"    \
--log- file = /data/tidb/log/pd .log &


参数解释:https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidb


#在node2 node3 node4 上开启 TiKV

1
2
3
[root@node2 ~] # /usr/local/tidb-latest-linux-amd64/bin/tikv-server --pd="192.168.174.134:2379"  --addr="192.168.174.136:20160"  --data-dir=/data/tidb/data --log-file=/data/tidb/log/tikv.log & 
[root@node3 ~] # /usr/local/tidb-latest-linux-amd64/bin/tikv-server --pd="192.168.174.134:2379"  --addr="192.168.174.137:20160"  --data-dir=/data/tidb/data --log-file=/data/tidb/log/tikv.log &
[root@node4 ~] # /usr/local/tidb-latest-linux-amd64/bin/tikv-server --pd="192.168.174.134:2379"  --addr="192.168.174.138:20160"  --data-dir=/data/tidb/data --log-file=/data/tidb/log/tikv.log &


参数解释:https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidb



#在node1 上开启TiDB

1
[root@node1 ~] # /usr/local/tidb-latest-linux-amd64/bin/tidb-server --store=tikv --path="192.168.174.134:2379" --log-file=/data/tidb/log/tidb.log &


#登陆数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@node1 ~] # yum install -y mariadb                        #安装mariadb数据库客户端
[root@node1 ~] # mysql -uroot -h 192.168.174.134 -P 4000
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection  id  is 2
Server version: 5.7.1-TiDB-1.0 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
 
Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear  the current input statement.
 
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| PERFORMANCE_SCHEMA |
| mysql              |
test                |
+--------------------+
4 rows  in  set  (0.00 sec)
 
MySQL [(none)]>  select  host,user from mysql.user ;
+------+------+
| host | user |
+------+------+
| %    | root |
+------+------+
1 row  in  set  (0.00 sec)
 
MySQL [(none)]>  exit
Bye



#集群状态


TiDB 对外暴露的 HTTP 接口是 http://host:port/status,默认的端口号是 10080 (可以通过 --status 参数设置),

可以通过访问这个接口获取当前 TiDB Server 的状态,以及判断是否存活。返回结果是 Json 格式:

1
2
[root@node1 ~] # curl 192.168.174.134:10080/status
{ "connections" :0, "version" : "5.7.1-TiDB-1.0" , "git_hash" : "d6ec37bb4219e95babce41bd0400d04d84b1fb88" }



PD Server

PD API 地址: http://${host}:${port}/pd/api/v1/${api_name}

其中 port 默认为 2379,各类 api_name 详细信息参见 

https://cdn.rawgit.com/pingcap/docs/master/op-guide/pd-api-v1.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[root@node1 ~] # curl 192.168.174.134:2379/pd/api/v1/stores
{
   "count" : 3,
   "stores" : [
     {
       "store" : {
         "id" : 1,
         "address" "192.168.174.138:20160" ,
         "state" : 0,
         "state_name" "Up"
       },
       "status" : {
         "store_id" : 1,
         "capacity" "19 GB" ,
         "available" "17 GB" ,
         "leader_count" : 1,
         "region_count" : 1,
         "sending_snap_count" : 0,
         "receiving_snap_count" : 0,
         "applying_snap_count" : 0,
         "is_busy" false ,
         "start_ts" "2017-05-13T03:16:51+08:00" ,
         "last_heartbeat_ts" "2017-05-13T03:23:58.709890548+08:00" ,
         "uptime" "7m7.709890548s"
       }
     },
     {
       "store" : {
         "id" : 4,
         "address" "192.168.174.137:20160" ,
         "state" : 0,
         "state_name" "Up"
       },
       "status" : {
         "store_id" : 4,
         "capacity" "19 GB" ,
         "available" "16 GB" ,
         "leader_count" : 0,
         "region_count" : 1,
         "sending_snap_count" : 0,
         "receiving_snap_count" : 0,
         "applying_snap_count" : 0,
         "is_busy" false ,
         "start_ts" "2017-05-12T18:17:02+08:00" ,
         "last_heartbeat_ts" "2017-05-13T03:24:00.555315502+08:00" ,
         "uptime" "9h6m58.555315502s"
       }
     },
     {
       "store" : {
         "id" : 5,
         "address" "192.168.174.136:20160" ,
         "state" : 0,
         "state_name" "Up"
       },
       "status" : {
         "store_id" : 5,
         "capacity" "16 GB" ,
         "available" "13 GB" ,
         "leader_count" : 0,
         "region_count" : 1,
         "sending_snap_count" : 0,
         "receiving_snap_count" : 0,
         "applying_snap_count" : 0,
         "is_busy" false ,
         "start_ts" "2017-05-12T18:17:02+08:00" ,
         "last_heartbeat_ts" "2017-05-13T03:23:56.955220422+08:00" ,
         "uptime" "9h6m54.955220422s"
       }
     }
   ]
}
[root@node1 ~] #










本文转自 chaunceyjiang  51CTO博客,原文链接:http://blog.51cto.com/cqwujiang/1925169,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
3月前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
2天前
|
容灾 关系型数据库 分布式数据库
PolarDB分布式版:与云融合的分布式数据库发展新阶段
PolarDB分布式版标志着分布式数据库与云融合的新阶段。它经历了三个发展阶段:从简单的分布式中间件,到一体化分布式架构,再到云原生分布式数据库。PolarDB充分利用云资源的弹性、高性价比、高可用性和隔离能力,解决了大规模数据扩展性问题,并支持多租户场景和复杂事务处理。零售中台的建设背景包括国家数字化转型战略及解决信息孤岛问题,采用分布式数据库提升高可用性和性能,满足海量订单处理需求。展望未来,零售中台将重点提升容灾能力、优化资源利用并引入AI技术,以实现更智能的服务和更高的业务连续性。
|
5月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
516 0
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB 分布式版 V2.0,安全可靠的集中分布式一体化数据库管理软件
阿里云PolarDB数据库管理软件(分布式版)V2.0 ,安全可靠的集中分布式一体化数据库管理软件。
|
2月前
|
关系型数据库 分布式数据库 数据库
PostgreSQL+Citus分布式数据库
PostgreSQL+Citus分布式数据库
87 15
|
3月前
|
SQL 关系型数据库 分布式数据库
Citus 简介,将 Postgres 转换为分布式数据库
【10月更文挑战第4天】Citus 简介,将 Postgres 转换为分布式数据库
141 4
|
3月前
|
SQL NoSQL MongoDB
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
68 0
|
5月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
125 5
|
5月前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决