tidb导入数据报错

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v3.0.8
  • 【问题描述】:

我是用mydumper工具导出的数据库,然后用loader导入,其中一张表报错,然后就终止了

1 看了下官网的说明,改配置文件,那这个配置文件的具体位置在哪里啊,那个服务器上,是中控机,还是tidb-server上 2 另外中秋的命令行模式用session变量改的话, 是会话级别,那如果我执行这个会话,是不是在其中一个节点上生效,另外一个节点上,还是会报错,应该是用global吧,全局生效,可以这样用吗?

3,现在我的数据好多已经入库了,那失败之后我怎么弄,还是执行原来的命令会接着我失败的地方继续吗,还是需要把集群数据清除,重新导入? 希望帮我解答上面三个问题,最好能详细点,谢谢

  1. config.toml 在 $deploy_dir/conf/tidb.toml ,这个配置文件在 tidb server 上。
  2. session 级别的修改参数,只会在 session 生效,不是 global 级别生效。如果是设置 global 级别的需要重启生效;
  3. loader 导入中断,如果已经调整了 tidb_check_mb4_value_in_utf8 参数生效后,那么可以重复执行 loader 操作命令,loader 有断点续传的功能。

那我有两个tidb-server,岂不是要两个服务器上都要改这个配置文件?一般你们推荐用哪种方式修改,是直接改配置文件,还是在命令终端上改set 命令方式 还有在命令行模式或者配置文件下添加参数tidb_check_mb4_value_in_utf8,这个值为1跳过检测还是不跳过检测 ,默认我看了下配置文件没有这个变量

  1. 是的,需要在两个服务都要配置;
  2. 我们一般推荐通过 curl 设置在线生效,然后静态参数修改配置。
1. HTTP API(HTTP API 只在单台服务器上生效)在线调整配置,确保不需要重启 tidb ,就可以完成调整后,loader 可以正常导入。
2. 通过修改 tidb-ansible/conf/tidb.toml 和 目标 tidb-server 配置的 $deploy_dir/conf/tidb.toml 配置保证后面 TiDB 重启和滚动升级可以参数生效。

通过修改 tidb-ansible/conf/tidb.toml 和 目标 tidb-server 配置的 $deploy_dir/conf/tidb.toml 配置保证后面 TiDB 重启和滚动升级可以参数生效。 还要修改tidb-ansible里面的配置?有完整的命令可以参考不,或者模板 还有 check_mb4_value_in_utf8=1 是跳过检测还是不跳过,我还没有弄清楚

这个目的是为了你后面通过 tidb-ansible 的 rolling_update.yml 滚动升级 tidb 时候,不会把这个参数默认覆盖掉。

恩,那我现在是 curl -X POST -d “check_mb4_value_in_utf8=1” http://{TiDBIP}:10080/settings 还是 curl -X POST -d “check_mb4_value_in_utf8=0” http://{TiDBIP}:10080/settings 那个是跳过检测

请仔细看一下官方文档里面的介绍,里面是有告诉开启和关闭的。