mongodb3.4.4レプリカセットのインストール、スライス、およびいくつかの問題(一)
余計なことは言わない
3台の機械.
host1,host2,host3
公式インストールドキュメントの表示https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
ソースファイルの編集
vim/etc/yum.repos.d/mongodb-org-3.4.repo
インストール
私は3台の仮想マシンでやったので、ホストは実は1つなので、3つのポートを配置しました.
注意:mongodのプロファイルはyamlファイルフォーマットに従います!
基本的にはデフォルト構成で、dbdataの位置とlogディレクトリは具体的な状況を見て、適宜修正して、bindipのデフォルトは開いて、ログアウトして、さもなくばmongoはローカルアクセスしかできません
開始
mongod -f/etc/mongod.conf
このとき任意に1台のmongodに入ってコピーセットの初期化を行うことができます
mongoアクセス、デフォルトは27017ポートですが、ポートを変更するとmongo ip:port方式になります
まず構成をロード
レプリカセットの初期化
ここで注意すべき点は、各mongodbの間の連通性を保証し、各mongoと空のデータであることである.そうしないと、レプリカセットを作成する際にエラーが発生し、データベースが空でない場合は、まずレプリカセットを削除し、dbを削除しなければならない.dropDatabase()
最終構成の有効化
日常的な横方向の拡張と伸縮、およびプライマリノードの手動構成
選挙のアルゴリズム:
mongodbクラスタの選択局アルゴリズムは実はzookeeperとあまり差がなく、違いはbullyアルゴリズムを使用していることであり、mongodはまず誰が最後にデータ操作を行ったのかを比較し、つまり、誰のデータが最新で、データが同じであれば、誰が最も短い時間で主ノードになることができるのかを比較し、選挙過程はzookeeperと同じで、k-vとは異なるだけである.
また,クラスタの選挙過程において,あるスレーブノードをマスターノードにしたくない場合には,
3台の機械.
host1,host2,host3
公式インストールドキュメントの表示https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
ソースファイルの編集
vim/etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB
Repositorybaseurl=gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
インストール
yum install -y mongodb-org
私は3台の仮想マシンでやったので、ホストは実は1つなので、3つのポートを配置しました.
注意:mongodのプロファイルはyamlファイルフォーマットに従います!
[root@vultr ~]# cat /etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
port: 27017
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
#security:
#keyFile = /opt/key/autokey
#operationProfiling:
#replication:
replication:
oplogSizeMB: 1000
replSetName: rstest
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
基本的にはデフォルト構成で、dbdataの位置とlogディレクトリは具体的な状況を見て、適宜修正して、bindipのデフォルトは開いて、ログアウトして、さもなくばmongoはローカルアクセスしかできません
開始
mongod -f/etc/mongod.conf
このとき任意に1台のmongodに入ってコピーセットの初期化を行うことができます
mongoアクセス、デフォルトは27017ポートですが、ポートを変更するとmongo ip:port方式になります
まず構成をロード
config={_id:"rstest",members:[{_id:0,host:"host1:port"},{_id:1,host:"host2:port"},{_id:2,host:"host3:port"}]}
##_id
レプリカセットの初期化
rs.initiate(config)
ここで注意すべき点は、各mongodbの間の連通性を保証し、各mongoと空のデータであることである.そうしないと、レプリカセットを作成する際にエラーが発生し、データベースが空でない場合は、まずレプリカセットを削除し、dbを削除しなければならない.dropDatabase()
最終構成の有効化
rs.reconfig(config)
日常的な横方向の拡張と伸縮、およびプライマリノードの手動構成
PRIMARY> rs.add("127.0.0.1:27018"); //
PRIMARY> rs.remove("127.0.0.1:27018"); //
rs.reconfig(config)
rs.conf()//
config=rs.conf() //
config.members[1].priority = N // N = 1 100
rs.reconfig(config) // , host2
選挙のアルゴリズム:
mongodbクラスタの選択局アルゴリズムは実はzookeeperとあまり差がなく、違いはbullyアルゴリズムを使用していることであり、mongodはまず誰が最後にデータ操作を行ったのかを比較し、つまり、誰のデータが最新で、データが同じであれば、誰が最も短い時間で主ノードになることができるのかを比較し、選挙過程はzookeeperと同じで、k-vとは異なるだけである.
また,クラスタの選挙過程において,あるスレーブノードをマスターノードにしたくない場合には,
rs.freeze(120) // , 120 ,