在OceanBase数据库中,mysqldump工具是可以用于数据备份的,且它支持导出MySQL模式实例中的数据。所以,如果你使用mysqldump导出的只有表结构没有数据,可能的原因有:
你正在尝试导出的不是MySQL模式实例中的数据。OceanBase数据库中的其他模式实例,如Oracle模式实例或SQL Server模式实例,可能不支持通过mysqldump进行数据导出。
导出的数据量过大,超过了mysqldump的处理能力,可能会报TIMEOUT 4012错误。此时,你可以尝试调整系统参数以增加超时时间。具体操作是使用租户管理员账户登录数据库运行以下语句进行调整:
obclient > SET GLOBAL ob_trx_timeout =1000000000,GLOBAL ob_query_timeout =1000000000;
。注意,导出完成后需要将这两个参数值修改回原值。如果你使用的是MariaDB客户端连接OceanBase数据库,可能存在一些兼容性问题。虽然OceanBase数据库兼容MySQL协议,但在实际使用过程中,可能会出现一些不兼容的情况。
如果上述方法都无法解决问题,你可以考虑使用ODC(OceanBase Data Center)导出任务来进行数据导出。ODC提供了更多的导出选项,包括仅导出数据、仅导出结构和同时导出数据和结构。