Skip to content

Commit 2c666d1

Browse files
committed
*: reorganize the quick start structure
Via: pingcap/docs#598, pingcap/docs#594, pingcap/docs#583
1 parent 5bf4aa5 commit 2c666d1

File tree

3 files changed

+215
-283
lines changed

3 files changed

+215
-283
lines changed

QUICKSTART.md

+14-282
Original file line numberDiff line numberDiff line change
@@ -5,291 +5,23 @@ category: deployment
55

66
# TiDB 快速入门指南
77

8-
## 关于 TiDB
8+
作为开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,TiDB 可以部署在本地和云平台上,支持公有云、私有云和混合云。
99

10-
TiDB 是 PingCAP 公司受 Google [Spanner](http://research.google.com/archive/spanner.html) / [F1](http://research.google.com/pubs/pub41344.html) 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。
10+
## TiDB 部署方式
1111

12-
## 关于本指南
12+
你可以根据实际场景或需求,选择相应的方式来部署 TiDB 集群:
1313

14-
本指南为您介绍如何使用 TiDB-Ansible 快速部署一个 TiDB 集群,并了解 TiDB 的基本操作和管理。
14+
- [使用 Ansible 部署](op-guide/ansible-deployment.md):如果用于生产环境,须使用 Ansible 部署 TiDB 集群。
15+
- [使用 Ansible 离线部署](op-guide/offline-ansible-deployment.md):如果部署环境无法访问网络,可使用 Ansible 进行离线部署。
16+
- [使用 Docker Compose 部署](op-guide/docker-compose.md):如果你只是想测试 TiDB、体验 TiDB 的特性,或者用于开发环境,可以使用 Docker Compose 在本地快速部署 TiDB 集群。该部署方式不适用于生产环境。
17+
- [使用 Docker 部署](op-guide/docker-deployment.md):你可以使用 Docker 部署 TiDB 集群,但该部署方式不适用于生产环境。
1518

16-
## TiDB 集群部署
19+
## 项目源码
1720

18-
本节具体介绍如何部署一个 TiDB 集群。一个 TiDB 集群由不同的模块组成,包括:TiDB 服务器、TiKV 服务器、Placement Driver (PD) 服务器。
21+
TiDB 集群所有组件的源码均可从 GitHub 上直接访问:
1922

20-
架构图如下所示:
21-
22-
![TiDB Architecture](media/tidb-architecture.png)
23-
24-
参考 [TiDB Ansible 部署方案](./op-guide/ansible-deployment.md)
25-
26-
## TiDB 基本操作
27-
28-
本节具体介绍 TiDB 中基本的增删改查操作。
29-
30-
### 创建、查看和删除数据库
31-
32-
使用 `CREATE DATABASE` 语句创建数据库。语法如下:
33-
34-
```sql
35-
CREATE DATABASE db_name [options];
36-
```
37-
38-
例如,要创建一个名为 `samp_db` 的数据库,可使用以下语句:
39-
40-
```sql
41-
CREATE DATABASE IF NOT EXISTS samp_db;
42-
```
43-
44-
使用 `SHOW DATABASES` 语句查看数据库:
45-
46-
```sql
47-
SHOW DATABASES;
48-
```
49-
50-
使用 `DROP DATABASE` 语句删除数据库,例如:
51-
52-
```sql
53-
DROP DATABASE samp_db;
54-
```
55-
56-
### 创建、查看和删除表
57-
58-
使用 `CREATE TABLE` 语句创建表。语法如下:
59-
60-
```sql
61-
CREATE TABLE table_name column_name data_type constraint;
62-
```
63-
64-
例如:
65-
66-
```sql
67-
CREATE TABLE person (
68-
number INT(11),
69-
name VARCHAR(255),
70-
birthday DATE
71-
);
72-
```
73-
74-
如果表已存在,添加 `IF NOT EXISTS` 可防止发生错误:
75-
76-
```sql
77-
CREATE TABLE IF NOT EXISTS person (
78-
number INT(11),
79-
name VARCHAR(255),
80-
birthday DATE
81-
);
82-
```
83-
84-
使用 `SHOW CREATE` 语句查看建表语句。例如:
85-
86-
```sql
87-
SHOW CREATE table person;
88-
```
89-
90-
使用 `SHOW FULL COLUMNS` 语句查看表的列。 例如:
91-
92-
```sql
93-
SHOW FULL COLUMNS FROM person;
94-
```
95-
96-
使用 `DROP TABLE` 语句删除表。例如:
97-
98-
```sql
99-
DROP TABLE person;
100-
```
101-
102-
或者
103-
104-
```sql
105-
DROP TABLE IF EXISTS person;
106-
```
107-
108-
使用 `SHOW TABLES` 语句查看数据库中的所有表。例如:
109-
110-
```sql
111-
SHOW TABLES FROM samp_db;
112-
```
113-
114-
### 创建、查看和删除索引
115-
116-
对于值不唯一的列,可使用 `CREATE INDEX``ALTER TABLE` 语句。例如:
117-
118-
```sql
119-
CREATE INDEX person_num ON person (number);
120-
```
121-
122-
或者
123-
124-
```sql
125-
ALTER TABLE person ADD INDEX person_num (number);
126-
```
127-
128-
对于值唯一的列,可以创建唯一索引。例如:
129-
130-
```sql
131-
CREATE UNIQUE INDEX person_num ON person (number);
132-
```
133-
134-
或者
135-
136-
```sql
137-
ALTER TABLE person ADD UNIQUE person_num on (number);
138-
```
139-
140-
使用 `SHOW INDEX` 语句查看表内所有索引:
141-
142-
```sql
143-
SHOW INDEX from person;
144-
```
145-
146-
使用 `ALTER TABLE``DROP INDEX` 语句来删除索引。与 `CREATE INDEX` 语句类似,`DROP INDEX` 也可以嵌入 `ALTER TABLE` 语句。例如:
147-
148-
```sql
149-
DROP INDEX person_num ON person;
150-
ALTER TABLE person DROP INDEX person_num;
151-
```
152-
153-
### 增删改查数据
154-
155-
使用 `INSERT` 语句向表内插入数据。例如:
156-
157-
```sql
158-
INSERT INTO person VALUES("1","tom","20170912");
159-
```
160-
161-
使用 `SELECT` 语句检索表内数据。例如:
162-
163-
```sql
164-
SELECT * FROM person;
165-
+--------+------+------------+
166-
| number | name | birthday |
167-
+--------+------+------------+
168-
| 1 | tom | 2017-09-12 |
169-
+--------+------+------------+
170-
```
171-
使用 `UPDATE` 语句修改表内数据。例如:
172-
173-
```sql
174-
UPDATE person SET birthday='20171010' WHERE name='tom';
175-
176-
SELECT * FROM person;
177-
+--------+------+------------+
178-
| number | name | birthday |
179-
+--------+------+------------+
180-
| 1 | tom | 2017-10-10 |
181-
+--------+------+------------+
182-
```
183-
184-
使用 `DELETE` 语句删除表内数据:
185-
186-
```sql
187-
DELETE FROM person WHERE number=1;
188-
SELECT * FROM person;
189-
Empty set (0.00 sec)
190-
```
191-
192-
### 创建、授权和删除用户
193-
194-
使用 `CREATE USER` 语句创建一个用户 `tiuser`,密码为 `123456`
195-
196-
```sql
197-
CREATE USER 'tiuser'@'localhost' IDENTIFIED BY '123456';
198-
```
199-
200-
授权用户 `tiuser` 可检索数据库 `samp_db` 内的表:
201-
202-
```sql
203-
GRANT SELECT ON samp_db.* TO 'tiuser'@'localhost';
204-
```
205-
206-
查询用户 `tiuser` 的权限:
207-
208-
```sql
209-
SHOW GRANTS for tiuser@localhost;
210-
```
211-
212-
删除用户 `tiuser`
213-
214-
```sql
215-
DROP USER 'tiuser'@'localhost';
216-
```
217-
218-
## TiDB 集群监控
219-
220-
打开浏览器,访问以下监控平台:
221-
222-
地址:`http://172.16.10.3:3000`
223-
默认帐户和密码为:`admin`@`admin`
224-
225-
### 重要监控指标详解
226-
227-
+ PD
228-
- Storage Capacity : TiDB 集群总可用数据库空间大小
229-
- Current Storage Size : TiDB 集群目前已用数据库空间大小
230-
- Store Status -- up store : TiKV 正常节点数量
231-
- Store Status -- down store : TiKV 异常节点数量
232-
233-
如果大于 0,证明有节点不正常
234-
- Store Status -- offline store : 手动执行下线操作 TiKV 节点数量
235-
- Store Status -- Tombstone store : 下线成功的 TiKV 节点数量
236-
- Current storage usage : TiKV 集群存储空间占用率
237-
238-
超过 80% 应考虑添加 TiKV 节点
239-
- 99% completed_cmds_duration_seconds : 99% pd-server 请求完成时间
240-
241-
小于 5ms
242-
- average completed_cmds_duration_seconds : pd-server 请求平均完成时间
243-
244-
小于 50ms
245-
- leader balance ratio : leader ratio 最大的节点与最小的节点的差
246-
247-
均衡状况下一般小于 5%,节点重启时会比较大
248-
- region balance ratio : region ratio 最大的节点与最小的节点的差
249-
250-
均衡状况下一般小于 5%,新增/下线节点时会比较大
251-
252-
+ TiDB
253-
- handle_requests_duration_seconds : 请求 PD 获取 TSO 响应时间
254-
255-
小于 100ms
256-
- tidb server QPS : 集群的请求量
257-
258-
- connection count : 从业务服务器连接到数据库的连接数
259-
260-
和业务相关。但是如果连接数发生跳变,需要查明原因。比如突然掉为 0,可以检查网络是否中断;
261-
如果突然上涨,需要检查业务。
262-
- statement count : 单位时间内不同类型语句执行的数目
263-
- Query Duration 99th percentile : 99% 的 query 时间
264-
265-
+ TiKV
266-
- 99% & 99.99% scheduler command duration : 99% & 99.99% 命令执行的时间
267-
268-
99% 小于 50ms;99.99% 小于 100ms
269-
- 95% & 99% storage async_request duration : 95% & 99% Raft 命令执行时间
270-
271-
95% 小于 50ms;99% 小于 100ms
272-
- server report failure message : 发送失败或者收到了错误的 message
273-
274-
如果出现了大量的 unreachadble 的消息,表明系统网络出现了问题。如果有 store not match 这样的错误,
275-
表明收到了不属于这个集群发过来的消息
276-
- Vote : Raft vote 的频率
277-
278-
通常这个值只会在发生 split 的时候有变动,如果长时间出现了 vote 偏高的情况,证明系统出现了严重的问题,
279-
有一些节点无法工作了
280-
- 95% & 99% coprocessor request duration : 95% & 99% coprocessor 执行时间
281-
282-
和业务相关,但通常不会出现持续高位的值
283-
- Pending task : 累积的任务数量
284-
285-
除了 pd worker,其他任何偏高都属于异常
286-
- stall : RocksDB Stall 时间
287-
288-
大于 0,表明 RocksDB 忙不过来,需要注意 IO 和 CPU 了
289-
- channel full : channel 满了,表明线程太忙无法处理
290-
291-
如果大于 0,表明线程已经没法处理了
292-
- 95% send_message_duration_seconds : 95% 发送消息的时间
293-
294-
小于 50ms
295-
- leader/region : 每个 TiKV 的 leader/region 数量
23+
- [TiDB](https://github.com/pingcap/tidb)
24+
- [TiKV](https://github.com/tikv/tikv)
25+
- [PD](https://github.com/pingcap/pd)
26+
- [TiSpark](https://github.com/pingcap/tispark)
27+
- [TiDB Operator](https://github.com/pingcap/tidb-operator)

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
+ TiDB 简介与整体架构
66
- [TiDB 简介](overview.md#tidb-简介)
77
- [TiDB 整体架构](overview.md#tidb-整体架构)
8-
- [TiDB 快速入门指南](QUICKSTART.md)
8+
+ TiDB 快速入门
9+
- [快速入门指南](QUICKSTART.md)
10+
- [SQL 基本操作](try-tidb.md)
911
+ TiDB 用户文档
1012
+ TiDB 数据库管理
1113
- [TiDB 服务](sql/tidb-server.md)

0 commit comments

Comments
 (0)