dumper导出提示报错:Invalid table entry: TableEntryKey

【 使用环境 】生产环境
【 使用版本 】4.2.7
【问题描述】

  1. 表结构:
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| name  | varchar(256) | NO   | PRI | NULL    |       |
| value | varchar(512) | YES  |     | NULL    |       |

  1. 导出dumper时,提示:
Invalid table entry: TableEntryKey [ cluster: null, tenant: null, database: xxx_app, table: salesforce_config], TableId: -9223372036854775808, PartitionNum: -9223372036854775808, ReplicaNum: -9223372036854775808, SchemaVersion: null, PartitionInfo: null 

obdumper的命令发一下

ob-loader-dumper-4.2.7-RELEASE/bin/obdumper -h 127.0.0.1 -P 2881 -u root@xxmysql -p ‘xxxxxx’ -D xxx --retain-empty-files --drop-object --ddl --sql -f /data/TABLE/ --block-size=0MB --thread=3 --all

-uroot@tenant@cluster 改成 -u root -t tenant -c cluster 试下,然后–block-size=0MB去掉

  1. -u root -t tenant -c cluster :报错密码无权限
  2. -u root -t tenant : 可正常导出,且无 Invalid table entry: TableEntryKey 报错
  3. -uroot@tenant :可正常导出,但会提示 Invalid table entry: TableEntryKey 异常

用2中的方式,可正常且无异常error提示。
疑问: 用户名称、账号名称分开和一起有区别??

1 的这种方式其实是链接obproxy 也就是要连接2883端口的
2、3 在4.2.8版本是一样的,但是在此版本之前需要分开,也就是使用2的这种方式

–block-size=0MB没有去掉;
去掉的话,会生成带数字的标识: {表名}.0.sql
带上的话可生成完整的一个sql文件