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-indexes
和 asrestore
来更新我的数据。
我是不是做错了什么?
你做得对。这是当前 asrestore 工具的问题。 asrestore 工具首先使用 C 客户端的异步 API 从备份中删除索引,并且在尝试重新创建相同的索引之前不等待完成。这将导致重新创建经常失败(因为那些索引仍然存在并且仍在被删除)。
在还原时使用 --wait 选项应该会有帮助。并在即将发布的工具包版本中密切关注 Jira TOOLS-608,以了解有关这种奇怪行为的一些增强功能。
将集群 (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-indexes
和 asrestore
来更新我的数据。
我是不是做错了什么?
你做得对。这是当前 asrestore 工具的问题。 asrestore 工具首先使用 C 客户端的异步 API 从备份中删除索引,并且在尝试重新创建相同的索引之前不等待完成。这将导致重新创建经常失败(因为那些索引仍然存在并且仍在被删除)。
在还原时使用 --wait 选项应该会有帮助。并在即将发布的工具包版本中密切关注 Jira TOOLS-608,以了解有关这种奇怪行为的一些增强功能。