Asrestore :二级索引在已经存在时被删除

Asrestore : secondary indexes get deleted when already existing

将集群 (3.8.2.3) 的备份还原到同一集群时,二级索引被删除 :

show indexes Namespace 给出 36 行

cat Backup-Namespace.abs.gz | gunzip | asrestore --input-file - --no-records

show indexes Namespace 给出 0 行

如果我用同样的命令再次恢复 show indexes Namespace 给出 36 行

选项 --replace--unique

的结果相同

它适用于 --no-generation 选项,但由于我想要最新的数据,我不想使用此选项。

请注意,备份是使用 :

创建的
asbackup --no-udfs --priority 1 --namespace Namespace --output-file -

为了解决这个问题,我在有新索引的地方手动创建索引,并使用 --no-indexesasrestore 来更新我的数据。

我是不是做错了什么?

你做得对。这是当前 asrestore 工具的问题。 asrestore 工具首先使用 C 客户端的异步 API 从备份中删除索引,并且在尝试重新创建相同的索引之前不等待完成。这将导致重新创建经常失败(因为那些索引仍然存在并且仍在被删除)。

在还原时使用 --wait 选项应该会有帮助。并在即将发布的工具包版本中密切关注 Jira TOOLS-608,以了解有关这种奇怪行为的一些增强功能。