obdumper and obloader 问题

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作

使用obdumper 导出 表结构,语句如下:
obdumper -h XXX -P 2883 -u sys -p “XXX” -c XXX -t XXX -D XXXTXXX --all --ddl --thread 4 -f /tmp/aaa

/tmp/cft 下有 data与 log 目录
进入 data目录

image

是以库名为文件名的。

先在另一个集群环境中,数据库名XXXTXXX 变成了 XXXUXXX,

obloader -h XXX -P 9883 -u sys -p “XXX” -c XXX -t TEST_A -DXXXUXXX --all --ddl --thread 4 -f /tmp/cft

这种方式 导入,就会报 (conn=4146979) Unknown database ‘NBACNUA1’

有什么参数 可以 修改库名?

1 个赞

目标段的数据库 : NBACNUA1 是否真是存在呢 ??

image
我这测试了下 , obdumper的数据目录是 -f /root/obloader

data/数据库名字/TABLE/真是数据。

解决办法:上层更改下目录名称看下 将<数据库名字> 更改成你的目标端的

库存在,

就是 源端 和 目标端 库名不一样

mv 源库库名 目标端库名 这么搞。

更改目录名是可以的,

就要看 obloader 有啥参数,可以 用。

是否支持,不同库 名 的 导出和导入

不是一开始报错?是导入某个具体的sql时候报错吧?
有些对象或者外键导出的时候会带上schema信息的,如果换了一个库导入这里是没有自动匹配修改动作的
是什么obdumper版本,可以试下下 4.2.8 之后的 --schemaless 选项 (引用的schema是没办法去掉的也是符合预期的建议客户自行按需处理数据)