TIDB替换mysql数据库
TiDB 简介
TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
TiDB 整体架构
TiDB 集群主要分为三个组件:
-
TiDB Server
TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。 TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或 F5)对外提供统一的接入地址。
-
PD Server
Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个: 一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。
PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。 -
TiKV Server
TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range (从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region 。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。
-
TiSpark
TiSpark 作为 TiDB 中解决用户复杂 OLAP 需求的主要组件,将 Spark SQL 直接运行在 TiDB 存储层上,同时融合 TiKV 分布式集群的优势,并融入大数据社区生态。至此,TiDB 可以通过一套系统,同时支持 OLTP 与 OLAP,免除用户数据同步的烦恼。
实验环境
主机 | 服务 |
---|---|
server5:172.25.12.5 | zabbix-server pd-server tidb-server |
server6:172.25.12.6 | tikv-server |
server7:172.25.12.7 | tikv-server |
server8:172.25.12.8 | tikv-server |
TIDB替换mysql数据库
1.安装tidb
tar zxf tidb-latest-linux-amd64.tar.gz -C /usr/local ##解压
cd /usr/local
ln -s tidb-latest-linux-amd64/ tidb ##建立软连接
2.启动tidb
- 开启pd
cd /user/local/tidb
./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.12.5:2379" --peer-urls="http://172.25.12.5:2380" --initial-cluster="pd1=http://172.25.12.5:2380" --log-file=pd.log &
查看端口2379和2380
- 开启tikv
server6
./bin/tikv-server --pd="172.25.12.5:2379" --addr="172.25.12.6:20160" --data-dir=tikv1 --log-file=tikv.log &
server7
./bin/tikv-server --pd="172.25.12.5:2379" --addr="172.25.12.7:20160" --data-dir=tikv1 --log-file=tikv.log &
server8
./bin/tikv-server --pd="172.25.12.5:2379" --addr="172.25.12.8:20160" --data-dir=tikv1 --log-file=tikv.log &
- 开启tidb
./bin/tidb-server &
查看端口4000
3.数据库连接tidb
mysql -h 172.25.12.5 -P 4000 -uroot ##数据库通过4000端口连接tidb
create database zabbix character set utf8 collate utf8_bin; ##创建数据库
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'westos'; ##创建用户
grant all privileges on *.* to 'zabbix'@'%'; ##用户授权
4.导入数据库
cd /usr/share/doc/zabbix-server-mysql-4.0.32/
zcat create.sql.gz | mysql -h 172.25.12.5 -P 4000 -uroot zabbix
5.修改zabbix配置文件
vim /etc/zabbix/zabbix_server.conf
91 DBHost=172.25.12.5
124 DBPassword=westos
139 DBPort=4000
6.修改zabbix网站的端口和ip
vim /etc/zabbix/web/zabbix.conf.php
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '172.25.12.5';
$DB['PORT'] = '4000';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'westos';
7.重启服务访问http://172.25.12.5/zabbix
systemctl restart zabbix-server.service