# statsDumper

* 脚本目的
    + 快速拿到相关表的统计信息、表结构、版本信息、生成导入统计信息语句
    + 并且内部方便快速导入表结构和统计信息

* 使用说明
    + 该脚本需要访问 `TIDB` 数据库和 `TiDB status url`，需要安装 `pymysql` 包：`sudo pip install pymysql`
    + 可以使用 `Stats_dump.py -h` 获取帮助
    + 最终会生成一个 `tar` 包，解压后，里面有一个 `schema.sql` 文件，里面有 TiDB 的集群信息。
    + 还原统计信息和表结构可以: `mysql -uroot -P4000 -h127.0.0.1 <schema.sql` (注意要在解压缩的目录中执行还原命令)

* 使用演示

```shell
./stats_dump -h
Usage of ./test:
  -H string
    	Database host and port, default: 127.0.0.1:4000 (default "127.0.0.1:4000")
  -d string
    	Database name, for example: test,test1, default: None
    -f string
    	set filter for dump.default is "INFORMATION_SCHEMA,PERFORMANCE_SCHEMA,mysql,default" (default "INFORMATION_SCHEMA,PERFORMANCE_SCHEMA,mysql,default")
  -i	ignore case if set it.default is 'true' (default true)
  -o string
    	output path.default is current dir.
  -p string
    	Database password, default: null
  -t string
    	Table name (database.table), for example: test.test,test.test2, default: None(all tables of schemas)
  -tu string
    	tidb status url, default: 127.0.0.1:10080 (default "127.0.0.1:10080")
  -u string
    	Database account, default: root (default "root")
```

* 参数说明
    + `-tu` 后填 TIDB 的 IP 地址和 status 端口，端口默认为 10080
    + `-H` 后填 TiDB 的 IP 地址和连接端口，端口默认是 4000
    + `-u` 为数据库登录账户
    + `-p` 为数据库登录密码
    + `-d` 为需要导出统计信息的库，如果使用该参数，就是代表将会导出对应库所有表的统计信息和表结构。比如填 `-d test1,test2`，就是讲 `test1` 和 `test2` 库下的表的统计信息和表结构导出
    + `-t` 导出对应表的统计信息、表结构。需要注意格式：`database_name.table_name`。比如填 `-t test1.t1,test2.t2`，代表将会导出 test1 库 t1 表和 test2 库 t2 表的表结构和统计信息。
    + `-i` 在导出的时候，指定参数匹配，是否要忽略大小写匹配。默认是`true`。
    + `-f` 在导出的时候，需要过滤的表。默认会过滤系统表("PERFORMANCE_SCHEMA", "mysql", "default")。设置的值是增量，用逗号分隔。
    + `-o` 在导出的时候，指定输出目录。默认是当前目录。

* 注意
    + 如果 `-d` 和 `-t` 都没有指定，默认是导出除了系统表以外所有表的统计信息和表结构。
    + 不会导出 `"INFORMATION_SCHEMA", "PERFORMANCE_SCHEMA","mysql", "default"` 库的表结构和统计信息。
