TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。
TiDB Server
PD Server
TiKV Server
配置环境:
rhel7.3 firewalld和selinux均为disabled状态
toto1: 172.25.13.110 PD1 tidb zabbix-server
toto3: 172.25.13.130 tikv
toto6: 172.25.13.160 tikv
下载源码包: http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz
每一个节点都解压压缩包进入解压出的目录
tar zxf tidb-latest-linux-amd64.tar.gz
cd tidb-latest-linux-amd64
注意:服务启动顺序: PD-server —> tikv-server —>tidb-server
以下启动各个应用程序组件实例的时候,请选择后台启动,避免前台失效后程序自动退出。
具体参数可参看官方文档: https://www.pingcap.com/docs-cn/op-guide/configuration/
toto1:启动 PD-server
[root@toto1 tidb-latest-linux-amd64]# ./bin/pd-server --name=pd1 \
--data-dir=pd1 --client-urls="http://172.25.13.110:2379" \
--peer-urls="http://172.25.13.110:2380" \
--initial-cluster="pd1=http://172.25.13.110:2380" --log-file=pd.log &
toto3:启动 tikv-server :
[root@toto3 tidb-latest-linux-amd64]# /bin/tikv-server\
--pd="172.25.13.110:2379" \
--addr="172.25.13.130:20160" \
--data-dir=tikv1 \
--log-file=tikv.log &
toto6:启动 tikv-server :
[root@toto6 tidb-latest-linux-amd64]# ./bin/tikv-server \
--pd="172.25.13.110:2379" \
--addr="172.25.13.160:20160" \
--data-dir=tikv1 \
--log-file=tikv.log &
toto1:启动 tidb-server
[root@toto1 tidb-latest-linux-amd64]# ./bin/tidb-server &
查看端口4000是否启动:
[root@toto1 mnt]# netstat -antlp |grep 4000
9137/zabbix_server:
tcp 0 0 172.25.13.110:48496 172.25.13.110:4000 ESTABLISHED 9143/zabbix_server:
tcp 0 0 172.25.13.110:52362 172.25.13.110:4000 TIME_WAIT -
tcp6 0 0 :::4000 :::* LISTEN 2547/./bin/tidb-ser
tcp6 0 0 172.25.13.110:4000 172.25.13.110:48498 ESTABLISHED 2547/./bin/tidb-ser
tcp6 0 0 172.25.13.110:4000 172.25.13.110:48500 ESTABLISHED 2547/./bin/tidb-ser
tcp6 0 0 172.25.13.110:4000 172.25.13.110:48508 ESTABLISHED 2547/./bin/tidb-ser
tcp6 0 0 172.25.13.110:4000 172.25.13.110:48472 ESTABLISHED 2547/./bin/tidb-ser
tcp6 0 0 172.25.13.110:4000 172.25.13.110:48468 ESTABLISHED 2547/./bin/tidb-ser
关闭之前安装的mariadb-server服务:
systemctl stop mariadb.service
使用客户端登陆数据库,创建库和用户应进行用户授权。
shell>mysql -h 172.25.13.110 -P 4000 -uroot
MySQL [(none)]> create user zabbix@'%' identified by 'redhat'; # 创建用户
MySQL [(none)]> create database zabbix character set utf8 collate utf8_bin; # 创建库
MySQL [(none)]> grant all on zabbix.* to zabbix@'%' identified by 'redhat'; # 用户授权
MySQL [zabbix]> quit
将zabbix数据导入:
zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | \
mysql -h 172.25.13.110 -P 4000 -uzabbix -p zabbix
查询由于tidb大事务限制,也就是一个事务里面,默认最多包含5000条 SQL statement,在不超过上面 rocksdb 层的几个限制的前提下,这个参数可以修改 tidb 的配置文件进行调整。通过设置:tidb_batch_insert 参数进行处理。
tidb_batch_insert 参数:作用域: SESSION默认值: 0这个变量用来设置是否自动切分插入数据。仅在 autocommit 开启时有效。 当插入大量数据时,可以将其设置为 true,这样插入数据会被自动切分为多个 batch,每个 batch 使用一个单独的事务进行插入。
MySQL [(none)]> set tidb_batch_insert=1;
MySQL [(none)]> source /mnt.date.sql;
这个需要一个sql文件,该sql文件就是需要导入数据库中的数据文件。
set tidb_batch_insert=1 只能是临时设定。如果设置完成后,退出数据库后再次登陆就会变成默认值0,所以设置完成之后使用source /mnt.date.sql;导入数据。
vim /etc/zabbix/zabbix_server.conf
[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf #编辑如下内容:
91 DBHost=172.25.13.110 # zabbix 数据库地址
100 DBName=zabbix #数据库名称
117 DBUser=zabbix # 数据库用户
125 DBPassword=redhat # 数据库密码
140 DBPort=4000 # 数据库端口,TIDB为4000
vim /etc/zabbix/web/zabbix.conf.php
[root@toto1 tidb-latest-linux-amd64]# vim /etc/zabbix/web/zabbix.conf.php
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '172.25.13.110';
$DB['PORT'] = '4000';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'redhat';
systemctl start zabbix-server
systemctl start httpd.service