タグ付けされた質問 「mongodb」

MongoDBは、ドキュメント指向のデータベース(NoSQLデータベースとも呼ばれます)です。

5
UNIX(mac osx)のバックグラウンドでmongodを実行するにはどうすればよいですか?
常に存在するものとして、バックグラウンドでmongodを実行したいと思います。これを行う最良の方法は何でしょうか?起動時にMySQLを実行する方法のようなもので、常にバックグラウンドで実行されています。たぶんそれは単なるbashスクリプトですが、もっと良い方法があれば聞いてみるといいでしょう。それが単なるbashの場合-それはどのように見えるでしょうか?ありがとう。

1
古いバージョンのpeclパッケージをインストールする方法
私はこのコードを持っています $passengerId = new \MongoId(oPassenger->getId()); return $this->createQueryBuilder('Device') ->update() ->multiple(true) ->field('activated')->set(false) ->field('passenger')->unsetField()->equals($passengerId) ->field('_id')->notEqual($deviceId) ->getQuery() ->execute(); これは私の開発サーバーでは問題なく動作しますが、ローカルマシンではクラッシュします。 pecl listdevで実行すると戻ります APC 3.1.13 beta amqp 1.2.0 stable intl 3.0.0 stable mongo 1.3.7 stable そして、ローカルリターンで: mongo 1.5.6 stable xdebug 2.2.5 stable 私のマシンのクラッシュメッセージは "name":"MongoException","message":"Invalid object ID"},"code":500} 私はmongoのローカルバージョンをダウングレードしようとしましたが、peclの貧弱なドキュメントではそれを理解できませんでした。たとえば、私はこれを試しました: sudo pecl upgrade -f -c channel://pecl.php.net/mongo-1.3.7 しかし、私channel does not …
29 php  mac-osx  mongodb  pecl  pear 

5
ファイルシステムでatimeをオフにする
mongoDBレプリカセットをセットアップしていますが、最初に行うべきことの1つは、ファイルシステムでatimeをオフにすることです。これを少し研究した後、私はこれを行うことに反対していませんが、私は、atimeを何に使うのか尋ねなければなりませんか?私はインターウェブを検索し、「このアプリケーションまたはこのプロセスはatimeを使用し、それをオフにするとバカになります」という種類の警告をほとんど見つけませんでしたが、本質的に妄想的な人であることを疑問に思います。 それでは、atimeを使用するものとそれをオフにすると何が壊れるのでしょうか?

2
/etc/security/limits.confソフトnproc制限は無視されるようです
私のMongoDBデータベースは、負荷がかかった状態で問題が発生し、次のエラーがログをスパムしていました。 [initandlisten] pthread_create failed: errno:11 Resource temporarily unavailable [initandlisten] can't create new thread, closing connection 「ulimit -u」または「Max processes」設定を1024に引き上げる必要があるという結論に達しました。Webフロントエンドが起動されると、使用量がそれを超える可能性があります(これを確認する方法がわかりません) 。 /etc/security/limits.confを編集して、最後の2行を追加しました(最初の2行はすでにそこにありました)。 * soft nofile 350000 * hard nofile 350000 * soft nproc 30000 * hard nproc 30000 その後、システムを再起動しました(それを実行すべきだったのですか、それともmongodサービスの再起動で十分ですか?) 再起動後、mongodプロセスのプロセス制限を確認すると、ソフト制限は無視されているようです。 $ cat /proc/2207/limits Limit Soft Limit Hard Limit Units Max cpu time …

2
MongoDBレプリカセットには少なくとも2つまたは3つのメンバーが必要ですか?
ここのドキュメントには3つあります:http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/ 「レプリカセットには3つの異なるシステムが必要です...」 一方、ここのドキュメントには次の2つが記載されています:http : //docs.mongodb.org/manual/core/replication/ 「ほとんどのレプリカセットは、2つ以上のmongodインスタンスで構成されています...」 誰が正しいか知っていますか?
16 mongodb 

2
sshトンネル経由でmongodbサーバーに接続する方法
sequelproを使用してAWSのリモートmysqlサーバーに接続するのは簡単でしたが、mongodbで同じことをするのに苦労しています。 私は次のようにコマンドラインでsshトンネルを設定しようとしました: ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com ホストをIPアドレスに置き換えて試しました ポート9999のすべてのmongodb接続を、ポート27101のホストの接続に転送するという考え方です。ただし、コマンドを実行すると: mongo --host localhost --port 9999 接続が失敗し、代わりにこれを取得します: MongoDB shell version: 2.6.0 connecting to: localhost:9999/test channel 2: open failed: connect failed: Connection timed out channel 3: open failed: connect failed: Connection timed out 2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed 2014-05-22T14:42:01.374+0300 Error: …


