Mongodbのデータフォルダにデータベースを設置しています。このデータベースにアクセスするには、通常以下のコマンドを実行します
mongod --dbpath "C:\program files\mongodb\data" --port 27017
現在、データベースを複製しようとしています。プライマリデータベースを作成するには、コマンドを実行します
mongod --port 27017 --dbpath "C:\Program Files\MongoDB\data" --replSet replicaSetMGL --smallfiles --oplogSize 128
Mongodbフォルダーに2つの空のフォルダーをreplicaSet1とreplicaSet2として作成しました。次に、ポート番号のレプリカセットを作成します。 27018、以下のコマンドを別の端末で実行しました。
mongod --port 27018 --dbpath "C:\Program Files\MongoDB\replicaSet1" --replSet replicaSetMGL --smallfiles --oplogSize 128
これは機能していません(エラーをスロー):
C:\Users\well come>mongod --port 27018 --dbpath "C:\Program Files\MongoDB\replic
aSet1" --replSet replicaSetMGL --smallfiles --oplogSize 128
2017-06-12T17:25:33.164+0530 I CONTROL [initandlisten] MongoDB starting : pid=6
936 port=27018 dbpath=C:\Program Files\MongoDB\replicaSet1 64-bit Host=hp
2017-06-12T17:25:33.164+0530 I CONTROL [initandlisten] targetMinOS: Windows 7/W
indows Server 2008 R2
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] db version v3.4.4
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] git version: 88839051587
4a9debd1b6c5d36559ca86b44babd
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL
1.0.1u-fips 22 Sep 2016
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] allocator: tcmalloc
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] modules: none
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] build environment:
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] distmod: 2008plus-ss
l
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] distarch: x86_64
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] target_Arch: x86_64
2017-06-12T17:25:33.165+0530 I CONTROL [initandlisten] options: { net: { port:
27018 }, replication: { oplogSizeMB: 128, replSet: "replicaSetMGL" }, storage: {
dbPath: "C:\Program Files\MongoDB\replicaSet1", mmapv1: { smallFiles: true } }
}
2017-06-12T17:25:33.166+0530 I - [initandlisten] Detected data files in C
:\Program Files\MongoDB\replicaSet1 created by the 'wiredTiger' storage engine,
so setting the active storage engine to 'wiredTiger'.
2017-06-12T17:25:33.167+0530 I STORAGE [initandlisten] wiredtiger_open config:
create,cache_size=3557M,session_max=20000,eviction=(threads_min=4,threads_max=4)
,config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal
,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,lo
g_size=2GB),statistics_log=(wait=0),
2017-06-12T17:25:34.184+0530 W STORAGE [initandlisten] Detected configuration f
or non-active storage engine mmapv1 when current storage engine is wiredTiger
2017-06-12T17:25:34.185+0530 I CONTROL [initandlisten]
2017-06-12T17:25:34.185+0530 I CONTROL [initandlisten] ** WARNING: Access contr
ol is not enabled for the database.
2017-06-12T17:25:34.185+0530 I CONTROL [initandlisten] ** Read and wri
te access to data and configuration is unrestricted.
2017-06-12T17:25:34.186+0530 I CONTROL [initandlisten]
2017-06-12T17:25:34.308+0530 I FTDC [initandlisten] Initializing full-time d
iagnostic data capture with directory 'C:/Program Files/MongoDB/replicaSet1/diag
nostic.data'
2017-06-12T17:25:34.447+0530 I REPL [initandlisten] Did not find local voted
for document at startup.
2017-06-12T17:25:34.448+0530 I REPL [initandlisten] Did not find local repli
ca set configuration document at startup; NoMatchingDocument: Did not find repl
ica set configuration document in local.system.replset
2017-06-12T17:25:34.451+0530 I NETWORK [thread1] waiting for connections on por
t 27018
OK ..なんとかミックスしたようです。つまり、「C:\ program files\mongodb\data」にmongodbがあり、mongodbを3つのノードのレプリカセットに変換する必要があります。最初に、そのmongodプロセスを_--replSet replicaSetMGL
_パラメータで開始します。 (mongo -programを使用して)ログインし、コマンドrs.initiate()
を実行します。
次に、ディレクトリ「C:\ Program Files\MongoDB\replicaSet1」からすべてのファイルを削除します(ログファイルから、dbファイルが混在していることを確認できるため(mmapv1とWiredTiger)。それらのパラメーターでそのノードを開始します。
最初のノードmongoに戻り、コマンドrs.add("localhost:27018")
を指定して、そのノードをレプリカセットに追加します。コマンドrs.status()
を使用すると、レプリカセットのステータスを確認できます。
これらの手順を繰り返して、RSに3番目のノードを追加します。