🌟

ひとりMongoDB University 12/22 - レプリケーション設定

2020/12/22に公開

この記録は、アドベントカレンダー形式の、MongoDB Universityの学習コースの記録、22日目になります!
ただいまコース: M103[1]を進めています。Chapter2を1日3つぐらいずつ進めたい。
25日までに15stepが目標です。

Chapter 2: Replication Configuration Document (動画)

Replication Configurationについて。

  • BSONの形で保持されていて、ノード間でシェア
  • レプリカセットの細かい設定を保持
    • コマンドラインで起動時に個別インスタンスごとに設定を調整したり、mongod.confを指定して調整した値が保持されている

ドキュメント: https://docs.mongodb.com/manual/reference/replica-configuration

{
  _id: <string>,
  version: <int>,
  term: <int>,
  protocolVersion: <number>,
  writeConcernMajorityJournalDefault: <boolean>,
  configsvr: <boolean>,
  members: [
    {
      _id: <int>,
      host: <string>,
      arbiterOnly: <boolean>,
      buildIndexes: <boolean>,
      hidden: <boolean>,
      priority: <number>,
      tags: <document>,
      slaveDelay: <int>,
      votes: <number>
    },
    ...
  ],
  settings: {
    chainingAllowed : <boolean>,
    heartbeatIntervalMillis : <int>,
    heartbeatTimeoutSecs: <int>,
    electionTimeoutMillis : <int>,
    catchUpTimeoutMillis : <int>,
    getLastErrorModes : <document>,
    getLastErrorDefaults : <document>,
    replicaSetId: <ObjectId>
  }
}
  • トップレベルの _id は、レプリカセットの名前
    • 設定ファイルではreplSetName で指定
    • コマンドラインでは --replSet で指定している部分
  • version
    • レプリカセットの設定変更のバージョンを保持
  • members
    • 配列で、ここで各ノードの設定が入る
    • arbiterOnly
      • arbiter役として振舞うかどうか
    • hidden
      • hiddenメンバー(ノード)として設定するかどうか
    • priority
      • 選出の際の重み付け

※レプリカセットの構成はこちらに図がたくさんあるよ!
https://docs.mongodb.com/manual/replication/ (トポロジーやメンバーの役割なども)

Chapter 2: Replication Configuration Document (クイズ)

Problem

Which of the following fields are included in the replica set configuration document?
レプリカセットの設定に含まれるフィールドはどれ?

こたえ

  • members, version, _id すべて!

今日の進捗

無理せず2つだけ...。ドキュメントも読もう!

きょうのzenn

ひきつづき同じ方法で進めています :)
デブサミでの発表が楽しみ!!

脚注
  1. M103: Basic Cluster Administration のコースになります。コースを開始すると、完了までの期限は2ヶ月以内です。 ↩︎

Discussion