Mongoのクラスター(コピー)は、記録のプロセスを設定しました

Mongoのは最近のクラスタを設定し、記録のための要約は回想します。
全体のプロセスは、主に以下の二つの記事を参照してくださいが、プロセスがスムーズではない、いくつかの問題は、記録する必要があります。
https://www.cnblogs.com/dba-devops/p/7130710.html
https://blog.csdn.net/thinktik/article/details/82118190

簡単かつ迅速に、他のサーバーにサーバーは、次の手順、最終的なコピーscpコマンドを選択します。
私はバイナリパッケージはLinuxにアップロード最初のTGZパッケージは、その後、解凍してインストールを選択しました。
そして、フォルダのデータ、ログなどを作成し、データモンゴ、ログ、設定ファイルを保存するために使用されています。
新しいファイルは、ディレクトリタッチmongo.logログインする
etcディレクトリのmongo.confの下に新しいファイルを

エディタのvi mongo.conf
設定で入力します。

= DBPATHは/ usr / MongoDBの/ データ
ログ・パス =は/ usr / MongoDBの/ログ/ mongo.log 
logappend = trueに
。テクノロジーINFORMATION = trueに
静か = trueに
ポート = 27017 
bind_ip = 0.00.0   #0.5ではなく0.0 にアクセスするすべてのIP 0.0に耳を傾けます
フォーク = trueに
設定#名レプリカ
replset = TCL

第一の構成以来、私は上記の私の最終的な構成、記事へのテキスト参照の多くを書き込むように構成されなければならないのか分かりません。起動しないモンゴにつながるいくつかの構成の他の記事は、キーワードの具体的な構成でエラーがように認識されていません。それの特定の環境に固有の治療法。その後、我々はただのmongoを学んでいる特定の構成に関連する必要があります。上述した基本的なデータ・パス、ログ・パスは、バックグラウンドなどで実行するかどうかをモード、ポートを追加します。

便宜上、モンゴの環境変数は、それを設定するには

#java 
輸出JAVA_HOME =は/ usr / javaの/ jdk1。8 .0_181- Clouderaのの
輸出CLASSPATH =。$のCLASSPATH:$ JAVA_HOME / libに
輸出PATH = $ PATHに:$ JAVA_HOME / ビン
輸出PATH = $ PATHに:は/ usr /のMongoDB / detailFileMongoDBv4。0 /:は/ usr /のMongoDB / detailFileMongoDBv4。0 / binに

問題が発生し、突然コマンドが見つかりませんことを示唆し、さまざまなLinuxコマンドの失敗を発見しました。
その理由は、システム環境変数の故障につながる、環境変数書き込みの問題です。具体的な解決策の多くの記事が説明してきた、コンテンツを検索することは容易です。それらを繰り返しません。

Mongoのは、別のサーバーにファイルをコピーするためにscpコマンドを使用して、環境変数を変更します。
Mongoのサーバを起動します。Mongoのファイルディレクトリの下のbinディレクトリに移動し、
./mongod -f /usr/mongodb/etc/mongo.conf
(つまりmongo.conf独自の設定の上、である)-f使用する設定ファイルを指定し、モンゴを開始します。

ステータスを表示するには、psを使用することができます正常に起動した後、
[ルートの@ master01ビン]#PSは-ef | grepをのMongoDB
ルート28412 7588 0 9:54のPTS / 0 =自動MongoDBの--color午前〇時00分00秒のgrep
17932 1 0 Aug30 00ルート? :18:02 ./mongod -f /usr/mongodb/etc/mongo.conf


次に、私は、モンゴ内にデータを書き込む準備ができて記事の手順に従います。

コマンド:モンゴモンゴサーバー、入力した
コピーセットを作成するように設定1、
設定= {
    "TCL"、 "_id"
    "メンバー":[
      {
        "_id":0、
        "ホスト":「xxx.xx.xx.xx:27017を"
      }、
      {
        " _id ":1、
        "ホスト":" xxx.xx.xx.xx:27017 "
      }、
      {
        " _id ":2、
        "ホスト":" xxx.xx.xx.xx:27017 "
      }
    ]  
  }

2、レプリカセットの初期化
> rs.initiate(設定)を
この時点で、「OK」が表示される:1 ,,成功、失敗、その後、ヒントがERRORMSGます。正常に設定が成功するために設定されたレプリカを表しています。
図3に示すように、本機からの電流モンゴ、我々は、手動でホストに設定することができ
TCLを二次> rs.isMaster()
4、レプリカ設定状態を参照
TCL:PRIMARY> rs.statusを()

