自己管理型配置のジャーナリングの構成
項目一覧
MongoDB は、 書込み操作 の耐久性を保証するために、ディスク上の ジャーナル への 先行書込みログ を使用します。
WiredTiger storage engineでは、クラッシュ後の一貫した状態を保証するためにジャーナリングは必要ありません。 リカバリ中に、データベースは最後の整合性のあるチェックポイントに復元されます。 ただし、チェックポイント間で MongoDB が予期せず終了した場合は、最後のチェックポイント後に発生した書込みを回復するためにジャーナリングが必要になります。
mongod
が予期せず停止した場合、プログラムはジャーナルに書き込まれたすべてを回復できます。 MongoDB は再起動時に書込み操作を再適用し、一貫性のある状態を維持します。 デフォルトでは、失われた書込みの最大量(つまり、ジャーナルに書き込まれない書込み)は、過去 100 ミリ秒内に行われた書込みと、ジャーナル書込みを実際に実行するのにかかる時間です。 デフォルトの詳細については、 commitIntervalMs
を参照してください。
手順
コミット確認の取得
書込み保証 ( write concern ) とj
オプションを使用してコミット確認を取得できます。 詳細については、「 書込み保証 ( write concern) 」を参照してください。
ジャーナル ステータスの監視
serverStatus
コマンド/ db.serverStatus()
メソッドからは、ジャーナルに関する統計を含むwiredTiger.log
が返されます。
予期しないシャットダウン後のデータの回復
クラッシュ後の再起動では、サーバーが使用可能になる前に、MongoDB は ジャーナル ディレクトリ内のすべてのジャーナル ファイルを再生します。 MongoDB がジャーナル ファイルを再生する必要がある場合、 mongod
はログ出力でこれらのイベントを記録します。
--repair
を実行する理由はありません。
WiredTiger Journal Compressor を変更する
WiredTiger storage engine では、MongoDB はデフォルトでジャーナルにsnappy
コンプレッサーを使用します。 mongod
インスタンスに別の圧縮アルゴリズムを指定するか、圧縮を行わない場合は次のようにします。
Tip
この手順の実行中にmongod
の不正なシャットダウンが発生した場合は、ジャーナル ファイルを使用して回復するために古いコンプレッサー設定を使用する必要があります。 回復したら、手順を再試行できます。
スタンドアロンのmongod
インスタンスのジャーナルコンプレッサーを変更するには、次の手順に従います。
storage.wiredTiger.engineConfig.journalCompressor
を新しい値に更新します。構成ファイルの代わりにコマンドライン オプションを使用する場合は、以下の再起動中に
--wiredTigerJournalCompressor
コマンドライン オプションを更新する必要があります。mongod
インスタンスのクリーン シャットダウンを実行します。 たとえば、mongosh
をインスタンスに接続し、db.shutdownServer()
を発行します。db.getSiblingDB('admin').shutdownServer() プロセスが実行されなくなったことを確認したら、
mongod
インスタンスを再起動します。構成ファイルを使用している場合:
mongod -f <path/to/myconfig.conf> 構成ファイルの代わりにコマンドライン オプションを使用している場合は、
--wiredTigerJournalCompressor
を新しい値に更新します。mongod --wiredTigerJournalCompressor <differentCompressor|none> ...
レプリカセットのノードのジャーナルコンプレッサーを変更するには、次の手順に従います。
mongod
インスタンスのクリーン シャットダウンを実行します。 たとえば、mongosh
をインスタンスに接続し、db.shutdownServer()
を発行します。db.getSiblingDB('admin').shutdownServer() storage.wiredTiger.engineConfig.journalCompressor
を新しい値に更新します。構成ファイルの代わりにコマンドライン オプションを使用する場合は、以下の再起動中にコマンドライン オプションを更新する必要があります。
mongod
インスタンスを再起動します。構成ファイルを使用している場合:
mongod -f <path/to/myconfig.conf> 構成ファイルの代わりにコマンドライン オプションを使用している場合は、
--wiredTigerJournalCompressor
を新しい値に更新します。mongod --wiredTigerJournalCompressor <differentCompressor|none> ...
シャード レプリカセットまたはコンフィギュレーションサーバー レプリカセットのノードのジャーナル コンプレッサーを変更するには、次の手順に従います。
mongod
インスタンスのクリーン シャットダウンを実行します。 たとえば、mongosh
をインスタンスに接続し、db.shutdownServer()
を発行します。db.getSiblingDB('admin').shutdownServer() storage.wiredTiger.engineConfig.journalCompressor
を新しい値に更新します。構成ファイルの代わりにコマンドライン オプションを使用する場合は、以下の再起動中にコマンドライン オプションを更新する必要があります。
mongod
インスタンスを再起動します。構成ファイルを使用している場合:
mongod -f <path/to/myconfig.conf> 構成ファイルの代わりにコマンドライン オプションを使用している場合は、
--wiredTigerJournalCompressor
を新しい値に更新します。mongod --shardsvr --wiredTigerJournalCompressor <differentCompressor|none> --replSet ...