0

3 つのノード (2 つのデータと 1 つのアービター) を持つレプリカ セットがあるとします。

A->primary, priority=2
B->secondary, priority=1, 10 seconds behind A
C->arbiter

ここで A が失敗し、B がプライマリになります。しばらくして A がオンラインになり、ロールバックを実行し、同期後に再びプライマリになります。これで、ロールバックされたデータを適用できます。

私の質問は、A の優先度が 1 の場合はどうなるかということです。オンラインになってロールバックを行った後、B と同期します。ロールバックされたデータをどのサーバーに適用する必要がありますか? A はもはやプライマリではないためです。ロールバックされたデータを B に転送して操作を行う必要がありますか?

4

1 に答える 1

2

プライマリへの書き込みのみを実行できるため、ロールバックされたデータは常にプライマリに適用する必要があります。これは、データをサーバーBに移動するか、mongorestoreを使用して新しいプライマリと通信する必要があることを意味します(-h引数を使用)。mongorestoreユーティリティは、ほとんどの場合、データをセカンダリに適用することを許可しません。

于 2012-04-17T09:17:41.293 に答える