MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/
データベース マニュアル

MongoDB 1.8 のリリースノート

MongoDB 1.8は標準の増分本番リリースであり、MongoDB 1.6のドロップイン置換として機能します。ただし、次の例外があります。

アップグレードする前にすべてのリリースノートをお読みください。変更がデプロイに影響しないことを確認してください。

  1. v1.8.x をダウンロードMongoDBダウンロード ページからのバイナリ。

  2. mongodインスタンスをシャットダウンします。

  3. 既存のバイナリを1.8 .x mongodバイナリ。

  4. MongoDB を再起動します。

1.8 .x セカンダリは1.6から複製できます。x プライマリ。

1.6 .x セカンダリは1.8から複製できません。x プライマリ。

したがって、レプリカセットをアップグレードするには、最初にすべてのセカンダリを置き換え、次にプライマリを置き換える必要があります。

たとえば、プライマリ、アービタ、および複数のセカンダリを含むレプリカセットがあるとします。 セットをアップグレードするには、次の手順を行います。

  1. アービタの場合:

    1. アービタをシャットダウンします。

    2. 1.8.x で再起動MongoDBダウンロード ページ からのバイナリ。

  2. 新しいプライマリが選出されないように 構成を変更 (任意)。

    セットのノードのシャットダウンを開始すると、新しいプライマリが選出される可能性があります。 これを防ぐために、アップグレードする前にすべてのセカンダリに優先順位を0に付与し、その後、それらを元に戻すことができます。 その方法は、次のとおりです。

    1. 現在の設定を記録します。 rs.config()を実行し、結果をテキストファイルに貼り付けます。

    2. すべてのセカンダリの優先順位が0になるように構成を更新します。 例:

      config = rs.conf()
      {
      "_id" : "foo",
      "version" : 3,
      "members" : [
      {
      "_id" : 0,
      "host" : "ubuntu:27017"
      },
      {
      "_id" : 1,
      "host" : "ubuntu:27018"
      },
      {
      "_id" : 2,
      "host" : "ubuntu:27019",
      "arbiterOnly" : true
      }
      {
      "_id" : 3,
      "host" : "ubuntu:27020"
      },
      {
      "_id" : 4,
      "host" : "ubuntu:27021"
      },
      ]
      }
      config.version++
      3
      rs.isMaster()
      {
      "setName" : "foo",
      "ismaster" : false,
      "secondary" : true,
      "hosts" : [
      "ubuntu:27017",
      "ubuntu:27018"
      ],
      "arbiters" : [
      "ubuntu:27019"
      ],
      "primary" : "ubuntu:27018",
      "ok" : 1
      }
      // for each secondary
      config.members[0].priority = 0
      config.members[3].priority = 0
      config.members[4].priority = 0
      rs.reconfig(config)
  3. 各セカンダリ :

    1. セカンダリをシャットダウンします。

    2. 1.8.x で再起動MongoDBダウンロード ページ からのバイナリ。

  4. 構成を変更した場合は、元の状態に戻します。

    config = rs.conf()
    config.version++
    config.members[0].priority = 1
    config.members[3].priority = 1
    config.members[4].priority = 1
    rs.reconfig(config)
  5. プライマリ(最後の 1.6サーバー)をシャットダウンし、1.8.x で再起動します。MongoDBダウンロード ページ からのバイナリ。

  1. バランサーをオフにします。

    mongo <a_mongos_hostname>
    use config
    db.settings.update({_id:"balancer"},{$set : {stopped:true}}, true)
  2. シャード:

  3. mongosについて:

    1. mongosプロセスをシャットダウンします。

    2. 1.8.x で再起動MongoDBダウンロード ページ からのバイナリ。

  4. 各コンフィギュレーションサーバー:

    1. コンフィギュレーションサーバー プロセスをシャットダウンします。

    2. 1.8.x で再起動MongoDBダウンロード ページ からのバイナリ。

  5. バランサーをオンにします。

    use config
    db.settings.update({_id:"balancer"},{$set : {stopped:false}})

何らかの理由で1.6に戻す必要がある場合は、上記の手順を逆方向に行います。 1.8で実行中に4 MB を超えるドキュメントを挿入していないことに注意してください(最大サイズが16 MB に増加しました)。 がある場合、サーバーがそれらのドキュメントを読み込もうとするときにエラーが発生します。

