一 简介:今天我们继续学习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 加循环的方式进行操作