TiDB 基礎使用

TiDB dashboard使用
TiDB Dashboard 是 TiDB 自 4.0 版本起提供的圖形化界面,可用于監控及診斷 TiDB 集群,TiDB Dashboard 內置于 TiDB 的 PD 組件中,無需獨立部署,

集群概況
查看集群整體 QPS 數值、執行耗時、消耗資源最多的幾類 SQL 陳述句等概況資訊,
該頁面顯示了整個集群的概況,包含以下資訊:
- 整個集群的 QPS
- 整個集群的查詢延遲
- 最近一段時間內累計耗時最多的若干 SQL 陳述句
- 最近一段時間內運行時間超過一定閾值的慢查詢
- 各個實體的節點數和狀態
- 監控及告警資訊
QPS
該區域顯示最近一小時整個集群的每秒成功和失敗查詢數量

注意:該功能僅在部署了 Prometheus 監控組件的集群上可用,未部署監控組件的情況下會顯示為失敗,
延遲
該區域顯示最近一小時整個集群中 99.9%、99% 和 90% 查詢的延遲:

注意:該功能僅在部署了 Prometheus 監控組件的集群上可用,未部署監控組件的情況下會顯示為失敗,
Top SQL 陳述句
該區域顯示最近一段時間內整個群集中累計耗時最長的 10 類 SQL 陳述句,查詢引數不一樣但結構一樣的 SQL 會歸為同一類 SQL 陳述句,在同一行中顯示

注意:該功能僅在開啟了 SQL 陳述句分析功能的集群上可用,
最近的慢查詢
該區域默認顯示最近 30 分鐘內整個集群中最新的 10 條慢查詢

默認情況下運行時間超過 300ms 的SQL 查詢即會被計為慢查詢并顯示在該表格中,
集群資訊
該頁面上允許用戶查看整個集群中 TiDB、TiKV、PD、TiFlash 組件的運行狀態及其所在主機的運行狀態,
實體串列
實體串列列出了該集群中 TiDB、TiKV、PD 和 TiFlash 組件所有實體的概況資訊,

表格列解釋
表格包含以下列:
- 地址:實體地址
- 狀態:實體的運行狀態
- 啟動時間:實體的啟動時間
- 版本:實體版本號
- 部署路徑:實體二進制檔案所在目錄路徑
- Git 哈希值:實體二進制對應的 Git 哈希值
實體狀態解釋
實體的運行狀態有:
- 在線 (Up):實體正常運行,
- 離線 (Down) 或無法訪問 (Unreachable):實體未啟動或對應主機存在網路問題,
- 已縮容下線 (Tombstone):實體上的資料已被完整遷出并縮容完畢,僅 TiKV 或 TiFlash 實體存在該狀態,
- 下線中 (Offline):實體上的資料正在被遷出并縮容,僅 TiKV 或 TiFlash 實體存在該狀態,
- 未知 (Unknown):未知的實體運行狀態,
主機串列
主機串列列出了該集群中 TiDB、TiKV、PD 和 TiFlash 組件所有實體對應主機的運行情況,

表格列解釋
表格包含以下列:
- 地址:主機 IP 地址
- CPU:主機 CPU 邏輯核心數
- CPU 使用率:主機當前 1 秒的用戶態和內核態 CPU 使用率
- 物理記憶體:主機總計的物理記憶體大小
- 記憶體使用率:主機當前記憶體使用率
- 部署磁盤:主機上運行實體所在磁盤的檔案系統和磁盤掛載路徑
- 磁盤使用率:主機上運行實體所在磁盤的空間使用率
SQL陳述句分析
該頁面可以查看所有 SQL 陳述句在集群上執行情況,常用于分析總耗時或單次耗時執行耗時較長的 SQL 陳述句,
執行串列頁
在該頁面中,結構一致的 SQL 查詢(即使查詢引數不一致)都會被歸為同一個 SQL 陳述句,例如 SELECT * FROM employee WHERE id IN (1, 2, 3) 和 select * from EMPLOYEE where ID in (4, 5) 都屬于同一 SQL 陳述句 select * from employee where id in (...),