1
.nsおよび.0、.1、...からMongoDBデータベースを回復することは可能ですか?…ファイル?
Ubuntu 12.10にMongoDB 2.0.4をインストールしています。最近、外部からデータベースに接続する際にいくつかの問題が発生し、MongoDBが正しく起動できない原因があることがわかりました。いくつかのソースで提案されているように(StackOverflowを参照)、削除/var/lib/mongodb/mongodb.lockして実行しましたmongod --repair。これは問題を解決しませんでした。MongoDBは実行されず、ロックファイルを作成し続けますが、後で削除することはありません。ログを見ると$tmpSomething、という名前のフォルダーにアクセスできないことに気づいたので(名前が一時フォルダーを示唆しているため)、それを削除しましたが、その後はすべて動作しました... 1つしかないという事実を除いて私の/var/lib/mongodb/フォルダがまだいっぱいであるため、他のデータベースはまだそこにある間、私の目の前のデータベースの.ns .0 .1 .nかなりの量のファイル。それらをデータベースに復元する方法はありますか?(mongorestoreで試しましたが、予想どおり、これらのファイルは処理されません)。 ありがとう

5
Mongodb-ログを回転させる適切な方法
Mongoのドキュメントでは、次のことができると言っています。 -SIGUSR1シグナルを使用して、古いログの名前を変更し、現在のスイッチを切り替えます OSからlogrotateを使用する OSのlogrotate機能で古いファイルを圧縮して最も古いファイルを削除したいのですが、SIGUSR1を送信する以外にmongodプロセスに現在のログを切り替えるように指示する方法はありません。 だから私は書いた /var/log/mongodb/*.log { daily rotate 5 compress dateext missingok notifempty sharedscripts postrotate /usr/bin/killall -SIGUSR1 mongod /usr/bin/killall -SIGUSR1 mongos endscript } /etc/logrotate.d/mongoに。 そしてmongodb.log.2013-09-18T23-49-44、SIGUSR1切り替えのトレースのように、logrotateから適切な名前のログファイルと空のログファイルを取得します。後者を取り除く方法は?

8
どのハードウェアが良いMongoDBサーバーを作りますか?どこで入手できますか?
今dell.comにいて、小規模なスタートアップ向けにMongoDBデータベースを実行するサーバーを購入しているとします。文字通り、毎分数万の書き込みと読み取りを処理する必要があります(ただし、小さなオブジェクト)。あなたは2プロセッサに行きますか?RAMにもっと投資しますか? 聞いたことがあります(間違っている場合は修正してください)MongoDBはRAMで最大限の処理を行ってから、すべてをディスクにフラッシュします。そしてソリッドステートドライブ..右? ハイエンド(〜11,309ドル、2つの高価なプロセッサ、96GBのRAM)サーバーまたは2x(〜$ 6,419、2つの高価なプロセッサ、12GBのRAM)サーバーの方が良いでしょうか? デルは大丈夫ですか?(私はポルトガルの米国外にいます)

3
MongoDBとRAMに収まらないデータセットは、いくら突き詰めても
これはシステムに大きく依存しますが、任意の崖を越えてスケールし、実際のトラブルに陥る可能性はほぼ確実です。RAMとディスク領域の比率を適切にするには、どのような経験則が存在するのか興味があります。次のラウンドのシステムを計画しており、RAM、SSD、および各新規ノードの取得量に関していくつかの選択を行う必要があります。 しかし、今度はパフォーマンスの詳細について説明します! 単一のプロジェクト実行の通常のワークフロー中に、MongoDBは非常に高い割合の書き込み(70〜80%)でヒットします。処理パイプラインの2番目のステージがヒットすると、処理の前半で識別されたレコードを重複排除する必要があるため、読み取りが非常に高くなります。これは、「ワーキングセットをRAMに保持する」ためのワークフローであり、その前提に基づいて設計しています。 データセット全体は、エンドユーザーから派生したソースからのランダムクエリで継続的にヒットします。頻度は不規則ですが、サイズは通常かなり小さい(10個のドキュメントのグループ)。これはユーザー向けであるため、返信は「退屈」しきい値の3秒未満である必要があります。このアクセスパターンはキャッシュ内にある可能性がはるかに低いため、ディスクヒットが発生する可能性が非常に高くなります。 二次処理ワークフローは、数日、数週間、さらには数か月前に実行された前の処理実行の読み取り値が高く、実行頻度は低いですが、依然としてジッピーである必要があります。前の処理実行で最大100%のドキュメントにアクセスします。これを助けることができるキャッシュウォーミングの量はないと思います。 完成したドキュメントのサイズは大きく異なりますが、サイズの中央値は約8Kです。 通常のプロジェクト処理の読み取り率が高い部分は、読み取りトラフィックの分散に役立つレプリカの使用を強く示唆しています。私は別の場所で、1/10のRAM-GBからHD-GBが低速ディスクの経験則であることを読んだことがあります。高速ディスクの大まかな目安。 私は、キャッシュのすべてが実際に飛行しない方法でMongoを使用していることを知っています。そのため、このような使用に耐えられるシステムを設計する方法を検討しています。全体のデータセットは、おそらく半年以内TBの最も可能と成長を維持します。

3
110 GB以上のコレクションを削除しても、/ var / lib / mongodbディレクトリのサイズが変わらないのはなぜですか?
MongoDBとスペースの使用に問題があります。特に、私はかつてディスク上に合計110+ GBの約6億件のレコードの大規模なコレクションがありました。最近、データが古いため削除することにしました。そのため、rockmongoのWebインターフェースからコレクションを削除しました。したがって、rockmongoはコレクションを表示しませんが、ディスク使用量はまったく変わりません。 データベースをディスク上のデータベースファイルと同期するために実行する必要がある、認識していないクリーンな操作はありますか? 私は「修復」を実行しようとしましたが、システムはディスクに十分なスペースがないと不平を言います...それはすべてMongoDBによって使用されているからです。

3
node.js、mongodb、redis、本番環境でのubuntuのパフォーマンス低下、RAMは無料、CPU 100%
質問のタイトルが示すように、許容可能なパフォーマンスを達成するために、アプリケーションで何を改善できるか(またはos、ubuntuで調整できるか)を理解するのは困難です。ただし、最初にアーキテクチャについて説明します。 フロントエンドサーバーは、Ubuntu 12.04を実行する8ギガバイトのRAMを備えた8コアマシンです。アプリケーションは完全にjavascriptで記述され、node.js v 0.8.22で実行されます(一部のモジュールはノードの新しいバージョンで不満があるようです)。nginx1.4を使用して、ポート80および443から管理される8つのノードワーカーにHTTPトラフィックをプロキシしますノードクラスターAPIの使用を開始しました。socket.io 0.9.14の最新バージョンを使用して、WebSocket接続を処理します。WebSocketでは、利用可能なトランスポートとしてwebsocketとxhr-pollingのみを有効にしました。このマシンでは、Redis(2.2)のインスタンスも実行します 4ギガのRAMと2つのコアを備えたmongodb(3.6)の2番目のサーバーに永続的なデータ(ユーザーやスコアなど)を保存します。 このアプリは数か月間運用されており(数週間前まで1つのボックスで実行されていました)、1日あたり約18,000人のユーザーによって使用されています。これは、パフォーマンスの低下という主要な問題を除いて、常に非常にうまく機能しています。使用すると、各プロセスで使用されるCPUの量は、ワーカーが安定化するまで増加します(ワーカーは要求を処理しなくなります)。私は一時的に各ワーカーが使用しているCPUを1分ごとにチェックし、98%に達したら再起動します。したがって、ここでの問題は主にCPUであり、RAMではありません。socket.io 0.9.14(以前のバージョンではメモリリークが発生していました)に更新したため、RAMはもう問題ではないので、特にCPUが急速に成長するため、メモリリークの問題であるとは思えません(各ワーカーを1日に10〜12回再起動する必要があります!)。使用中のRAMも同様に大きくなり、しかし、非常にゆっくりと、使用の2〜3日ごとに1ギガ、そして奇妙なことは、アプリケーション全体を完全に再起動してもリリースされないことです。サーバーを再起動した場合にのみリリースされます!これは本当に理解できない... 私は驚くべきnodeflyを発見したので、ようやく本番サーバーで何が起こっているのかを見ることができ、数日からデータを収集しています。誰かがチャートを見たいなら、私はあなたにアクセスを与えることができますが、基本的に私は80から200の同時接続を持っていることがわかります!node.jsが数百のリクエストではなく、数千のリクエストを処理することを期待していました。また、HTTPトラフィックの平均応答時間は500〜1500ミリ秒の間で変動しますが、これは非常に大きいと思います。また、1300人のユーザーがオンラインになっているこの瞬間に、これは「ss -s」の出力です。 Total: 5013 (kernel 5533) TCP: 8047 (estab 4788, closed 3097, orphaned 139, synrecv 0, timewait 3097/0), ports 0 Transport Total IP IPv6 * 5533 - - RAW 0 0 0 UDP 0 0 0 TCP 4950 4948 2 INET …

2
1つのサーバー上の複数のMongos
私はシャーディングについて話していません。私たちは持っていたテストサーバー(Linux)をし、1すでにあるmongo別のプロジェクト/サブチームに属しています。実行することが可能である複数の独立インスタンスのmongodbあるマシン上の?どうすればできますか?
11 mongodb 

3
これはMongoDBの有効なバックアップ戦略ですか?
約10GBのMongoDBデータベースを備えた単一の専用サーバーがあります。毎日バックアップを行う必要がありますが、データベースを停止することはできません。単一のディスク(異なるポートで実行されているmongodの2つのインスタンス)でレプリカセットを使用し、セカンダリをオフラインにして、データファイルをS3(ジャーナリングがオンになっている)などのオフサイトストレージにバックアップすることは可能ですか?または、マスター/スレーブの使用はレプリカセットよりも優れているでしょうか? これは実行可能ですか?その場合、どのような問題が発生する可能性がありますか?そうでない場合、これを機能させるにはどうすれば概念化できますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.