小本本的Tidb日常运维操作
作为一名云服务器推荐网的小编,我在Tidb运维方面积累了一些经验。以下是一些Tidb日常运维操作,希望对需要进行Tidb运维的朋友有所帮助。

一、集群操作
启动集群:ansible-playbook start.yml(-tags=tidb/tikv/pd标记tags可选)
关闭集群:ansible-playbook stop.yml(-tags=tidb/tikv/pd标记tags可选)
停止单个tidb-server/tikv-server:ansible-playbook stop.yml –tags=tidb/tikv/pd -l IP(IP为inventory.ini配置的IP或别名)
清除集群数据:ansible-playbook unsafe_cleanup_data.yml
销毁集群:ansible-playbook unsafe_cleanup.yml
修改集群参数:可以通过修改tidb-ansible/conf/tidb.yml配置文件,然后执行ansible-playbook rolling_update.yml(–tags=tidb/tikv tags可选),也可以直接登录服务器,找到deploy_dir/conf/tidb.toml,直接编辑文件,然后pkill tidb-server来重启服务。
二、数据库操作和TIDB权限管理
2.1 数据库操作
Tidb日常操作跟MySQL非常相似。以下是一些简单的操作:
- 查看tidb版本信息:select tidb_version();
- 查看安装的tidb下MySQL的数据库版本信息:show databases;
- 查看指定用户权限:show grants for max;
2.2 权限操作
授予xxx用户对数据库mydb的读权限:GRANT SELECT ON mydb.* TO xxx@%;
为xxx用户授予所有数据库、全部权限:GRANT ALL PRIVILEGES ON *.* TO xxx@%;
收回权限使用revoke操作,与grant对应(Tidb下revoke操作只匹配精确权限,而grant可使用模糊授权)。
角色
角色是一系列权限的集合。用户可以创建角色、删除角色、将权限赋予角色;也可以将角色授予给其他用户,被授予的用户在启用角色后,可以得到角色所包含的权限。
- 创建角色:CREATE ROLE r_1 and r_2;
- 删除角色:DROP ROLE r_1 and r_2;
- 授予用户角色:grant r_1 to max@%;
三、日程运维中容易遇到的问题
3.1 GClifetime问题
执行一个长事务,还没读到想要的数据,就被清理了,应用就要跳出来了,可以根据应用修改gc时间长度。
3.2 Tidb内存溢出问题
Tidb可通过在配置文件中写oom-action=”log”来捕获内存溢出的SQL语句,超过内存阈值(tidb_mem_quota_query控制)的SQL语句会被捕获到。
3.3 收集统计信息,提升数据查询效率问题
修改参数可以提升scan效率。Tidb依然使用analyze来收集表的统计信息。
set @@tidb_build_stats_concurrency=20;
set @@tidb_distsql_scan_concurrency=100;
set @@tidb_index_serial_scan_concurrency=20;
以上就是我总结的Tidb日常运维操作,希望对大家有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5921.html
