TiDB 数据库快速上手指南

    TiDB 是一个分布式系统。最基础的 TiDB 测试集群通常由 2 个 TiDB 实例、3 个 TiKV 实例、3 个 PD 实例和可选的 TiFlash 实例构成。通过 TiUP Playground,可以快速搭建出上述的一套基础测试集群,步骤如下:

    1. 下载并安装 TiUP。

    2. 声明全局环境变量。

      注意:

      TiUP 安装完成后会提示对应 文件的绝对路径。在执行以下 source 命令前,需要根据 profile 文件的实际位置修改命令。

      1. source .bash_profile
    3. 在当前 session 执行以下命令启动集群。

      • 直接执行 tiup playground 命令会运行最新版本的 TiDB 集群,其中 TiDB、TiKV、PD 和 TiFlash 实例各 1 个:

        1. tiup playground
      • 也可以指定 TiDB 版本以及各组件实例个数,命令类似于:

        1. tiup playground v5.2.0 --db 2 --pd 3 --kv 3 --monitor

        上述命令会在本地下载并启动某个版本的集群(例如 v5.2.0),--monitor 表示同时部署监控组件。最新版本可以通过执行 tiup list tidb 来查看。运行结果将显示集群的访问方式:

        1. CLUSTER START SUCCESSFULLY, Enjoy it ^-^
        2. To connect TiDB: mysql --host 127.0.0.1 --port 4000 -u root
        3. To connect TiDB: mysql --host 127.0.0.1 --port 4001 -u root
        4. To view the dashboard: http://127.0.0.1:2379/dashboard
        5. To view the monitor: http://127.0.0.1:9090

        注意:

        • 支持 v5.2.0 及以上版本的 TiDB 在 Apple M1 芯片的机器上运行 tiup playground
        • 以这种方式执行的 playground,在结束部署测试后 TiUP 会清理掉原集群数据,重新执行该命令后会得到一个全新的集群。
        • 若希望持久化数据,可以执行 TiUP 的 --tag 参数:tiup --tag <your-tag> playground ...,详情参考 TiUP 参考手册
    4. 新开启一个 session 以访问 TiDB 数据库。

      • 使用 TiUP client 连接 TiDB:

        1. tiup client
      • 也可使用 MySQL 客户端连接 TiDB:

        1. mysql --host 127.0.0.1 --port 4000 -u root
    5. 通过 访问 TiDB 的 Prometheus 管理界面。

    6. 通过 http://127.0.0.1:2379/dashboard 访问 页面,默认用户名为 root,密码为空。

    7. (可选)将数据加载到 TiFlash 进行分析。

    8. 测试完成之后,可以通过执行以下步骤来清理集群:

      1. 通过按下 ctrl + c 键停掉进程。

      2. 执行以下命令:

        1. tiup clean --all

    TiDB 是一个分布式系统。最基础的 TiDB 测试集群通常由 2 个 TiDB 实例、3 个 TiKV 实例、3 个 PD 实例和可选的 TiFlash 实例构成。通过 TiUP Playground,可以快速搭建出上述的一套基础测试集群。

    1. 下载并安装 TiUP。

      1. curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
    2. 注意:

      TiUP 安装完成后会提示对应 profile 文件的绝对路径。在执行以下 source 命令前,需要根据 profile 文件的实际位置修改命令。

    3. 在当前 session 执行以下命令启动集群。

      • 直接运行 tiup playground 命令会运行最新版本的 TiDB 集群,其中 TiDB、TiKV、PD 和 TiFlash 实例各 1 个:

        1. tiup playground
      • 也可以指定 TiDB 版本以及各组件实例个数,命令类似于:

        1. tiup playground v5.2.0 --db 2 --pd 3 --kv 3 --monitor

        上述命令会在本地下载并启动某个版本的集群(例如 v5.2.0),--monitor 表示同时部署监控组件。最新版本可以通过执行 tiup list tidb 来查看。运行结果将显示集群的访问方式:

        1. CLUSTER START SUCCESSFULLY, Enjoy it ^-^
        2. To connect TiDB: mysql --host 127.0.0.1 --port 4000 -u root -p (no password) --comments
        3. To view the dashboard: http://127.0.0.1:2379/dashboard
        4. PD client endpoints: [127.0.0.1:2379]
        5. To view the Prometheus: http://127.0.0.1:9090
        6. To view the Grafana: http://127.0.0.1:3000

        注意:

        • 以这种方式执行的 playground,在结束部署测试后 TiUP 会清理掉原集群数据,重新执行该命令后会得到一个全新的集群。
        • 若希望持久化数据,可以执行 TiUP 的 --tag 参数:tiup --tag <your-tag> playground ...,详情参考 。
    4. 新开启一个 session 以访问 TiDB 数据库。

      • 使用 TiUP client 连接 TiDB:

      • 也可使用 MySQL 客户端连接 TiDB:

      • 通过 http://127.0.0.1:9090 访问 TiDB 的 Prometheus 管理界面。

      • 通过 访问 TiDB Dashboard 页面,默认用户名为 root,密码为空。

      • 通过 访问 TiDB 的 Grafana 界面,默认用户名和密码都为 admin。

      • (可选)将数据加载到 TiFlash 进行分析。

      • 测试完成之后,可以通过执行以下步骤来清理集群:

        1. 通过按下 ctrl + c 键停掉进程。

        2. 执行以下命令:

          1. tiup clean --all
      • 适用场景:希望用单台 Linux 服务器,体验 TiDB 最小的完整拓扑的集群,并模拟生产的部署步骤。
      • 耗时:10 分钟

      本节介绍如何参照 TiUP 最小拓扑的一个 YAML 文件部署 TiDB 集群。

      准备一台部署主机,确保其软件满足需求:

      • 推荐安装 CentOS 7.3 及以上版本
      • Linux 操作系统开放外网访问,用于下载 TiDB 及相关软件安装包

      最小规模的 TiDB 集群拓扑:

      注意:

      下表中拓扑实例的 IP 为示例 IP。在实际部署时,请替换为实际的 IP。

      部署主机软件和环境要求:

      • 部署需要使用部署主机的 root 用户及密码
      • 部署主机或者开放 TiDB 集群的节点间所需端口
      • 目前 TiUP 支持在 x86_64(AMD64 和 ARM)架构上部署 TiDB 集群
        • 在 AMD64 架构下,建议使用 CentOS 7.3 及以上版本 Linux 操作系统
        • 在 ARM 架构下,建议使用 CentOS 7.6 1810 版本 Linux 操作系统

      实施部署

      注意:

      1. 下载并安装 TiUP:

        1. curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
      2. 安装 TiUP 的 cluster 组件:

        1. tiup cluster
      3. 如果机器已经安装 TiUP cluster,需要更新软件版本:

      4. 由于模拟多机部署,需要通过 root 用户调大 sshd 服务的连接数限制:

        1. 修改 /etc/ssh/sshd_configMaxSessions 调至 20。
        2. 重启 sshd 服务:

          1. service sshd restart
      5. 创建并启动集群

        按下面的配置模板,编辑配置文件,命名为 topo.yaml,其中:

        • user: "tidb":表示通过 tidb 系统用户(部署会自动创建)来做集群的内部管理,默认使用 22 端口通过 ssh 登录目标机器
        • replication.enable-placement-rules:设置这个 PD 参数来确保 TiFlash 正常运行
        • host:设置为本部署主机的 IP

          配置模板如下:

          1. # # Global variables are applied to all deployments and used as the default value of
          2. # # the deployments if a specific deployment value is missing.
          3. global:
          4. user: "tidb"
          5. ssh_port: 22
          6. deploy_dir: "/tidb-deploy"
          7. data_dir: "/tidb-data"
          8. # # Monitored variables are applied to all the machines.
          9. monitored:
          10. node_exporter_port: 9100
          11. blackbox_exporter_port: 9115
          12. server_configs:
          13. tidb:
          14. log.slow-threshold: 300
          15. tikv:
          16. readpool.storage.use-unified-pool: false
          17. readpool.coprocessor.use-unified-pool: true
          18. pd:
          19. replication.enable-placement-rules: true
          20. replication.location-labels: ["host"]
          21. tiflash:
          22. logger.level: "info"
          23. pd_servers:
          24. tidb_servers:
          25. - host: 10.0.1.1
          26. tikv_servers:
          27. - host: 10.0.1.1
          28. port: 20160
          29. status_port: 20180
          30. config:
          31. server.labels: { host: "logic-host-1" }
          32. - host: 10.0.1.1
          33. port: 20161
          34. status_port: 20181
          35. config:
          36. server.labels: { host: "logic-host-2" }
          37. - host: 10.0.1.1
          38. port: 20162
          39. status_port: 20182
          40. config:
          41. server.labels: { host: "logic-host-3" }
          42. tiflash_servers:
          43. - host: 10.0.1.1
          44. monitoring_servers:
          45. - host: 10.0.1.1
          46. grafana_servers:
          47. - host: 10.0.1.1
      6. 执行集群部署命令:

        1. tiup cluster deploy <cluster-name> <tidb-version> ./topo.yaml --user root -p
        • 参数 <cluster-name> 表示设置集群名称
        • 参数 <tidb-version> 表示设置集群版本,可以通过 tiup list tidb 命令来查看当前支持部署的 TiDB 版本

          按照引导,输入”y”及 root 密码,来完成部署:

          1. Do you want to continue? [y/N]: y
          2. Input SSH password:
      7. 启动集群:

        1. tiup cluster start <cluster-name>
      8. 访问集群:

        • 安装 MySQL 客户端。如果已安装 MySQL 客户端则可跳过这一步骤。

          1. yum -y install mysql
        • 访问 TiDB 数据库,密码为空:

          1. mysql -h 10.0.1.1 -P 4000 -u root
        • 访问 TiDB 的 Grafana 监控:

          通过 访问集群 Grafana 监控页面,默认用户名和密码均为 admin。

        • 访问 TiDB 的 Dashboard:

          通过 http://{pd-ip}:2379/dashboard 访问集群 监控页面,默认用户名为 root,密码为空。

        • 执行以下命令确认当前已经部署的集群列表:

          1. tiup cluster list
        • 执行以下命令查看集群的拓扑结构和状态: