作者:人如其名

简单写了个参数对比脚本:https://gitee.com/wencycool/something_for_tidb/tree/main/tidb_config_diff

使用说明:

PS E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py -h              
usage: main.py [-h] [-d DB] {collect,report} ...

参数对比工具

options:
  -h, --help        show this help message and exit
  -d DB, --db DB    sqlite3的存放地址

Subcommands:
  {collect,report}
    collect         搜集系统参数和集群参数
    report          参数对比输出
PS E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py collect -h
usage: main.py collect [-h] [-H HOST] [-P PORT] [-u USER] [-p [PASSWORD]]

options:
  -h, --help            show this help message and exit
  -H HOST, --host HOST  IP地址
  -P PORT, --port PORT  端口号
  -u USER, --user USER  用户名
  -p [PASSWORD], --password [PASSWORD]
                        密码
PS E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py report -h 
usage: main.py report [-h] [-l] [--table1 TABLE1] [--table2 TABLE2] [--limit LIMIT]

options:
  -h, --help         show this help message and exit
  -l, --list-tables  打印当前已经完成采集的系统表
  --table1 TABLE1    对比的第一个表
  --table2 TABLE2    对比的第二个表
  --limit LIMIT      打印输出行数,默认输出所有行

先对需要对比的版本搜集参数

#搜集第一个待对比版本的参数文件
PS E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py collect -H 192.168.31.201 -P 4000 -u root -p 
Enter your password:
#搜集第二个待对比版本的参数文件
PS E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py collect -H 192.168.31.201 -P 4001 -u root -p 
Enter your password:

#查看当前采集了哪些参数表(可以自己指定表来做对比) PS E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py report -lTABLE LIST:[tidb_cfg_v7_5_0,tidb_cfg_v7_1_2]

示例:

#默认情况下会找版本最高的2个参数表做比较(这里--limit参数只打印前N行,避免全部输出)
PS E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py report --limit 5    
┌──────────┬─────────┬──────────┬───────────────────────────────────────┬───────────────────────────────┬────────────────────┐
│   Number │ scope   │ type     │ var_name                              │ var_value_v7.5.0              │ var_value_v7.1.2   │
├──────────┼─────────┼──────────┼───────────────────────────────────────┼───────────────────────────────┼────────────────────┤
│        1 │ global  │ variable │ tidb_allow_tiflash_cop                │ OFF                           │ NotFound           │
├──────────┼─────────┼──────────┼───────────────────────────────────────┼───────────────────────────────┼────────────────────┤
│        2 │ global  │ variable │ tidb_analyze_skip_column_types        │ json,blob,mediumblob,longblob │ NotFound           │
├──────────┼─────────┼──────────┼───────────────────────────────────────┼───────────────────────────────┼────────────────────┤
│        3 │ global  │ variable │ tidb_build_sampling_stats_concurrency │ 2                             │ NotFound           │
├──────────┼─────────┼──────────┼───────────────────────────────────────┼───────────────────────────────┼────────────────────┤
│        4 │ global  │ variable │ tidb_cloud_storage_uri                │                               │ NotFound           │
├──────────┼─────────┼──────────┼───────────────────────────────────────┼───────────────────────────────┼────────────────────┤
│        5 │ global  │ variable │ tidb_enable_async_merge_global_stats  │ ON                            │ NotFound           │
└──────────┴─────────┴──────────┴───────────────────────────────────────┴───────────────────────────────┴────────────────────┘

上述可以看到该参数名称在v7.5.0版本中有,v7.1.2中没有,说明v7.5.0中新增。


E:\PythonProjects\something_for_tidb\tidb_config_diff> python main.py report --limit 100,5
┌──────────┬─────────┬──────────┬───────────────────────────────────────────────┬────────────────────┬────────────────────┐
│   Number │ scope   │ type     │ var_name                                      │ var_value_v7.5.0   │ var_value_v7.1.2   │
├──────────┼─────────┼──────────┼───────────────────────────────────────────────┼────────────────────┼────────────────────┤
│      101 │ global  │ tiflash  │ raftstore-proxy.raftstore.allow-remove-leader │ NotFound           │ false              │
├──────────┼─────────┼──────────┼───────────────────────────────────────────────┼────────────────────┼────────────────────┤
│      102 │ global  │ variable │ tidb_remove_orderby_in_subquery               │ ON                 │ OFF                │
├──────────┼─────────┼──────────┼───────────────────────────────────────────────┼────────────────────┼────────────────────┤
│      103 │ global  │ tidb     │ performance.enable-stats-cache-mem-quota      │ true               │ false              │
├──────────┼─────────┼──────────┼───────────────────────────────────────────────┼────────────────────┼────────────────────┤
│      104 │ global  │ tidb     │ performance.force-init-stats                  │ true               │ false              │
├──────────┼─────────┼──────────┼───────────────────────────────────────────────┼────────────────────┼────────────────────┤
│      105 │ global  │ tidb     │ performance.lite-init-stats                   │ true               │ false              │
└──────────┴─────────┴──────────┴───────────────────────────────────────────────┴────────────────────┴────────────────────┘

上述可以看到没有发现NotFound字样,说明在两个版本中都存在,只是默认值发生了变化。