tidb 架构 ~Tidb学习系列(4)

时间:2023-03-08 15:51:45
tidb 架构 ~Tidb学习系列(4)

一 简介:今天我们继续学习tidb

二 集群管理

0 集群配置
       验证 4台一组 3个kv 一个pd+server
       上线 6台一组
   1 动态添加kv服务
       nohup tikv-server --pd="IP1:2379" --addr="IP2:20160" --data-dir=/usr/local/tidb/tikv --log-file=/usr/local/tidb/tikv.log & pd指向已存在的pd服务
       验证方式
         1 查看tivk大小,会发现在慢慢变大
         2 观察日志,region在一直迁移
         3 通过pd-ctl能观察到存储状态
   2 动态添加server服务
      nohup tidb-server --store=tikv --path=IP1:2379 --log-file=/usr/local/tidb/tidb.log & pd指向已存在的pd服务
     验证方式
     通过mysql -hIP:PORT 方式能访问代表正确
  3 动态添加pd服务
     nohup pd-server --name=pd4 --data-dir=/usr/local/tidb/pd --log-file=/usr/local/tidb/pd.log --client-urls="http://ip2:2379" --peer-urls="http://ip2:2380" --join="http://ip1:2379" &    
     验证方式
     pd-ctl -u http://IP:2379 能查询到所有存储节点
  4 loader导入数据注意事项
    1 极有可能 导致tidb_server OOM被kill,对于大文件,所以选择一定要cpu和内存配置比较高的服务器
    2 对于 insert 和 select,可以开启 set @@session.tidb_batch_insert=1; 隐藏参数,insert 会把大事务分批执行。这样不会因为事务太大而超时,但是可能会导致事务原子性的丢失。如果事务执行过程中报错,会导致只完成一部分事务的插入。所以建议只有在需要的时候,在 session 中使用,这样不会影响其他语句。事务完成以后,可以用 set @@session.tidb_batch_insert=0 关闭。
对 delete 和 update 语句,可以使用 limit 加循环的方式进行操作