目的
在使用 TiDB 的過程中寒波,經(jīng)常會遇到一些慢 SQL 的問題饥悴,當需要尋求 TIDB 原廠協(xié)助夺巩,或者在官方論壇發(fā)帖的時候枝嘶,大概率需要收集以下信息:
- 版本信息:
select tidb_version();
- 版本信息:
- 表結(jié)構(gòu):
show create table table_name;
- 表結(jié)構(gòu):
- 表的統(tǒng)計信息:
curl http://tidb_ip:status_port/stats/dump/db_name/table_name >table_name.json
(默認端口為 10080)
- 表的統(tǒng)計信息:
- 執(zhí)行 SQL 和執(zhí)行計劃
統(tǒng)計信息相關(guān)官方介紹: 統(tǒng)計信息簡介
為了快速拿到相關(guān)表的統(tǒng)計信息合住,表結(jié)構(gòu)绰精,并且方便官方快速導入表結(jié)構(gòu)和統(tǒng)計信息撒璧。因此寫了相關(guān)腳本,進行一鍵導出導入笨使。
注意: 導入統(tǒng)計信息的時候沪悲,需要創(chuàng)建對應的庫,否則導入會報錯阱表。
腳本書寫
功能:
可以導出整個集群的表結(jié)構(gòu)和統(tǒng)計信息
可以指定庫導出表結(jié)構(gòu)和統(tǒng)計信息
可以指定表進行導出相關(guān)表結(jié)構(gòu)和統(tǒng)計信息
會生成一個壓縮文件殿如,其中 schema.sql 中是創(chuàng)建表/庫語句,和 load 統(tǒng)計信息語句最爬。
用法
./Stats_dump.py -h
usage: Stats_dump.py [-h] [-tu TIDB] [-H MYSQL] [-u USER] [-p PASSWORD]
[-d DATABASE] [-t TABLES]
Export statistics and table structures
optional arguments:
-h, --help show this help message and exit
-tu TIDB tidb status url, default: 127.0.0.1:10080
-H MYSQL Database address and port, default: 127.0.0.1:4000
-u USER Database account, default: root
-p PASSWORD Database password, default: null
-d DATABASE Database name, for example: test,test1, default: None
-t TABLES Table name (database.table), for example: test.test,test.test2, default: None
-
參數(shù)說明
-
-tu
后填 TIDB 的 IP 地址和 status 端口涉馁,端口默認為 10080 -
-H
后填 TiDB 的 IP 地址和連接端口,端口默認是 4000 -
-u
為數(shù)據(jù)庫登錄賬戶 -
-p
為數(shù)據(jù)庫登錄密碼 -
-d
為需要導出統(tǒng)計信息的庫爱致,如果使用該參數(shù)烤送,就是代表將會導出對應庫所有表的統(tǒng)計信息和表結(jié)構(gòu)。比如填-d test1,test2
糠悯,就是講test1
和test2
庫下的表的統(tǒng)計信息和表結(jié)構(gòu)導出 -
-t
導出對應表的統(tǒng)計信息帮坚、表結(jié)構(gòu)。需要注意格式:database_name.table_name
互艾。比如填-t test1.t1,test2.t2
试和,代表將會導出 test1 庫 t1 表和 test2 庫 t2 表的表結(jié)構(gòu)和統(tǒng)計信息。
-
-
注意
- 如果
-d
和-t
都沒有指定纫普,默認是導出除了系統(tǒng)表以外所有表的統(tǒng)計信息和表結(jié)構(gòu)阅悍。 - 不會導出
"INFORMATION_SCHEMA", "PERFORMANCE_SCHEMA","mysql", "default"
庫的表結(jié)構(gòu)和統(tǒng)計信息。
- 如果