2.3、コピー(レプリカセット)
コピーとは何ですか
- コピーは、複数のサーバ上のデータの冗長バックアップデータとストアのコピーを提供し、データの可用性を向上させ、データのセキュリティを保証することができます
- また、ハードウェアの障害やサービスの中断からデータを復元することができますコピー
なぜあなたは、コピーしたいです
- データのバックアップ
- データの災害復旧
- 別々の読み取りと書き込み
- ハイ(24 * 7)データの可用性
- いいえメンテナンス・ダウンタイムありません
- レプリカセットは、アプリケーションに対して透過的です
作品のコピー
- レプリケーションは、少なくとも二つのノードA、Bを必要とします...
- マスターノードはクライアントの要求を処理する責任があります
- 残りは、ノードからプライマリノードにデータをコピーするための責任があります
- 途中のノードとの共通:マスター・スレーブ、マスター・マルチスレーブ
- マスターノードから取得したその上に記録されたすべての操作マスタノードは、定期的にポーリングし、これらの操作は、マスターノードのノードからのデータの整合性を確保するために、データの独自のコピーでこれらの操作を実行します
- 保護するノードからのデータの一貫性を有するマスタノードが行うデータインタラクション
コピー機能
- Nクラスタノード
- マスタノードとして任意のノードとすることができます
- プライマリサイトのすべての書き込み操作
- 自動フェイルオーバー
- 自動リカバリ
コピーノードを設定します
- 次のステップは、複数の端末のウィンドウを開く必要があり、かつ複数のホストにUbuntuのを接続することができ、ビット乱雑になり、xshellで達成することが推奨されます
- STEP1:データベースディレクトリのT1、T2を作成します。
- デスクトップディレクトリのデモンストレーションでは、他のディレクトリにも権利に注意を払うことができます
mkdir t1
mkdir t2
- STEP2:使用のmongodを起動するには、次の形式、名前replSetに一貫性があることに注意
mongod --bind_ip 192.168.196.128 --port 27017 --dbpath ~/Desktop/t1 --replSet rs0
mongod --bind_ip 192.168.196.128 --port 27018 --dbpath ~/Desktop/t2 --replSet rs0
- STEP3:サーバーが192.168.196.128:27017基づいて提供メインサーバーを接続します
mongo --host 192.168.196.128 --port 27017
rs.initiate()
rs.status()
rs.add('192.168.196.128:27018')
- STEP7:以下のように正常に設定されたレプリカ、現在の状態を追加します:
mongo --host 192.168.196.128 --port 27018
use test1
for(i=0;i<10;i++){db.t1.insert({_id:i})}
db.t1.find()
- STEP10:サーバーからINSERTクエリで
- 注:サーバーのニーズからの読み出し動作がrs.slaveOk(設定する場合)
rs.slaveOk()
db.t1.find()
その他のヘルプ
rs.remove('192.168.196.128:27018')
- 再起動し、メインサーバー消灯、としたら、サーバーから元のサーバからなり、(本来はサーバーから)新たに起動したサーバは、サーバから行くでしょう