TIDB使用心得

官方文档:https://pingcap.com/docs-cn/v3.0/architecture/

tidb可能的问题:

         一行的长度不能超过 6M
每次操作的 总的行数*(1 + 索引个数) < 30w,会影响批量 update / delete
collation 只支持 *_bin 不支持 *_general_ci,影响邮箱登录的大小写
select count(*) 很慢
事务重试机制,「如果事务执行过程中包含了应用层的逻辑,建议在应用层添加显式事务的重试,并关闭自动重试。」
后插入的数据可能自增 ID 小
一、tidb的软件和硬件环境要求:
https://www.pingcap.com/docs-cn/op-guide/recommendation/
目前资源信息:
realease:CentOS Linux release 7.4.1708 (Core)
cpu、内存:三个pd:8u64G、云盘ssd 200+400G ;5个tikv:8u64G、1.8T ssd
二、部署前的准备:
1、跳转机:xxxxxxxx
2、创建tidb用户并做免密互信,以及给tibb用户免密sudo权限:ansible -i hosts tidb -m script -a “useradd.sh”
3、时间同步:目前机器时间已经同步
      4、将ssd磁盘挂载并格式化为ext4文件系统,同时挂载(添加 nodelalloc 和 noatime 挂载参数)
#mount -t ext4 -o nodelalloc,noatime /dev/vdb1 /data1/
#echo ‘/dev/vdb1 /data1 ext4 defaults,nodelalloc,noatime 0 2’ >> /etc/fstab
#mount -t ext4 ###输出如下即可
/dev/vdb1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
       5、tikv节点ulimit -n参数设置 100000
   6、grafana节点执行:sudo yum install fontconfig -y  ####用来支持Dashboard 的Report 按钮可用来生成 PDF 文件
二、线上部署方式:ansibe在线部署:
1、资源分配:分为独立的跳转机:47.95.163.124 (和集群机器做了root免密互信)和集群机器:列表及角色分配:
[tidb-server]
10.111.178.0
10.111.177.255
[pd]
10.111.177.2[49:51]
[tikv]
10.111.178.[3:7]
[kafka]
10.111.178.1[3:5]
2、下载安装脚本,并根据之前资源分配修改:
git clone -b release-2.0 https://github.com/pingcap/tidb-ansible.git
su – tidb (该步骤在之前准备工作里面配置的互信)
根据上面的角色分配修改配置文件inventory.ini
按照如下步骤执行脚本:
$ ansible -i inventory.ini all -m shell -a ‘whoami’ ####互信成功
10.111.177.255 | SUCCESS | rc=0 >>
tidb
$ ansible -i inventory.ini all -m shell -a ‘whoami’ -b####sudo免密成功
10.111.177.251 | SUCCESS | rc=0 >>
root
$ansible-playbook local_prepare.yml #####下载安装包到中控机
Congrats! All goes well. 🙂
$ ansible-playbook bootstrap.yml ####初始化系统环境并修改相关内核参数
#####这里出现ntp服务没开的错误手动开启之后重试
$ ansible-playbook bootstrap.yml –limit @/home/tidb/ansible/tidb-ansible/retry_files/bootstrap.retry
Congrats! All goes well. 🙂
$ansible-playbook deploy.yml #####开始部署集群

You May Also Like

About the Author: daidai5771

发表评论

电子邮件地址不会被公开。 必填项已用*标注