fix: Skip deleted shard groups during backup
parent
ea1a3dbe60
commit
5f1968b331
|
@ -249,8 +249,15 @@ func (b *cmdBackupBuilder) backupBucket(ctx context.Context, org *influxdb.Organ
|
|||
// Iterate over and backup each shard.
|
||||
for _, rpi := range dbi.RetentionPolicies {
|
||||
for _, sg := range rpi.ShardGroups {
|
||||
if sg.Deleted() {
|
||||
continue
|
||||
}
|
||||
|
||||
for _, sh := range sg.Shards {
|
||||
if err := b.backupShard(ctx, org, bkt, rpi.Name, sh.ID); err != nil {
|
||||
if err := b.backupShard(ctx, org, bkt, rpi.Name, sh.ID); influxdb.ErrorCode(err) == influxdb.ENotFound {
|
||||
b.logger.Warn("Shard removed during backup", zap.Uint64("shard_id", sh.ID))
|
||||
continue
|
||||
} else if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -386,6 +386,10 @@ func (e *Engine) RestoreBucket(ctx context.Context, id influxdb.ID, buf []byte)
|
|||
|
||||
// Create shards.
|
||||
for _, sgi := range rpi.ShardGroups {
|
||||
if sgi.Deleted() {
|
||||
continue
|
||||
}
|
||||
|
||||
for _, sh := range sgi.Shards {
|
||||
if err := e.tsdbStore.CreateShard(dbi.Name, rpi.Name, sh.ID, true); err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -17,6 +17,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/influxdata/influxdb/v2"
|
||||
"github.com/influxdata/influxdb/v2/influxql/query"
|
||||
"github.com/influxdata/influxdb/v2/logger"
|
||||
"github.com/influxdata/influxdb/v2/models"
|
||||
|
|
Loading…
Reference in New Issue