執行詳情頁面
在串列中點擊任意一行可以進入該 SQL 陳述句的詳情頁查看更詳細的資訊,這此資訊包括三大部分:
- SQL 陳述句概況:包括 SQL 模板,SQL 模板 ID,當前查看的時間范圍,執行計劃個數以及執行所在的資料庫(下圖區域 1)
- 執行計劃串列:如果該 SQL 陳述句有多個執行計劃,則顯示該串列,可以選擇不同的執行計劃,在串列下方會顯示選中的執行計劃詳情;如果只有一個執行計劃,則該串列不顯示(下圖區域 2)
- 執行計劃詳情:顯示選中的執行計劃的詳細資訊,具體見下一小節(下圖區域 3)

慢查詢
該頁面上能檢索和查看集群中所有慢查詢,
默認情況下,執行時間超過 300ms 的 SQL 查詢就會被視為慢查詢,被記錄到慢查詢日志中,并可通過本功能對記錄到的慢查詢進行查詢,可調整 tidb_slow_log_threshold SESSION 變數或 TiDB slow-threshold 引數調整慢查詢閾值,
若關閉了慢查詢日志,則本功能不可用,慢查詢日志默認開啟,可通過修改 TiDB 配置 enable-slow-log 開啟或禁用,
慢查詢串列頁
可按時間范圍、慢查詢陳述句關聯的資料庫、SQL 關鍵字、SQL 型別、顯示的慢查詢陳述句數量等條件過濾,篩選慢查詢句,如下所示,默認顯示 30 分鐘內最近 100 條慢查詢,

