English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MongoDB replica è il processo di sincronizzazione dei dati su più server.
La replica fornisce copie di backup dei dati, memorizza copie dei dati su più server, migliorando la disponibilità dei dati. E può garantire la sicurezza dei dati.
La replica ti permette anche di ripristinare i dati da guasti hardware e interruzioni di servizio.
La replica di MongoDB richiede almeno due nodi. Uno è il nodo principale, responsabile della gestione delle richieste del client, gli altri sono nodi secondari, responsabili della replica dei dati sul nodo principale.
Le combinazioni comuni dei vari nodi di MongoDB sono: uno per uno, uno per molti.
Il nodo principale registra tutte le operazioni su oplog, i nodi secondari周期icamente interrogano il nodo principale per ottenere queste operazioni, poi eseguono queste operazioni sui loro dati di replica, garantendo che i dati dei nodi secondari siano uniformi con quelli del nodo principale.
Il diagramma della struttura di replica di MongoDB è come segue:
Nella struttura del diagramma sopra, il client legge i dati dal nodo principale, quando il client scrive i dati nel nodo principale, Il nodo principale e il nodo secondario si scambiano dati per garantire l'uniformità dei dati.
In questo tutorial utilizziamo lo stesso MongoDB per fare l'esperimento di master-slave di MongoDB. Esegui i passaggi seguenti:
1. Chiudi il server MongoDB in esecuzione.
Ora avviamo mongoDB specificando l'opzione --replSet. Il formato di sintassi di base per --replSet è il seguente:
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
Gli esempi di cui sopra avviano un esempio MongoDB chiamato rs0, con la porta 27017.
Dopo l'avvio, apri la finestra dei prompt dei comandi e connettiti al servizio mongoDB.
Usa il comando rs.initiate() nel client MongoDB per avviare un nuovo cluster di replica.
Possiamo utilizzare rs.conf() per visualizzare la configurazione del cluster di replica
Visualizza lo stato del cluster di replica utilizzando il comando rs.status()
Per aggiungere membri al cluster di replica, dobbiamo utilizzare più server per avviare il servizio mongo. Accedi al client MongoDB e utilizza il metodo rs.add() per aggiungere membri al cluster di replica.
>rs.add(HOST_NAME:PORT)
假设你已经启动了一个名为mongod1.net,端口号为27017的Mongo服务。 在客户端命令窗口使用rs.add()命令将其添加到副本集中,命令如下所示:
>rs.add("mongod1.net:27017") >
MongoDB中你只能通过主节点将Mongo服务添加到副本集中, 判断当前运行的Mongo服务是否为主节点可以使用命令db.isMaster()。
MongoDB的副本集与我们常见的主从不同,主从在主机宕机后所有服务将停止,而副本集在主机宕机后,副本会接管主节点成为主节点,不会出现宕机的情况。