启动集群
此操作会按顺序启动整个TiDB 集群所有组件(包括PD、TiDB、TiKV等组件和监控组件)。
ansible-playbookstart.yml (-tags=tidb/tikv/pd标记tags可选)
关闭集群
此操作会按顺序关闭整个TiDB 集群所有组件(包括PD、TiDB、TiKV等组件和监控组件)。
ansible-playbookstop.yml (-tags=tidb/tikv/pd标记tags可选)
停止单个tidb-server / tikv-server
ansible-playbookstop.yml --tags=tidb/tikv/pd -l IP
-l 后面接inventory.ini 配置的IP或别名
清除集群数据
此操作会关闭TiDB、Pump、TiKV、PD服务,并清空Pump、TiKV、PD数据目录。
ansible-playbookunsafe_cleanup_data.yml
销毁集群
此操作会关闭集群,并清空部署目录,若部署目录为挂载点,会报错,可忽略。
ansible-playbookunsafe_cleanup.yml
TiDB 兼容MySQL 协议,所有连接MySQL 的方式都适用于TiDB,使用如下MySQL登录方式也可登录入tidb数据库中.
mysql -uroot-h127.0.0.1 -P4000 –p
修改集群参数
当集群参数需要定制化时,可以通过修改tidb-ansible/conf/tidb.yml 配置文件,然后执行
ansible-playbookrolling_update.yml (--tags=tidb/tikvtags可选)
也可以直接登录服务器,找到deploy_dir/conf/tidb.toml,直接编辑文件,然后pkill tidb-server 来重启服务
2.1数据库操作
Tidb日常操作跟MySQL非常相似,如果没有用到大数据比如spark等,日常就如操作MySQL一般简单.如下简单操作,与MySQL的相关查询操作一致
查看tidb 版本信息
selecttidb_version();
查看安装的tidb下MySQL的数据库版本信息
查看数据库
show databases;
与正常MySQL数据库并没什么不同,只是系统mysql数据库下多了tidb的表
2.2 权限操作
授权操作
授予xxx 用户对数据库mydb的读权限:
GRANT SELECT ONmydb.* TO xxx@%;
为xxx 用户授予所有数据库,全部权限:
GRANT ALL PRIVILEGESON *.* TO xxx@%;
GRANT为一个不存在的用户授予权限时,默认并不会自动创建用户。该行为受SQL Mode 中的NO_AUTO_CREATE_USER 控制。如果从 SQL Mode 中去掉NO_AUTO_CREATE_USER,当GRANT 的目标用户不存在时,TiDB会自动创建用户。
查看当前sql_mode
修改sql_mode,进行授权后,则会创建用户
收回权限
收回权限使用revoke操作,与grant对应
(Tidb下revoke操作只匹配精确权限,而grant可使用模糊授权)
REVOKE ALLPRIVILEGES ON `mydb`.* FROM max@%;
查看权限
命令showgrants,查看当前用户权限
查看指定用户权限
Show grant for max;
角色
角色是一系列权限的集合。用户可以创建角色、删除角色、将权限赋予角色;也可以将角色授予给其他用户,被授予的用户在启用角色后,可以得到角色所包含的权限。
1.创建角色 创建角色 r_1 和 r_2: mysql> CREATE ROLE `r_1`@`%`, `r_2`@`%`; Query OK, 0 rows affected (0.04 sec) 角色会被保存在 mysql.user 表中,如果表中有同名角色或用户,角色会创建失败并报错。 创建角色的用户需要拥有 CREATE ROLE 或 CREATE USER 权限。
mysql> DROP ROLE `r_1`@`%`, `r_2`@`%`; Query OK, 0 rows affected (0.06 sec) 这个操作会清除角色在 mysql.user 表里面的记录项,并且清除在授权表里面的相关记录,解除和其相关的授权关系。 执行删除角色的用户需要拥有 DROP ROLE 或 DROP USER 权限。
mysql> grant r_1 to max@%; Query OK, 0 rows affected (0.05 sec)
mysql> show grants for max; +------------------------------------------+ | Grants for max@% | +------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO max@% | | GRANT r_1@% TO max@% | +------------------------------------------+ 可以看到当前max有角色r_1存在
mysql> show grants for max@% using r_1; +------------------------------------------+ | Grants for max@% | +------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO max@% | | GRANT r_1@% TO max@% | +------------------------------------------+ |
3.1 GC life time 问题
有时候执行一个长事务,还没读到想要的数据,就被清理了,应用就要跳出来了,可根据应用修改gc时间长度
update mysql.tidbset variable_value=30m where variable_name=tikv_gc_life_time;
3.2 tidb内存溢出问题
tidb可通过在配置文件中写oom-action= "log"来捕获内存溢出的SQL语句,超过内存阈值(tidb_mem_quota_query控制)的SQL语句会被捕获到
3.3收集统计信息,提升数据查询效率问题
set@@tidb_build_stats_concurrency=20;
set@@tidb_distsql_scan_concurrency=100;
set@@tidb_index_serial_scan_concurrency=20;
修改上面三个参数可以提升scan 效率。
tidb依然使用analyze来收集表的统计信息
analyze table xxxindex xxx;
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/130123.html
摘要:相当于分布式数据库的大脑,一方面负责收集和维护数据在各个节点的分布情况,另一方面承担调度器的角色,根据数据分布状况以及各个存储节点的负载来采取合适的调度策略,维持整个系统的平衡与稳定。原文链接雷神自动化运维平台 作者:瞿锴,同程艺龙资深 DBA 背景介绍 随着互联网的飞速发展,业务量可能在短短的时间内爆发式地增长,对应的数据量可能快速地从几百 GB 涨到几百个 TB,传统的单机数据库提...
摘要:作者介绍刘春辉,洪超,一业务场景是东南亚和台湾地区领先的电子商务平台,覆盖新加坡马来西亚菲律宾印度尼西亚泰国越南和台湾等七个市场。母公司为首家在纽约证券交易所上市的东南亚互联网企业。 作者介绍刘春辉,Shopee DBA洪超,Shopee DBA 一、业务场景 Shopee(https://shopee.com/)是东南亚和台湾地区领先的电子商务平台,覆盖新加坡、马来西亚、菲律宾、印...
阅读 1250·2023-01-11 13:20
阅读 1559·2023-01-11 13:20
阅读 1013·2023-01-11 13:20
阅读 1680·2023-01-11 13:20
阅读 3972·2023-01-11 13:20
阅读 2520·2023-01-11 13:20
阅读 1356·2023-01-11 13:20
阅读 3486·2023-01-11 13:20