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 具有以下优势:
1)纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容
2)支持 SQL,对外暴露 MySQL 的网络协议,并兼容大多数 MySQL 的语法,在大多数场景下可以直接替换 MySQL
3)默认支持高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务透明
4)支持 ACID 事务,对于一些有强一致需求的场景友好,例如:银行转账
5)具有丰富的工具链生态,覆盖数据迁移、同步、备份等多种场景
实验环境准备:
两台虚拟机:
192.168.153.128 server1 zabbix-server ,TiDB
192.168.153.133 server2 tikv集群
环境搭建:
在两台机器上下载tidb二进制软件包
wget https://download.pingcap.org/tidb-latest-linux-amd64.tar.gz
tar zxf tidb-latest-linux-amd64.tar.gz
(server1,2执行同样操作)
Server1解压后,进入解压后的包里,执行如下操作:
.
./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://192.168.153.128:2379" --peer-urls="http://192.168.153.128:2380" --initial-cluster="pd1=http://192.168.153.128:2380" --log-file=pd.log & #开启PD并后台运行
netstat -antlp | grep pd #查看两个端口是否运行
在server2中进入解压后的文件:
./bin/tikv-server --pd="192.168.153.128:2379" --addr="192.168.153.133:20160" --data-dir=tikv1 --log-file=tikv.log & #将pd指向server1
netstat -antlp | grep tikv
#执行完成后要看到以下端口开启与否
在server1服务端开启zabbix及tidb
在server1中执行以下操作:
./bin/tidb-server & #开启tidb-server服务并打入后台
netstat -antlp | grep tidb #查看端口是否开启
数据导入:
建立数据库:
[root@server1 ~]# mkdir mysql
[root@server1 ~]# cd mysql/
[root@server1 mysql]# ls
[root@server1 mysql]# mkdir mysql1
[root@server1 mysql]# cd mysql1/
[root@server1 mysql1]# tar xf mysql-5.7.33-1.el7.x86_64.rpm-bundle\(1\).tar
[root@server1 mysql1]# ls
yum install -y mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm
进入数据库,将数据库中的数据从mysql转移到tidb
进入mysql数据库 创建zabbix用户并设定权限
mysql -h 192.168.153.128 -P 4000 -uroot
将数据从mysql转移到tidb
进入mysql数据库 创建zabbix用户并设定权限
create database zabbix character set utf8 collate utf8_bin;
CREATE USER 'zabbix'@'%' IDENTIFIED BY '123456-westos-MA';
grant all privileges on *.* to 'zabbix'@'%';
[root@server1 tidb-v5.0.1-linux-amd64]# mysql -h 192.168.153.128 -P 4000 -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25-TiDB-v5.0.1 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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> create database zabbix character set utf8 collate utf8_bin;
mysql> CREATE USER 'zabbix'@'%' IDENTIFIED BY '123456-westos-MA';
mysql> grant all privileges on *.* to 'zabbix'@'%';
权限设定完毕后开始对mysql数据库进行备份
切换目录 开始备份 中途不要ctrl+c 结束
对数据库进行备份:
切换目录 开始备份 中途不要ctrl+c 结束
cd /usr/share/doc/zabbix-server-mysql-5.0.25/
mysqldump -uroot -p123456-westos-MA zabbix >/mnt/zabbix.sql
将mysql数据库的内容导入到tidb中
[root@server1 mnt]# mysql -h 192.168.153.128 -P 4000 -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.25-TiDB-v5.0.1 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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> use zabbix;
Database changed
mysql> set tidb_batch_insert=1;
Query OK, 0 rows affected (0.00 sec)
mysql> source /mnt/zabbix.sql;
直接等待导入完成
编辑配置文件vim /etc/zabbix/zabbix_server.conf 将 zabbix 的监听端口更改为4000
编辑配置文件/etc/zabbix/web/zabbix.conf.php
将server选项更改为自己的tidb主机 更改端口为4000
<?php
// Zabbix GUI configuration file.
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '192.168.153.128';
$DB['PORT'] = '4000';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = '123456-westos-MA';
重启zabbix-server zabbix-agent服务
[root@server1 web]# systemctl restart zabbix-agent.service
[root@server1 web]# systemctl restart zabbix-server.service
重新访问zabbix主机: