【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】5.4
集群中有大量分区表,如何快速导出表结构?
我一般都是通过第三方工具导出,比如navicat
这个工具导出快吗,和mysqldump导出有什么区别
没什么区别,都是导出sql语句。
想问如何快速导出,目前导出比较慢
只导表结构应该不慢啊?是不是还导出数据了?或者是不是其他地方限制了?
可以用dumpling --no-data
mysqldump应该也可以的吧
navicat导出来也不慢啊,你是不是数据库很大,表的规模很大
show create table 不慢啊,你有几万表吗
dumpling
-h10.0..
-uroot
-P4000
–filetype sql
–complete-insert
-p_31t^XJ9+YuKD647-C
-B test
–no-data
-r 20000 -F256MiB
–threads 32
-o /data/back/tidb_54
/data/servers/mysql/bin/mysqldump
–socket=“/data/mysql/tmp/mysql.sock”
–host=“10.0..”
–port=4000
–user=“root”
–password=“_31t^XJ9+YuKD647-C”
–default-character-set=“utf8”
–skip-triggers --hex-blob --complete-insert --skip-tz-utc --set-gtid-purged=OFF
–no-data
–databases ‘test’ \
/data/back/tidb_test_54.sql
还是mysqldump速度快点
刚好最近在做表结构备份相关工作,我用的 mydumper 可以并行呢,挺快的
mysqldump
需要导出很多表结构用dumpling,少量表用show create table即可。
mysqldump就挺快
直接用工具导出,或者呢,自己维护的项目都是有概念模型的,用概念模型导出DDL语句是必备的功能。
Dbeaver,Navicat都可以的
这个用mysqldump 直接搞就行
一条shell搞定:
mysql -hxx -Pxx -uxx -pxx -Dxx -NBe “show tables” |awk ‘{print “show create table “$1”;”}’ |mysql -hxx -Pxx -uxx -pxx -Dxx -NBe
不应该是用dumpling就可以了吗? ./dumpling -h <tidb_host> -P <tidb_port> -u -p -B <database_name> --no-data --output <output_directory>
对于大量的分区表,可以考虑使用 --threads
参数来增加并发度,提高导出速度