WiredTiger を使用して MongoDB 2.6 から 3.0 に移行する方法

WiredTiger を使用して MongoDB 2.6 から 3.0 に移行する方法

MongoDB 3.0 では、と呼ばれる新しいストレージ エンジンが導入されwiredTiger、メモリとディスク領域の使用量が大幅に削減されます。

私の DB には現在約 2,000 万個のオブジェクトがあり、約 70 GB の RAM を使用しているため、この更新はハードウェアの更新を延期するのにちょうど良いタイミングで行われます。

MongoDB 2.6 の既存のインストールを 3.0 に移行し、同時に wiredTiger の利点を得るにはどうすればよいでしょうか?

ドキュメントには、MongoDB の起動を妨げる起動エラーを引き起こすオプションが言及されています。また、ファイルの場所は Ubuntu (Server 14.04 LTS) のものと一致しません。

答え1

デフォルトのインストールでは、構成ファイルは にあります/etc/mongod.conf。MongoDB のドキュメントには記載されていませんが、WiredTiger に移行する場合は、構成ファイルを 2.6 で導入された新しい YAML 形式に更新する必要もあります。
私の知る限り、このengineオプションは新しい構成形式でのみ使用できます。
古いストレージ エンジンからの移行は、データベース ダンプを作成し、mongodb をシャットダウンし、設定を変更して、ダンプを新しいストレージ エンジンにインポートすることで構成されます。

  1. バックアップを作成します。本当に。データベース ダンプが必要で、それを新しいデータベース エンジンにインポートします。

    mongodump -d db_name /backup/path/  
    
  2. mongodbサービスを停止する

    sudo service mongod stop  
    
  3. データを現在の場所から別の場所に移動します (データ ディレクトリに古いストレージ エンジンによって生成されたファイルが含まれている場合、MongoDB は起動しません)。

    sudo mv /var/lib/mongodb /var/lib/mongodb_26/
    
  4. MongoDBをバージョン3.0にアップグレード(Ubuntu に Mongodb をインストールする):

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
    echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list  
    sudo apt-get update  
    sudo apt-get install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools  
    
  5. 設定ファイルを古いバージョン (2.6 以前) から現在の YAML 形式に変換します。最低限必要なのは次のとおりです。

    storage:  
        dbPath: "/var/lib/mongodb"  
        engine: wiredTiger  
    
    systemLog:  
       destination: file  
       path: "/var/log/mongodb/mongod.log"  
       logAppend: true  
    
    net:  
        bindIp: 127.0.0.1  
        port: 27017  
        # Enable the HTTP interface (Defaults to port 28017).  
        http:  
            enabled: false  
    

    古い形式の行が残っていないことを確認してください。残っていると MongoDB は起動しません。

    構成ファイルの完全なドキュメントは次の場所にあります。http://docs.mongodb.org/v3.0/reference/configuration-options/

  6. オプションでログのバックアップを作成します。

    sudo mv /var/log/mongodb/mongod.log /var/log/mongodb/mongod_26.log
    
  7. mongodbを再起動する

    sudo service mongod start
    
  8. バックアップをロードしてデータを新しいストレージエンジンに変換します

    mongorestore /backup/location
    

すべてのデータが正常であることを確認した後、古いデータ形式のディレクトリを削除できます。

sudo rm -r /var/lib/mongodb_26/

レプリカ セットとシャード クラスターの場合は、追加の手順がいくつかあることに注意してください。http://docs.mongodb.org/v3.0/release-notes/3.0-upgrade/?_ga=1.86531032.1131483509.1428671022#change-replica-set-storage-engine-to-wiredtiger

答え2

使用方法古い設定ファイル形式、私は次のことに成功しました:

ストレージエンジン=有線タイガー

関連情報