変更ストリームをレプリカセットでのみ利用できるようにする理由は何ですか?
変更ストリームの実装はoplogに基づいています。oplogはレプリカセットでのみ使用できます。もう1つの理由は、レプリカセットにスタンドアロンノードの機能のスーパーセットが含まれており、本番環境アプリケーションに推奨されるMongoDBデプロイメントであることです。したがって、推奨される運用展開トポロジに基づいて、変更ストリーム機能を実装することは理にかなっています。
もう1つの主な理由は、変更ストリームがレプリカセットの設定でロールバックされないドキュメントを出力するためです( レプリカセットのフェールオーバー中のロールバック を参照)。したがって、 大部分の読み取りの懸念 =は要件です。
変更ストリームは、シャードクラスターと単一ノードのレプリカセット(つまり、このセットアップは一般的には推奨されませんが、メンバーが1つだけのレプリカセット)でも利用できます。
変更ストリームの高レベルの説明は [変更ストリーム]ページ にあります。
変更ストリームの設計の概要は SERVER-13932 にあります。
私の環境はWindowsで、次の手順が役立ちました。
"C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg"
_を検索以下のコードを、必要な_mongod.cfg
_およびオプションに追加します。詳細: Mongoレプリケーションオプション
_replication:
replSetName: "rs0"
_
MongoDBプロセスを再起動します。
_Windows->Task Manager->Services->MongoDB [run restart]
_
コンソールで実行_mongo 127.0.0.1:27017
_
rs.initiate()
を実行しますその結果、次のようなものができて幸運です。
_> rs.initiate()
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "127.0.0.1:27017",
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1584218777, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1584218777, 1)
}
rs0:SECONDARY>
_