TiDB 分布式数据库(二)

#

# 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,如需转载请自行联系原作者

你可能感兴趣的:(TiDB 分布式数据库(二))