前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单机版tidb数据库搭建

单机版tidb数据库搭建

作者头像
summerking
发布2022-10-27 13:40:40
6750
发布2022-10-27 13:40:40
举报
文章被收录于专栏:summerking的专栏

TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP(Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。TiDB 具备如下核心特点:

# tidb 特点

  1. 高度兼容 MySQL 大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移。
  2. 水平弹性扩展 通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景。
  3. 分布式事务 TiDB 100% 支持标准的 ACID 事务。
  4. 真正金融级高可用 相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。
  5. 一站式 HTAP 解决方案 TiDB 作为典型的 OLTP 行存数据库,同时兼具强大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP解决方案,一份存储同时处理OLTP & OLAPOLAP、OLTP的介绍和比较无需传统繁琐的 ETL 过程。
  6. 云原生 SQL 数据库 TiDB 是为云而设计的数据库,同 Kubernetes (Kubernetes核心概念 )深度耦合,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。 TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。 TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。

# tidb 组件

  1. TiDB Server TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。 TiDB Server是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或F5)对外提供统一的接入地址。
  2. PD Server Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个: 一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader的迁移等);三是分配全局唯一且递增的事务 ID。    PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。
  3. TiKV Server TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range (从 StartKey 到EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region 。TiKV 使用 Raft协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 RaftGroup,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。

# 单机版部署

  1. 将tidb_install.zip上传到服务器并解压
代码语言:javascript
复制
[root@summer ~]# ll
total 491528
-rw-------. 1 root root      1259 Sep  8 23:00 anaconda-ks.cfg
-rw-r--r--  1 root root 443222812 Dec 14 09:33 tidb_install.zip
[root@summer ~]# unzip tidb_install.zip 
Archive:  tidb_install.zip
   creating: tidb_install/
  inflating: tidb_install/install.sh  
   creating: tidb_install/include/
  inflating: tidb_install/include/chk_install.sh  
  inflating: tidb_install/include/common.sh  
  inflating: tidb_install/include/Menu.sh  
  inflating: tidb_install/include/sysinfo.sh  
  inflating: tidb_install/include/tidb.sh  
   creating: tidb_install/src/
  inflating: tidb_install/src/tidb-latest-linux-amd64.tar.gz  
[root@summer ~]# ll
total 491528
-rw-------. 1 root root      1259 Sep  8 23:00 anaconda-ks.cfg
drwxr-xr-x  4 root root        50 Jul 12 13:05 tidb_install
-rw-r--r--  1 root root 443222812 Dec 14 09:33 tidb_install.zip

# 执行安装脚本

代码语言:javascript
复制
[root@summer ~]# chmod a+x -R tidb_install
[root@summer ~]# cd tidb_install
[root@summer tidb_install]# ll
total 4
drwxr-xr-x 2 root root  93 Jul 12 13:05 include
-rwxr-xr-x 1 root root 542 Dec 14 09:15 install.sh
drwxr-xr-x 2 root root  44 Jul 12 13:09 src
[root@summer tidb_install]# ./install.sh 

Your hardware & OS information is below:

--------------------------------------------------------------------
IP :192.168.0.66
CPU: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz
Memory:974 MB
OS : CentOS Linux release 7.5
Sysbit: 64bit
Disk free size:	27G
Date:Mon Dec 14 09:34:22 CST 2020
--------------------------------------------------------------------


Do you want Install Tidb?(y/n)y
正在检查mysql......
检查到mysql已安装!
Checking  user :
user is root, this is ok!
正在解压tidb安装包请稍后..
--------------------本机安装tidb成功---------------------
------------------------------------------------------------
>>>>>>>>>>>>>Here are some states you can see<<<<<<<<<<<<<
Your can execute: 
mysql -h127.0.0.1 -P4000 -uroot -D TEST
+----------------------------------------------------------+
------------------Calculate script runtime------------------
Install use 0Min 24Sec 
..........................Bye-bye...........................
+----------------------------------------------------------+

# 验证

代码语言:javascript
复制
[root@summer tidb_install]# mysql -h 127.0.0.1 -P 4000 -u root 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25-TiDB-v4.0.2 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \q
Bye
[root@summer tidb_install]# ss -nplt |grep 4000
LISTEN     0      128         :::4000                    :::*                   users:(("tidb-server",pid=37989,fd=16))
[root@summer tidb_install]# 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # tidb 特点
  • # tidb 组件
  • # 单机版部署
  • # 执行安装脚本
  • # 验证
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档