1.8を使用した後に1.6に戻る ジャーナリングは正常に機能します。ジャーナリングではデータファイルの形式は何も変更されないためです。 ジャーナリング を有効にして、 1.8 .x を実行していて、 1.6に切り替えるとします。 次の 2 つのシナリオがあります。

  • 1.8 .x で正常に シャットダウンすると、 1.6 mongod バイナリを使用して再起動するだけ。

  • 1.8 .x の場合 シャットダウンが正常に行われなかった場合、 1.8 .x を再度起動し、ジャーナル ファイルを実行させて、クラッシュ時に存在した可能性のある障害(不完全な書込み)を修正します。 次に1.8 .x をシャットダウンします 正常に実行され、 1.6 mongod バイナリを使用して再起動されます。

MongoDB は、ストレージ エンジンの高速クラッシュ回復と耐久性を確保するために、先行書き込みジャーナリングをサポートするようになりました。 ジャーナリング を有効にすると、mongod コレクション を修復する必要なく、クラッシュが発生した後にすぐに再起動できます。集計パイプラインを使用すると集計を実行できます。

スパース インデックスとは、インデックスで指定されたフィールドを含むドキュメントのみを含むインデックスです。 フィールドが欠落しているドキュメントはインデックスに表示されません。 これにより、コレクション内のドキュメントのサブセットのみを含むフィールドのインデックスのインデックス サイズを大幅に縮小できます。

カバード インデックスを使用すると、クエリがインデックスに含まれるフィールドのみを選択する場合に、MongoDB はインデックスから完全にクエリに答えることができます。

mapReduceコマンドは、既存のコレクションの段階的な更新を可能にする新しいオプションをサポートします。 以前は、mapReduce ジョブの出力は一時コレクションまたは名前付き永続コレクションに出力され、新しいデータで上書きされていました。

MapReduce ジョブの出力のいくつかのオプションが追加されました。

  • MapReduce の出力は既存のコレクションにマージできます。 reduce フェーズからの出力は、出力コレクション内の既存のキーが既に存在する場合は、置き換えます。 他のキーはコレクション内に残ります。

  • 既存のコレクションの内容を使用して出力を再削減できるようになりました。 reduce フェーズによる各キー出力は、出力コレクション内の既存のドキュメントとともに削減されます。

  • 既存の出力コレクションを MapReduce ジョブの新しい結果に置き換えることができます(以前のリリースで永続的な出力コレクションを設定するのと同じ)

  • ジョブの結果を保持せずに MapReduce をインラインで計算し、結果を呼び出し元に返すことができます。 これは、結果が8 MB に制限されることを除いて、以前のリリースで生成された一時コレクションと同様です。

詳しくは、 mapReduceドキュメントのoutフィールド オプションを参照してください。

  • より大きなチャンクを移動する場合のシャーディング移行を修正しました。

  • バックグラウンド インデックス作成で耐久性を修正しました。

  • 多数の受信接続による mongos の同時実行の問題を修正しました。

  • 1.7からのすべての変更 .x シリーズ。

  • バグ修正。

  • $rename 演算子を使用すると、ドキュメント内のフィールドの名前を変更できます。

  • db.eval() ブロックしないでください。

  • シャーディングを持つ地理クエリ。

  • mongostat --discover オプション

  • チャンク分割の強化。

  • レプリカセット ネットワークの拡張機能は、nat の背後にあります。

  • 多くのシャーディング パフォーマンスの機能強化。

  • 埋め込み配列のプリミティブに対する$elemMatchのサポートを強化しました。

  • 範囲クエリの クエリオプティマイザ の機能強化。

  • ウィンドウ サービスの機能強化。

  • レプリカセットのセットアップを改善しました。

  • $pull 配列内のプリミティブを操作します。

  • 重い挿入負荷でのシャーディング パフォーマンスの向上。

  • レプリカセットの遅延サポート。

  • local.system.replset.settings.getLastErrorDefaults (レプリカセット用)。

  • shell でのオートコンプリート。

  • 地理検索の球面距離。

  • 1.6.1と1.6.2によるすべての修正。

次へ

MongoDB とは?

項目一覧