黄东旭解析 TiDB 的核心优势
755
2024-03-06
适用场景:希望用单台 Linux 服务器,体验 TiDB 最小的完整拓扑的集群,并模拟生产环境下的部署步骤。
准备一台部署主机,确保其软件满足需求:
Linux 类机器:这里采用的是*** Kylin V10 SP1操作系统,HUAWEI,Kunpeng 920CPU(4Cores)
Linux 操作系统开放外网访问,用于下载 TiDB 及相关软件安装包
1.1 最小规模的 TiDB 集群拓扑规划实例个数IP配置PD1192.168.0.131默认端口TiKV3192.168.0.131 192.168.0.131 192.168.0.131避免端口和目录冲突TiDB1192.168.0.131默认端口TiFlash1192.168.0.131默认端口 (这里不配置 TiFlash实例)Monitor1192.168.0.131Grafana:3003 (默认3000)、 Prometheus:9099(默认9090),默认端口Ambari已占用拓扑文件配置模板:(topo.yaml)
global: user: "tidb" ssh_port: 22 ssh_type: monitored: node_exporter_port: 9100 blackbox_exporter_port: 9115 deploy_dir: /data/tidb/tidb-deploy/monitor-9100 data_dir: /data/tidb/tidb-data/monitor-9100 orage.use-unified-pool: false readpool.coprocessor.use-unified-pool: true pd: replication.enable-placement-rules: true replication.location-labels: ["host"] deploy_dir: /data/tidb/tidb-deploy/pd-2379 data_dir: /data/tidb/tidb-data/pd-2379 log_dir: /data/tidb/tidb-deploy/pd-2379/log arch: arm64 os: linux tidb_servers: - host: 192.168.0.131 ssh_port: 22 port: 4000 status_port: 10080 deploy_dir: /data/tidb/tidb-deploy/tidb-4000 _port: 22 port: 20160 status_port: 20180 deploy_dir: /data/tidb/tidb-deploy/tikv-20160 data_dir: /data/tidb/tidb-data/tikv-20160 log_dir: /data/tidb/tidb-deploy/tikv-20160/log config: server.labels: host: logic-host-1 arch: arm64 os: linux - host: 192.168.0.131 ssh_port: 22 port: 20161 status_port: 20181 deploy_dir: /data/tidb/tidb-deploy/tikv-20161 data_dir: /data/tidb/tidb-data/tikv-20161 log_dir: /data/tidb/tidb-deploy/tikv-20161/log config: server.labels: host: logic-host-2 arch: arm64 os: linux - host: 192.168.0.131 ssh_port: 22 port: 20162 status_port: 20182 deploy_dir: /data/tidb/tidb-deploy/tikv-20162 data_dir: /data/tidb/tidb-data/tikv-20162 log_dir: /data/tinitoring_servers: - host: 192.168.0.131 ssh_port: 22 port: 9099 deploy_dir: /data/tidb/tidb-deploy/prometheus-9099 data_dir: /data/tidb/tidb-data/prometvers: - host: 192.168.0.131 ssh_port: 22 port: 3003 deploy_dir: /data/tidb/tidb-deploy/grafana-3003 arch: arm64 os: linux username: admin password: admin anonymous_enable: false root_url: "" domain: ""1.2 部署主机软件和环境要求配置根据 TiDB 软硬件环境配置建议优化系统配置,可直接执行脚本进行初始化硬件环境:
$ cat initTiD sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service sudo systemctl status firewalld.service echo "目标部署机器的防火墙已关闭" } csop() { echo "配置系统优化参数..." echo "查看当前操作系统的 tuned 策略" tuned-adm list echo "创建新的 tuned 策略" mkdir /etc/tuned/balan/balanced-tidb-optimal/tuned.conf echo "[cpu]" >> /etc/tuned/balanced-tidb-optimal/tuned.conf echo "governor=performance" >> /etc/tuned/balanced-tidb-optimal/tuned.conf echo "[vm]" >> /etc/tuned/balanced-tidb-optimal/tuned.conf echo "transparent_hugepages=never" >> /etc/tuned/balanced-tidb-optimal/tuned.conf echo "[disk]" >> /etc/tuned/balanced-tidb-optimal/tuned.conf echo "elevator=noop" >> /etc/tuned/balanced-tidb-optimal/tuned.conf echo "新的 tuned 策略创建完成. 查看请执行 cat /etc/tuned/balanced-tidb-optimal/tuned.conf" echo "应用新的 tuned 策略" tuned-adm pr echo "fs.file-max = 1000000">> /etc/sysctl.conf echo "net.core.somaxconn = 32768">> /etc/sysctl.conf echo "net.ipv4.tcp_tw_recycle = 0">> /etc/sysctl.conf echo "net.ipv4.tcp_syncookies = 0">> /etc/sysctl.conf echo "vm.overcommit_memory = 1">> /etc/sysctl.conf echo "执行 sysctl -p 命令在不重启的情况下使配置生效" sysctl -p echo "修改 sysctl 参数完成..." echo "tidb hard nofile 1000000" >>/etc/security/limits.conf echo "tidb soft stack 32768" >>/etc/security/limits.conf echo "tidb hard stack 32768" >>/etc/security/limitd tidb sudo sh -c echo "tidb ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers echo "password" sleep 6 sudo passwd tidb }下载并安装 (在线):
curl --proto =https --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh声明全局环境变量:
source /home/tidb/.bash_profile安装 TiUP 的 cluster 组件:
tiup cluster tiup update --self && tiup update cluster注:由于模拟多机部署,需要通过 root 用户调大 sshd 服务的连接数限制:
修改 /etc/ssh/sshd_config 将 MaxSessions 调至 20。
cat /etc/ssh/sshd_config | grep MaxSessions sudo vim /etc/ssh/sshd_config # 查找 MaxSessions 并修改数量 ,默认是10 ,我个人修改为 30 了 :/MaxSessions # vim ESC模式下查找关键词2.2 创建并启动集群提前规划:
集群名称:tidbsingle
TiDB 版本:v5.0.0 ,可以通过 tiup list tidb 命令来查看当前支持部署的 TiDB 版本
TiDB 部署空间:该规模集群初始化时会占用21.1G左右磁盘空间,需要有基础保障。
按照拓扑文件配置模板创建topo.yaml配置文件:
su tidb touch topo.yaml执行部署前检查 (check)集群存在的潜在风险:
tiup cluster check ./topo.yaml --user tidb执行部署前自动修复 (check --apply)集群存在的潜在风险:
tiup cluster check ./topo.yaml --apply --user tidb上边两个步骤出现的一些潜在风险,在测试集群中可以不处理!
值得一提的是:上面的检查会出现不支持麒麟系统的提示,可以不用管,官方人员说可以支持麒麟和鲲鹏系统,实验也是支持的。
执行集群部署命令:
tiup cluster deploy tidbsingle v5.0.0 ./topo.yaml --user tidb -p按照引导来完成部署。
这种模式的集群部署第一次需要执行以下方式进行初始化启动:
tiup cluster start tidbsingle --init # 服务启动超时情况出现的话,先按照提示查看日志文件,根据 welcome 和 error 关键词定位异常;如果是单纯的超时可以多试几次第一次初始化启动会提示数据库root用户的初始密码;之后每次集群启动就不需要指定 --init。
# 集群启动 tiup cluster start tidbsingle2.3 访问集群MySQL 客户端(黑屏模式)连接,因为TiDB兼容MySQL,这种模式当下流行且方便:
mysql -h 192.168.0.131 -P 4000 -u root -p Enter password: 这里输入第一次初始化启动生成的密码!这里引入 数据库root用户的修改:
# 使用 mysql 库 use mysql; # select User,Host,authentication_string from mysql.user; # 修改密码为xxxxxxxxxx alter user root@% identified by password; # 刷新 flush privileges; # 退出连接 exit数据库连接应用连接,按照MySQL模式进行连接配置:
因为这里采用的是云服务器,所以IP不一样是正常情况!
访问 TiDB 的 Grafana 监控:
通过 http://{ip}:3003/login访问集群 Grafana 监控页面,默认用户名和密码在拓扑文件中设置均为 admin(默认)。
访问 TiDB 的 Dashboard:
通过http://{IP}:2379/dashboard/#/signin访问集群 TiDB Dashboard 监控页面,默认用户名为 root,密码为数据库密码。
2.4 管理集群执行以下命令确认当前已经部署的集群列表:
tiup cluster list执行以下命令查看集群的拓扑结构和状态:
tiup cluster display tidbsingle执行以下命令停止集群:
tiup cluster stop tidbsingle执行以下命令销毁集群(数据全丢,注意执行条件):
tiup cluster destroy tidbsingle版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。