当前位置: 首页 > 后端技术 > Java

【必备书签】TiDB集群部署教程别找了,保姆级教程来帮你!!-博雪谷狂野架构师

时间:2023-04-02 09:06:45 Java

TiDBBasicsUsingTiDBdashboardUsingTiDBDashboard是TiDB从4.0版本开始提供的图形界面,可以用来监控和诊断TiDB集群。TiDBDashboard内置在TiDB的PD组件中,不需要单独部署。集群概览查看集群整体QPS值、执行时间、消耗资源最多的SQL语句类型。该页面展示了整个集群的概况,包括以下信息:整个集群的QPS整个集群的查询延迟最近一段时间累计时间最多的几条SQL语句运行时间超过a的慢查询最近一段时间内某个阈值每个实例的节点数和状态监控告警信息QPS该区域显示整个集群在最近一个小时内每秒查询成功和失败的次数。注意:该功能仅在部署了Prometheus监控组件的集群上可用。如果未部署监控组件,则显示为失败。Latency该区域显示了最近一小时内整个集群99.9%、99%、90%的查询的延迟情况:注意:此功能仅在部署了Prometheus监控组件的集群上可用,在没有监控组件的情况下会显示为失败部署。TopSQL语句该区域展示了最近一段时间内整个集群中累计耗时最长的10种SQL语句。查询参数不同但结构相同的SQL语句将被归为同一类型的SQL语句并显示在同一行中。注意:该功能仅在开启SQL语句分析功能的集群上可用。RecentSlowQueries该区域默认显示最近30分钟内整个集群最近10条慢查询。默认情况下,运行时间超过300毫秒的SQL查询被计为慢查询并显示在此表中。集群信息该页面允许用户查看整个集群中TiDB、TiKV、PD、TiFlash组件的运行状态以及所在主机的运行状态。实例列表实例列表列出了集群中所有TiDB、TiKV、PD和TiFlash组件实例的通用信息。表格列说明表格包含以下列:Address:实例地址Status:实例运行状态Startuptime:实例启动时间Version:实例版本号Deploymentpath:实例二进制文件所在的目录路径Githashvalue:对应的GithashinstancebinaryHashInstanceStatus说明实例运行状态如下:Online(Up):实例运行正常。离线(Down)或无法访问(Unreachable):实例未启动或对应主机出现网络问题。离线缩容(Tombstone):实例上的数据已经完全迁出,缩容完成。该状态仅存在于TiKV或TiFlash实例中。离线:实例上的数据正在迁出和缩容。该状态仅存在于TiKV或TiFlash实例中。未知:未知的实例运行状况。主机列表主机列表列出了集群中所有TiDB、TiKV、PD、TiFlash组件实例对应的主机运行状态。表格列说明表格包含以下列:Address:宿主机的IP地址CPU:宿主机CPU的逻辑核心数CPUusage:宿主机当前1秒在用户态和内核态的CPU使用率Physicalmemory:宿主机总物理内存大小Memoryusage:宿主机当前内存使用率Deploymentdisk:宿主机上运行实例的磁盘的文件系统和磁盘挂载路径Diskusage:实例所在磁盘的空间使用率实例运行在主机上的SQL语句分析可以在该页面查看集群上执行的所有SQL语句常用于分析总耗时或执行时间较长的单条耗时SQL语句。执行列表页面在该页面中,结构一致(即使查询参数不一致)的SQL查询将被分组到同一条SQL语句中,如SELECT*FROMemployeeWHEREidIN(1,2,3)和select*fromEMPLOYEEwhereIDin(4,5)都属于同一条SQL语句select*fromemployeewhereidin(...)。执行详情页面点击列表中的任意一行,进入该SQL语句的详情页面,可以查看更详细的信息,该信息包括三部分:SQL语句概览:包括SQL模板、SQL模板ID、当前查看的时间范围、执行次数计划和执行的数据库(下图中区域1)执行计划列表:如果SQL语句有多个执行计划,会显示这个列表,可以选择不同的执行计划,以及选择执行的详细信息计划将显示在列表下方;如果只有一个执行计划,则不会显示列表(下图区域2)执行计划详情:显示选中的执行计划的详细信息,详见下一节(下图区域3).查看集群中所有的慢查询。默认情况下,执行时间超过300ms的SQL查询被视为慢查询记录在慢查询日志中,记录的慢查询可以通过该函数进行查询。您可以调整tidb_slow_log_thresholdSESSION变量或TiDBslow-threshold参数来调整慢查询阈值。如果关闭慢查询日志,则该功能不可用。慢查询日志默认开启,可以通过修改TiDB配置enable-slow-log开启或关闭。慢查询列表页面可以根据时间范围、慢查询语句关联的数据库、SQL关键字、SQL类型、显示的慢查询语句条数等来过滤慢查询语句。如下图,默认显示最近30分钟内的100个慢查询。查看执行详情点击列表中的任意一行可以显示慢查询的详细执行信息,包括:SQL:慢查询SQL文本(执行计划:慢查询执行计划其他分类SQL执行信息点击展开(Expand)链接展开对应项的完整内容,点击复制(Copy)链接,将完整内容复制到剪贴板。一些集群相关的负载监控信息汇总成诊断报告,诊断报告是网页形式,通过浏览器保存后可以离线浏览和流传。生成诊断报告,如果要诊断一个时间范围内的集群,查看集群的负载情况,可以通过以下步骤生成一段时间的诊断报告:设置间隔的开始时间,设置间隔的长度,例如10分钟。单击开始。建议在1分钟到60分钟的时间范围内生成报告,目前不建议生成超过1小时范围的报告。点击开始(start)后,你会看到如下界面。生成进度(progress)是生成报表的进度条。生成报告后,单击查看完整报告。TIDB集群部署环境要求操作系统推荐配置TiDB作为开源分布式NewSQL数据库,可以在Intel架构服务器环境、ARM架构服务器环境和主流虚拟化环境中很好地部署和运行,支持大多数主流硬件网络。TiDB作为一个高性能的数据库系统,支持主流的Linux操作系统环境。Linux操作系统平台版本RedHatEnterpriseLinux7.3及以上CentOS7.3及以上OracleEnterpriseLinux7.3及以上UbuntuLTS16.04及以上服务器建议配置TiDB支持部署运行在64位通用基于Intelx86-64架构的硬件服务器平台或ARM架构的硬件服务器平台。对于生产环境的开发、测试和服务器硬件配置(不包括操作系统OS本身),有如下要求和建议:开发测试环境组件CPU内存本地存储网络实例数(最低要求)TiDB8core+16GB+无特殊要求千兆网卡1张(可与PD同机使用)PD4核+8GB+SAS、200GB+千兆网卡1张(可与TiDB同机使用)TiKV8核+32GB+SSD,200GB+千兆网卡3TiFlash32核+64GB+SSD,200GB+千兆网卡1TiCDC8核+16GB+SAS,200GB+千兆网卡1生产环境组件CPU内存硬盘类型网络实例数(最低要求)TiDB16核+32GB+SAS10GbE网卡(2个最佳)2PD4核心+8GB+SSD10G网卡(2个最佳)3TiKV16核心+32GB+SSD10G网卡(2个最佳)3TiFlash48核心+128GB+1个或多个SSD10千兆网卡(2块最好)2TiCDC16核+64GB+SSD10千兆网卡(2块最好)2监控8核+16GB+SAS千兆网卡1环境准备准备部署主机,确保其软件满足要求:推荐安装CentOS7.3及以上版本的Linux操作系统开放访问外网下载TiDB及相关软件安装包TiDB集群拓扑实例最小数量IP配置TiKV3192.168.64.146避端口和目录冲突TiDB1192.168.64.146默认端口全局目录配置PD1192.168.64.146默认端口全局目录配置TiFlash1192.168.64.146默认端口全局目录配置Monitoring&Grafana1192.168.64.146默认端口全局目录配置安装TiUP什么是TiUP启动从TiDB4.0开始,TiUP是一个新的工具,承担了包管理器的角色,管理着TiDB生态中的很多组件,比如TiDB,PD,TiKV等。当用户想要运行TiDB生态中的任何组件时,他们只需要执行一行TiUP命令,相比之前管理难度大大降低。安装TiUP组件,使用普通用户登录中控机即可。以tidb用户为例,后续的TiUP安装和集群管理操作都是通过该用户完成的。TiUP的安装过程非常简单。无论是Darwin还是Linux操作系统,执行一条命令即可完成安装:COPYcurl--proto'=https'--tlsv1.2-sSfhttps://tiup-mirrors.pingcap.com/install.sh|sh这个命令在$HOME/.tiup文件夹下安装TiUP,然后安装组件,组件运行产生的数据也会放在这个文件夹下。同时它会自动将$HOME/.tiup/bin添加到ShellProfile文件的PATH环境变量中,这样就可以直接使用TiUP了。配置TiUP环境,重新声明全局环境变量COPYsource.bash_profile,查看TiUP工具是否安装。COPYwhichtiup安装集群组件。COPYtiup集群升级集群组件。如果机器上已经安装了TiUP集群,则需要更新软件版本。COPYtiupupdate--self&&tiupupdatecluster预期输出“更新成功!”字。编辑部署文件,根据不同的集群拓扑,编辑TiUP需要的集群初始化配置文件。常见部署场景最小的拓扑架构最基本的集群拓扑,包括tidb-server、tikv-server、pd-server,适用于OLTP业务。添加TiFlash拓扑架构,包含最小拓扑,同时部署TiFlash。TiFlash是一个列式存储引擎,逐渐成为集群拓扑的标配。适用于Real-TimeHTAP业务。添加TiCDC拓扑结构以包含最小拓扑,同时部署TiCDC。TiCDC是从4.??0版本开始支持的TiDB增量数据同步工具,支持多下游(TiDB/MySQL/MQ)。与TiDBBinlog相比,TiCDC具有更低延迟和天然高可用的优势。部署完成后,需要启动TiCDC,通过cdccli创建同步任务。添加TiDBBinlog拓扑结构,包含最小拓扑,同时部署TiDBBinlog。TiDBBinlog是一个应用广泛的增量同步组件,可以提供准实时的备份和同步功能。在最小拓扑基础上添加TiSpark拓扑架构,同时部署TiSpark组件。TiSpark是PingCAP为解决用户复杂的OLAP需求而推出的产品。TiUP集群组件对TiSpark的支持目前是一个实验性的特性。混合部署拓扑架构适用于单机、多实例混合部署,包括单机多实例,需要额外配置目录、端口、资源配比、标签等。单机极简部署部署主机软件及环境要求:部署需要使用部署主机的root用户和密码。部署主机关闭防火墙或开放TiDB集群节点间所需端口。Single-machineminimalisttopologyinstanceIPopenportgrafana192.168.64.1523000pd192.168.64.1522379/2380prometheus192.168.64.1529090tidb192.168.64.1524000/10080tiflash192.168.64.1529000/8123/3930/20170/20292/8234tikv192.168.64.15220160/20180tikv192.168.64.15220161/20181tikv192.168.64.15220162/20182编辑配置文件按下面的配置模板,编辑配置文件,命名为topo.yamluser:"tidb":表示集群内部通过tidb进行管理系统用户(部署将自动创建)。默认使用22端口通过sshreplication登录目标机。enable-placement-rules:设置这个PD参数保证TiFlash主机正常运行:设置为部署主机的IPCOPY##全局变量应用于所有部署并用作默认值##如果缺少特定部署值,则部署。global:user:"tidb"ssh_port:22deploy_dir:"/tidb-deploy"data_dir:"/tidb-data"##监控变量应用于所有机器。monitored:node_exporter_port:9100blackbox_exporter_port:9115server_configs:tidb:log.慢阈值:300tikv:readpool.storage.use-unified-pool:falsereadpool.coprocessor.use-unified-pool:truepd:replication.enable-placement-rules:truereplication.location-labels:["host"]tiflash:logger.level:“信息”pd_servers:-主机:192.168.64.146tidb_servers:-主机:192.168.64.146tikv_servers:-主机:192.168.64.146端口:20160status_port:20180配置:server.labels:{主机:“logic-host-1”}-主机:192.168.64.146端口:20161status_port:20181配置:server.labels:{主机:“logic-host-2”}-主机:192.168.64.146端口:20162status_port:20182配置:server.labels:{主机:"logic-host-3"}tiflash_servers:-host:192.168.64.146monitoring_servers:-host:192.168.64.146grafana_servers:-host:192.168.64.146执行集群部署命令格式COPYtiupclusterdeploy./topo.yaml--userroot-p参数说明参数表示设置集群名称参数表示设置配置集群版本,可以使用tiuplisttidb命令查看当前支持部署的TiDB版本。参数:--userroot以root用户登录目标主机完成集群部署。部署也可以与其他拥有ssh和sudo权限的用户一起完成。查看最新的TiDB版本,可以运行tiuplisttidb查看TiUP支持的版本。执行COPYtiuplisttidb后,发现最新可用的TiDB版本为v4.0.11。执行部署命令COPYtiupclusterdeploytidb-cluster4.0.11./topo.yaml--输入用户root-p输入y继续,然后输入密码进入安装界面,等待安装。如果出现deployedsuccessfully则表示部署成功,集群名称为tidb-cluster。启动集群。COPYtiup集群启动tidb-cluster查看节点状态。COPYtiup集群展示tidb-cluster的所有节点都处于Up状态,表示准备启动。测试TiDB集群。Mysql连接到集群。TiDB默认连接端口为4000,密码为空。可以使用Mysql客户端和第三方工具进行连接。安装MySql客户端COPYyum-y安装mysqlMySql客户端连接访问TiDB数据库,密码为空COPYmysql-h192.168.64.146-P4000-uroot第三方客户端访问Mysql使用SQLyog访问TiDB创建TiDB连接即可操作数据库通过http://{grafana-ip}:3000访问Grafana监控访问集群Grafana监控页面,默认用户名和密码都是admin。访问Dashboard通过http://{pd-ip}:2379/dashboard访问集群TiDBDashboard监控页面。默认用户名为root,密码为空。查看集群列表COPYtiup集群列表查看集群拓扑COPYtiup集群展示tidb-clusterTiDB当前集群部署拓扑实例IP端口存储路径部署路径tidb-data/pd-2379/tidb-deploy/pd-2379prometheus192.168.64.1529090/tidb-data/prometheus-9090/tidb-deploy/prometheus-9090.168.64.1529000/8123/3930/20170/20292/8234/tidb-data/tiflash-9000/tidb-deploy/tiflash-9000tikv192.168.64.152201860/20/20tidb-data/tikv-20160/tidb-deploy/tikv-20160tikv192.168.64.15220161/20181/tidb-data/tikv-20161/tidb-deploy/tikv-20161tikv192.168.64.15220162/20182/tik-data/tik20162/tidb-deploy/tikv-20162需要扩容ScaleupTiKV节点实例IP端口存储路径部署路径tikv192.168.64.15220163/20183/tidb-data/tikv-20163/tidb-deploy/tikv-20163写一个扩容脚本添加scale-out.yaml文件添加扩容拓扑配置COPYviscale-out.yamlCOPYtikv_servers:-host:192.168.64.152ssh_port:22port:20163status_port:20183deploy_dir:/tidb-deploy/tikv-20163data_dir:/tidb-data/tikv-20163config:server.labels:host:logic-host-4执行扩容命令命令格式COPYtiupclusterscale-outscale-out.yaml-pcluster-name:TiDBclusterNamep:使用密码登录当前机器,执行命令COPYtiupclusterscale-outtidb-clusterscale-out.yaml-p输入命令后,确认输入机器密码,成功说明节点扩容成功。验证扩容信息,查看节点信息COPYtiupclusterdisplaytidb-cluster我们看到Tikv增加了一个节点。也可以通过dashboard查看展开的节点信息查看节点信息收缩TiKV节点查看节点信息COPYtiupclusterdisplaytidb-cluster当前TiKV有4个节点执行收缩操作Shrink命令COPYtiupclusterscale-in--node192.168.64.152:20163参数说明cluster-name:集群名称node:待删除的节点地址执行命令COPYtiupclusterscale-intidb-cluster--node192.168.64.152:20163出现确认操作后输入y确认execution执行收缩操作。验证收缩信息,查看节点信息。COPYtiup集群显示tidb-cluster我们看到需要缩容的节点状态为Tombstone,说明已经下线,需要一定时间才能下线。下线节点状态变为Tombstone,表示下线节点下线成功。通过dashboard查看,也可以看到缩容节点已经不存在了,说明缩容节点成功。BY-NC-SA4.0)本文永久链接为:http://www.baiyp.ren/TIDB%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2.html更新于:2021年5月27日每日集群部署TIDB本文由传智教育博学谷架构师教研团队发布。动机。转载请注明出处!

最新推荐
猜你喜欢