查看執行詳情
在串列中點擊任意一行可以顯示該慢查詢的詳細執行資訊,包含:
- SQL:慢查詢 SQL 文本(
- 執行計劃:慢查詢的執行計劃
- 其他分類好的 SQL 執行資訊

點擊展開 (Expand) 鏈接可以展開相應項的完整內容,點擊復制 (Copy) 鏈接可以復制完整內容到剪貼板,
集群診斷頁面
集群診斷是在指定的時間范圍內,對集群可能存在的問題進行診斷,并將診斷結果和一些集群相關的負載監控資訊匯總成一個診斷報告,診斷報告是網頁形式,通過瀏覽器保存后可離線瀏覽和傳閱,
生成診斷報告
如果想對一個時間范圍內的集群進行診斷,查看集群的負載等情況,可以使用以下步驟來生成一段時間范圍的診斷報告:
- 設定區間的開始時間
- 設定區間長度,例如 10 min ,
- 點擊開始,
建議生成報告的時間范圍在 1 min ~ 60 min 內,目前不建議生成超過 1 小時范圍的報告,

點擊開始 (start) 后,會看到以下界面,生成進度 (progress) 是生成報告的進度條,生成報告完成后,點擊查看報告 (View Full Report) 即可,

TIDB集群部署
環境要求
作業系統建議配置
TiDB 作為一款開源分布式 NewSQL 資料庫,可以很好的部署和運行在 Intel 架構服務器環境、ARM 架構的服務器環境及主流虛擬化環境,并支持絕大多數的主流硬體網路,作為一款高性能資料庫系統,TiDB 支持主流的 Linux 作業系統環境,
| Linux 作業系統平臺 | 版本 |
|---|---|
| Red Hat Enterprise Linux | 7.3 及以上 |
| CentOS | 7.3 及以上 |
| Oracle Enterprise Linux | 7.3 及以上 |
| Ubuntu LTS | 16.04 及以上 |
服務器建議配置
TiDB 支持部署和運行在 Intel x86-64 架構的 64 位通用硬體服務器平臺或者 ARM 架構的硬體服務器平臺,對于開發,測驗,及生產環境的服務器硬體配置(不包含作業系統 OS 本身的占用)有以下要求和建議:
開發及測驗環境
| 組件 | CPU | 記憶體 | 本地存盤 | 網路 | 實體數量(最低要求) |
|---|---|---|---|---|---|
| TiDB | 8 核+ | 16 GB+ | 無特殊要求 | 千兆網卡 | 1(可與 PD 同機器) |
| PD | 4 核+ | 8 GB+ | SAS, 200 GB+ | 千兆網卡 | 1(可與 TiDB 同機器) |
| TiKV | 8 核+ | 32 GB+ | SSD, 200 GB+ | 千兆網卡 | 3 |
| TiFlash | 32 核+ | 64 GB+ | SSD, 200 GB+ | 千兆網卡 | 1 |
| TiCDC | 8 核+ | 16 GB+ | SAS, 200 GB+ | 千兆網卡 | 1 |
生產環境
| 組件 | CPU | 記憶體 | 硬碟型別 | 網路 | 實體數量(最低要求) |
|---|---|---|---|---|---|
| TiDB | 16 核+ | 32 GB+ | SAS | 萬兆網卡(2 塊最佳) | 2 |
| PD | 4核+ | 8 GB+ | SSD | 萬兆網卡(2 塊最佳) | 3 |
| TiKV | 16 核+ | 32 GB+ | SSD | 萬兆網卡(2 塊最佳) | 3 |
| TiFlash | 48 核+ | 128 GB+ | 1 or more SSDs | 萬兆網卡(2 塊最佳) | 2 |
| TiCDC | 16 核+ | 64 GB+ | SSD | 萬兆網卡(2 塊最佳) | 2 |
| 監控 | 8 核+ | 16 GB+ | SAS | 千兆網卡 | 1 |
環境準備
準備一臺部署主機,確保其軟體滿足需求:
- 推薦安裝 CentOS 7.3 及以上版本
- Linux 作業系統開放外網訪問,用于下載 TiDB 及相關軟體安裝包
最小規模的 TiDB 集群拓撲
| 實體 | 個數 | IP | 配置 |
|---|---|---|---|
| TiKV | 3 | 192.168.64.146 | 避免埠和目錄沖突 |
| TiDB | 1 | 192.168.64.146 | 默認埠 全域目錄配置 |
| PD | 1 | 192.168.64.146 | 默認埠 全域目錄配置 |
| TiFlash | 1 | 192.168.64.146 | 默認埠 全域目錄配置 |
| Monitoring & Grafana | 1 | 192.168.64.146 | 默認埠 全域目錄配置 |
安裝TiUP
什么是TiUP
從 TiDB 4.0 版本開始,TiUP 作為新的工具,承擔著包管理器的角色,管理著 TiDB 生態下眾多的組件,如 TiDB、PD、TiKV 等,用戶想要運行 TiDB 生態中任何組件時,只需要執行 TiUP 一行命令即可,相比以前,極大地降低了管理難度,
安裝TiUP組件
使用普通用戶登錄中控機,以 tidb 用戶為例,后續安裝 TiUP 及集群管理操作均通過該用戶完成
TiUP 安裝程序十分簡潔,無論是 Darwin 還是 Linux 作業系統,執行一行命令即可安裝成功:
COPYcurl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
該命令將 TiUP 安裝在 $HOME/.tiup 檔案夾下,之后安裝的組件以及組件運行產生的資料也會放在該檔案夾下,同時,它還會自動將 $HOME/.tiup/bin 加入到 Shell Profile 檔案的 PATH 環境變數中,這樣你就可以直接使用 TiUP 了,

配置TiUP環境
重新宣告全域環境變數
COPYsource .bash_profile
檢查TiUP 工具是否安裝
COPYwhich tiup

安裝 cluster 組件
COPYtiup cluster

升級cluster組件
如果機器已經安裝 TiUP cluster,需要更新軟體版本
COPYtiup update --self && tiup update cluster
預期輸出
“Update successfully!”字樣,

編輯部署檔案
請根據不同的集群拓撲,編輯 TiUP 所需的集群初始化組態檔,
常見的部署場景
最小拓撲架構
最基本的集群拓撲,包括 tidb-server、tikv-server、pd-server,適合 OLTP 業務,
增加 TiFlash 拓撲架構
包含最小拓撲的基礎上,同時部署 TiFlash,TiFlash 是列式的存盤引擎,已經逐步成為集群拓撲的標配,適合 Real-Time HTAP 業務,
增加 TiCDC 拓撲架構
包含最小拓撲的基礎上,同時部署 TiCDC,TiCDC 是 4.0 版本開始支持的 TiDB 增量資料同步工具,支持多種下游 (TiDB/MySQL/MQ),相比于 TiDB Binlog,TiCDC 有延遲更低、天然高可用等優點,在部署完成后,需要啟動 TiCDC,通過 cdc cli 創建同步任務,
增加 TiDB Binlog 拓撲架構
包含最小拓撲的基礎上,同時部署 TiDB Binlog,TiDB Binlog 是目前廣泛使用的增量同步組件,可提供準實時備份和同步功能,
增加 TiSpark 拓撲架構
包含最小拓撲的基礎上,同時部署 TiSpark 組件,TiSpark 是 PingCAP 為解決用戶復雜 OLAP 需求而推出的產品,TiUP cluster 組件對 TiSpark 的支持目前為實驗性特性,
混合部署拓撲架構
適用于單臺機器,混合部署多個實體的情況,也包括單機多實體,需要額外增加目錄、埠、資源配比、label 等配置,
單機極簡部署
部署主機軟體和環境要求:
- 部署需要使用部署主機的 root 用戶及密碼
- 部署主機關閉防火墻或者開放 TiDB 集群的節點間所需埠
單機極簡拓撲
| 實體 | IP | 開放埠 |
|---|---|---|
| grafana | 192.168.64.152 | 3000 |
| pd | 192.168.64.152 | 2379/2380 |
| prometheus | 192.168.64.152 | 9090 |
| tidb | 192.168.64.152 | 4000/10080 |
| tiflash | 192.168.64.152 | 9000/8123/3930/20170/20292/8234 |
| tikv | 192.168.64.152 | 20160/20180 |
| tikv | 192.168.64.152 | 20161/20181 |
| tikv | 192.168.64.152 | 20162/20182 |
編輯組態檔
按下面的配置模板,編輯組態檔,命名為
topo.yaml
user: "tidb":表示通過tidb系統用戶(部署會自動創建)來做集群的內部管理,默認使用 22 埠通過 ssh 登錄目標機器replication.enable-placement-rules:設定這個 PD 引數來確保 TiFlash 正常運行host:設定為本部署主機的 IP
COPY# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
# # Monitored variables are applied to all the machines.
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
server_configs:
tidb:
log.slow-threshold: 300
tikv:
readpool.storage.use-unified-pool: false
readpool.coprocessor.use-unified-pool: true
pd:
replication.enable-placement-rules: true
replication.location-labels: ["host"]
tiflash:
logger.level: "info"
pd_servers:
- host: 192.168.64.146
tidb_servers:
- host: 192.168.64.146
tikv_servers:
- host: 192.168.64.146
port: 20160
status_port: 20180
config:
server.labels: { host: "logic-host-1" }
- host: 192.168.64.146
port: 20161
status_port: 20181
config:
server.labels: { host: "logic-host-2" }
- host: 192.168.64.146
port: 20162
status_port: 20182
config:
server.labels: { host: "logic-host-3" }
tiflash_servers:
- host: 192.168.64.146
monitoring_servers:
- host: 192.168.64.146
grafana_servers:
- host: 192.168.64.146
執行集群部署命令
命令格式
COPYtiup cluster deploy <cluster-name> <tidb-version> ./topo.yaml --user root -p
引數解釋
- 引數
<cluster-name>表示設定集群名稱 - 引數
<tidb-version>表示設定集群版本,可以通過tiup list tidb命令來查看當前支持部署的 TiDB 版本 - 引數:
--user root通過 root 用戶登錄到目標主機完成集群部署,該用戶需要有 ssh 到目標機器的權限,并且在目標機器有 sudo 權限,也可以用其他有 ssh 和 sudo 權限的用戶完成部署,
檢查TiDB最新版本
可以通過執行
tiup list tidb來查看 TiUP 支持的版本
COPYtiup list tidb
經過執行發現 最新可用的TiDB版本是 v4.0.11
執行部署命令
COPYtiup cluster deploy tidb-cluster 4.0.11 ./topo.yaml --user root -p
下面輸入
y繼續后輸入密碼進行安裝界面

進入安裝界面,等待安裝即可

如果出現
deployed successfully表示部署成功,集群名稱是tidb-cluster

啟動集群
COPYtiup cluster start tidb-cluster

查看節點狀態
COPYtiup cluster display tidb-cluster
所有節點都是Up狀態說明都已經啟動就緒了

測驗TiDB集群
Mysql連接集群
TiDB的連接埠默認是4000, 密碼是空,可用使用Mysql客戶端以及第三方工具進行連接
安裝MySql客戶端
COPYyum -y install mysql
MySql客戶端連接
訪問 TiDB 資料庫,密碼為空
COPYmysql -h 192.168.64.146 -P 4000 -u root

第三方客戶端訪問Mysql
使用SQLyog訪問TiDB
創建TiDB連接

連接后就可以操作資料庫了

訪問Grafana監控
通過 http://{grafana-ip}:3000 訪問集群 Grafana 監控頁面,默認用戶名和密碼均為 admin,

訪問Dashboard
通過 http://{pd-ip}:2379/dashboard 訪問集群 TiDB Dashboard監控頁面,默認用戶名為 root,密碼為空,

查看集群串列
COPYtiup cluster list

查看集群拓撲
COPYtiup cluster display tidb-cluster

TiDB擴縮容
當前集群部署拓撲
| 實體 | IP | 埠 | 存盤路徑 | 部署路徑 |
|---|---|---|---|---|
| grafana | 192.168.64.152 | 3000 | – | /tidb-deploy/grafana-3000 |
| pd | 192.168.64.152 | 2379/2380 | /tidb-data/pd-2379 | /tidb-deploy/pd-2379 |
| prometheus | 192.168.64.152 | 9090 | /tidb-data/prometheus-9090 | /tidb-deploy/prometheus-9090 |
| tidb | 192.168.64.152 | 4000/10080 | – | /tidb-deploy/tidb-4000 |
| tiflash | 192.168.64.152 | 9000/8123/3930/20170/20292/8234 | /tidb-data/tiflash-9000 | /tidb-deploy/tiflash-9000 |
| tikv | 192.168.64.152 | 20160/20180 | /tidb-data/tikv-20160 | /tidb-deploy/tikv-20160 |
| tikv | 192.168.64.152 | 20161/20181 | /tidb-data/tikv-20161 | /tidb-deploy/tikv-20161 |
| tikv | 192.168.64.152 | 20162/20182 | /tidb-data/tikv-20162 | /tidb-deploy/tikv-20162 |
擴容TiKV節點
需要擴容一個TiKV節點
| 實體 | IP | 埠 | 存盤路徑 | 部署路徑 |
|---|---|---|---|---|
| tikv | 192.168.64.152 | 20163/20183 | /tidb-data/tikv-20163 | /tidb-deploy/tikv-20163 |
撰寫擴容腳本
在 scale-out.yaml 檔案添加擴容拓撲配置
COPYvi scale-out.yaml
COPYtikv_servers:
- host: 192.168.64.152
ssh_port: 22
port: 20163
status_port: 20183
deploy_dir: /tidb-deploy/tikv-20163
data_dir: /tidb-data/tikv-20163
config:
server.labels:
host: logic-host-4
執行擴容命令
命令格式
COPYtiup cluster scale-out <cluster-name> scale-out.yaml -p
- cluster-name:TiDB集群名稱
- p:使用密碼方式登錄當前機器
執行命令
COPYtiup cluster scale-out tidb-cluster scale-out.yaml -p
輸入命令后,確認輸入機器密碼

出現
successfully表示節點擴容成功

驗證擴容資訊
查看節點資訊
COPYtiup cluster display tidb-cluster
我們看到Tikv已經增加了一個節點

通過dashboard查看
也可以看到擴容的節點資訊

縮容TiKV節點
查看節點資訊
COPYtiup cluster display tidb-cluster
當前TiKV是4個節點

執行縮容操作
縮容命令
COPYtiup cluster scale-in <cluster-name> --node 192.168.64.152:20163
引數解釋
- cluster-name:集群名稱
- node:需要洗掉的節點地址
執行命令
COPYtiup cluster scale-in tidb-cluster --node 192.168.64.152:20163
出現確認操作后,輸入y確認執行就可以執行縮容操作了

驗證縮容資訊
查看節點資訊
COPYtiup cluster display tidb-cluster
我們看到需要縮容的節點狀態是
Tombstone說明已經下線,下線需要一定時間,下線節點的狀態變為Tombstone就說明下線成功

通過dashboard查看
也可以看到縮容的節點已經不存在了,說明縮容成功

博客內容遵循 署名-非商業性使用-相同方式共享 4.0 國際 (CC BY-NC-SA 4.0) 協議
本文永久鏈接是:http://www.baiyp.ren/TIDB%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2.html
更新于:2021年5月27日
集群部署
TIDB
本文由
傳智教育博學谷狂野架構師教研團隊發布,如果本文對您有幫助,歡迎
關注和點贊;如果您有任何建議也可留言評論或私信,您的支持是我堅持創作的動力,轉載請注明出處!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548321.html
標籤:其他