図5は、検証同期
#ライブラリとマスタライブラリを構築し、データテーブルに挿入
TCL:; PRIMARY>はTESTDBを使用
TESTDBにDBを交換
:PRIMARY> db.synctable.insert({名:「確認」})TCL;
しかし、Iサイドの実行に失敗しました。ヒント異常が--configsvr上でユーザーデータベースを作成することはできません 、インスタンス「
具体的な理由はこれのmongoプロセスの再起動を終了することを決定し、プラスmongo.conf時間が変更されている[小さなお友達歓迎補正を知るためにそこにある]、理解されていません。

次の卵の痛みの事が起こった、私はMongoのサービスを閉鎖したいのですが、理由はMongoの理解していない、直接殺す古い方法に十分な注意を払っていない-9。今回は悪い、モンゴは、最大取得することはありません。エラー時に開始:
サーバーに127.0.0.1:27017のsrc /モンゴ/シェル/ mongo.jsを接続することができませんでした:91
、その後異常は、このプロセスが唯一見つけるために、ということを理解閉じアプローチモンゴを検索し、モンゴを殺すことはできません-9重要。

オンラインアプローチのほとんどは、データ内のファイルと同様に、起動する再指定されたデータディレクトリの方法削除mongod.lockです:
./mongod --dbpath =は/ usr / local / MongoDBの/ data / dbで/を、
このように実際に開始することができますしかし、現在のウィンドウは確かではない普通の古い方法として、閉じられています。
この記事では、上記のアプローチをカバーする詳細な基準として:https://blog.csdn.net/wangli61289/article/details/44459467

まず、データでmongod.lockファイルは、最初に削除する必要があります。:その後、修理、ショーを開始するために指定されたプロファイルの道を開始
./mongod -f /usr/mongodb/etc/mongo.conf --repairを

あなたが設定ファイル修復開始を指定しない場合は、次のように、例外が存在します:エラー、/モンゴ/データにデフォルトのデータディレクトリをモンゴので、このディレクトリを見つけることができません。
'initAndListenで例外:NonExistentPath:データディレクトリ/データ/見つからないDB、終端'。

そこでは、管理データベースに切り替えるようにしてください、オフモンゴ、その後、シャットダウン。https://www.cnblogs.com/gaopeng527/p/5117188.html
> ADMINを使用して、
DBのADMINに切り替え
> db.shutdownServer();
水- 11月14日6時07分33秒DBClientCursor ::のinit()を呼び出し失敗
水曜日、11月{シャットダウンCMD:1.0}のADMIN $:クエリは、午前6時07分33秒14を失敗しました。へ:127.0.0.1:27017
サーバダウン...べきである
水・-11月14日午前6時07分33秒127.0.0.1:27017再接続を試行
水曜日、11月に127.0.0.1:27017が失敗した14 6時07分33秒再接続は、接続couldntのサーバー127.0.0.1:27017。

 

データの同期をテストするために続けて、データがメインライブラリで書かれている:[https://blog.csdn.net/thinktik/article/details/82118190から抜粋]

#ライブラリとマスタライブラリを構築し、データテーブルに挿入
TCL:PRIMARY> TESTDBを使用し、
TESTDBにDBを交換
TCL:;:PRIMARY> db.synctable.insert({ "確認"名})
WriteResult({ "nInserted" :. 1 })


#ライブラリから入力します

#エラー、正常な。放出; SECONDARYの読み取りおよび書き込みを許可されていないためrs.slaveOk()を実行してもよい
SECONDARY>:TCL
TCL:SECONDARY>表示DBS;
2018-08-27T14:13である:0800 + 17.963 Eクエリを[JS]エラー:listDatabasesに失敗しました: {
  "operationTime":タイムスタンプ(1535350391 ,. 1)、
  "OK":0、
  "のErrMsg": "マスターと未slaveOk = falseに"、
  "コード":13435、
  "コードネーム": "NotMasterNoSlaveOk"、
  "$ clusterTime": {
    "clusterTime":タイムスタンプ(1535350391 ,. 1)、
    "署名":{
      "ハッシュ":BINDATA(0、 "AAAAAAAAAAAAAAAAAAAAAAAAAAA =")、
      "キーID":NumberLong(0)
    }
  }
}。


shellHelper.show@src/mongo/shell/utils.js:876:19
shellHelper@src/mongo/shell/utils.js:766:15
@(shellhelp2):1:1

 


#解除限制
TCL:SECONDARY> rs.slaveOk();
TCL:SECONDARY>ショーDBS。
管理者0.000ギガバイト
コンフィグ0.000ギガバイト
ローカル0.000ギガバイト
TESTDB 0.000ギガバイトの
TCL:SECONDARY>使用します。testdb;
TESTDB DBへの切り替え
TCL:SECONDARY> db.synctable.findを();
{ "_id":のObjectId( "5b8395ae80365b296a69ddc0")、 "名前": "验证"}

 

おすすめ

転載: www.cnblogs.com/dxxdsw/p/11445931.html