登录
mysql -u root -h 10.127.0.1 -P 4000 -p
默认没有密码
git clone -b release-3.1 https://github.com/pingcap/tidb-ansible.git
git clone -b v3.0.8 https://github.com/pingcap/tidb-ansible.git
启动和关闭集群
中控机
ansible-playbook stop.yml
ansible-playbook start.yml
清除集群数据
ansible-playbook unsafe_cleanup_data.yml
注销集群
ansible-playbook unsafe_cleanup.yml
配置
tidb配置
stmt-count-limit
限制一个事务,多少条数据需要commit或者rollback。默认5000
split-table
默认是为每个table建立独立的region。如果有大量的表,需要把这个参数关闭。默认是开启的
mem-quota-query
单条sql语句可以占用的最大内存。默认是32G
pd配置
force-new-cluster
强制pd以一个新集群启动
max-replicas
副本数量,默认3个
tikv配置
scheduler-concurrency
内置一个内存锁机制,防止同时对一个key进行操作。每个key hash到不同的槽
Syn-log
数据,log落盘是否sync,设置成false可能会丢数据,默认是true
Apply-pool-size
处理数据落盘的线程池,线程数。默认2
region-max-size
region容量最大空间,超过时系统分裂成多个region
max-background-jobs
rocksdb后台线程个数,默认8
max-open-files
rocksdb可以打开的文件总数
info-log-max-size
info日志最大大小,默认1G
info-log-roll-time
日志截断间隔时间,不截断是0,默认是0
info-log-keep-log-file-num
保留日志文件最大个数,默认10
info-log-dir
日志存储目录
block-size
rocksdb block size大小,默认64kB
block-cache-size
rocksdb block cache size大小,默认是机器内存/4
write-buffer-size
内存表大小,默认128m
max-write-buffer-number
最大内存表个数,默认5
max-bytes-for-level-base
一般设置为内存表的4倍
安全
权限管理跟MySQL一样
mysql.user全局权限
mysql.db db级权限
mysql.tables_priv 表级权限
select current_role() #查看当前会话的角色
设置默认启动角色
set default role administrator,developer to root@’%’; 设置administrator,developer角色给用户
set default role all to root@’%’; 设置所有角色
set default role none to root@’%’; 关闭用户所有角色
session中启用角色
set role ‘role1’,’role2’;
set role default;
set role all;
set role none; #不启用角色
set role all except ‘role1’,’role2’; #启动所有角色,排除role1和role2角色
事务优化
由于tidb的每个事务都需要跟pd leader 进行两次 round trip,事务延迟很高。
所以有将多个小事务合并成一个大事务commit;减少与pd leader交互。
tidb事务隔离级别是快照隔离级别。
事务限制
GC机制
gc用来清理不再需要的mvcc旧数据,gc运行由GC leader控制,gc是每10分钟一次




