obdumper只导出数据时不会把空表生成sql文件,导致obloader恢复的时候没有清空该表

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】obdumper obloader
【 使用版本 】
【问题描述】如果导出的时候只选择–sql ,是不是只会导出有数据的表,没数据的表就不会导出,那么如果再进行数据恢复的时候,就会导致备份时没数据的表,如果后续使用的过程中新增了记录,后续要恢复的时候,就会因为之前没数据所以路径下没有对应表的.sql文件,导致–truncate-table不会把这种表给清空掉
【复现路径】
【附件及日志】

3 个赞

版本信息发一下 命令发一下

版本:ob-loader-dumper-4.3.3.1

备份命令./obdumper -h 10.20.163.65 -P 2883 -u NYLC_BC_AUTO@oboracle#obdemo -p handsome -D NYLC_BC_AUTO --sql --all --skip-check-dir -f /home/obdumper/njjj_pub/init/data/

恢复命令./obloader -h 10.20.163.65 -P 2883 -u NYLC_BC_AUTO@oboracle#obdemo -p handsome -D NYLC_BC_AUTO --thread=8 --sql --all --exclude-table ‘ACT*’ --truncate-table -f /home/obdumper/njjj_pub/init/data/

2 个赞

666

可以试试导出的时候加上–retain-empty-files保留空表

1 个赞

我试试

可以了,多谢

厉害!学习了

我发现虽然空表的sql文件有了,但是恢复的时候,他跳过了空的sql文件,并没有去truncate

1 个赞

虽然空表的sql文件有了,但是恢复的时候,他跳过了空的sql文件,并没有去truncate,这个不是跳过空文件,而是跳过空的表

1 个赞

破案了,4.3.4是好的,4.3.3.1是错的

1 个赞

434可以使用truncate清空表的内容是么?

4.3.4的会把空的sql文件对应的表也清空,这是符合预期的。但是4.3.3.1不会,4.3.3.1的这块是有问题的。但是你刚刚说的,会跳过库中的空表不去truncate,这个功能两边都是有的。

不应该吧 我在找相关的同学确定一下