使用ob-loader导数据抛异常

【 使用环境 】 测试环境
【 OB or 其他组件 】 ob-loader-dumper
【 使用版本 】4.3.1.1
【问题描述】使用ob-loader导出集群的所有数据库的数据报如下异常,是我语法又有问题了么?
./bin/obdumper -h 10.0.4.7 -P 2891 -u root@bddb#myoceanbase -p ‘xxxx’ --sys-user root --sys-password ‘xxx’ --all --sql --table ‘*’ -f /mnt/databackup

因为你没有指定 -D 参数,所以默认应该是将 -u 的值复用到database_name

image

命令行选项-V4.3.1.1-OceanBase 导数工具文档-分布式数据库使用文档

这里 -D是必须指定的参数


但是我看了一下我要导出的是整个租户的所有数据库啊,我不备份单独的库


单个数据库都可以,但是我想备份整个租户的所有

而且还有一个问题哦就是


我备份的如果有其它的文件就不让备份了,这是个啥情况啊,我不能备份一个库给个空的目录吧,这个是Bug呢,还是设计如此呢?


这个问题加了–skip-check-dir这个参数后解决了

这里可能文档的描述导致的误解,obdumper每次仅支持导出租户的一个database

意思是obdumper只能一个库一个库的导出,不能所有的一起导出???


那这个参数又是啥意思呢?
https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000001189485

-all表示一个数据库的所有对象定义和数据,表示下面的所有

image
这里明明写的是所有的数据库对象定义,理解的话应该就是租户中所有的数据库吧,不是这样理解的么?

这里确实有些歧义,改为“导出数据库的所有对象定义和表数据”更合适些,
OBDUMPER确实每次仅支持导出一个database。

好的,那老师你帮忙反馈一下这个
还有一个就是可以提个需求么?这个工具后续能不能支持整个租户的所有数据库的导出呢?–就像mysqldump -uroot -p’xxx’ --all-databases这个参数能导出所有的库。
那我现在需要导出整个租户的所有数据库的导出需要用到什么工具呢?

我记录反馈一下,
那我现在需要导出整个租户的所有数据库的导出需要用到什么工具呢?
可以试试mysqldump

mysqldump可以全租户的导出整个数据库么?
ob现有的工具是不能整个的导出整个租户的所有的数据库么?

mysqldump应该是支持导出所有database,你试试看
我咨询了产品经理,逻辑导出租户的所有database已有类似需求了,

文档问题会排期修改,感谢反馈

收到,谢谢老师了,如果这个需求做出来了,麻烦说一下哦,到时候我还需要在测试一下
mysqldump导出所有的库一会在测试
我现在又有了一个新问题,你看我是新发个帖子还是直接在这个帖子继续回复.


我导出了这个cjport的库,然后我把这个bddb租户中的cjport删除了,然后使用obloader恢复cjport这个库提示找不到这个数据库,麻烦老师帮忙看看这个问题
./bin/obloader -h 10.0.4.7 -P 2891 -u root@bddb#myoceanbase -p ‘xxx’ --sys-user root --sys-password ‘xxx’ -D cjport --sql --table ‘*’ -f /mnt/databackup

还有一个问题同样的在恢复的时候
如下的这个cmp的这个库我是没有删除bddb租户中的cmp库,我是删除这个库中的一个表,然后恢复的时候提示如下报错

你创建一个空库 再试下