1) Conceptos básicos
La replicación puede ser utilizado para lograr la escalabilidad, la sostenibilidad / fiabilidad y aislamiento.
La replicación se utiliza normalmente para evitar un fallo de hardware o corrupción de base de datos, al tiempo que proporciona flexibilidad para otras actividades de mantenimiento de copia de seguridad y tener un impacto significativo, lo que resulta en poco o ningún efecto en el sistema solamente.
Replicación incluyen: replicación maestro / esclavo, el amo / replicación maestro, par de replicación.
2) servidor
Tipo de servidor:
Maestro: Los datos de origen de la copia establecidos dentro de un tiempo específico. El único objetivo es copiar los nodos pueden ser escritos, y todos los demás nodos de tener una copia de sus datos aquí.
servidor secundario: un servidor principal tiene una datos no miembro, que teóricamente podría convertirse en el servidor principal. Un nodo se lee, mientras que copia datos desde el servidor primario en tiempo real, lo más cerca posible.
servidor de Arbitraje: El arbitraje es un nodo de servidor no contiene datos, si el número de copias de los miembros de la iniciativa enfoque es par, se utiliza para proporcionar a los miembros activos adicionales. No se emitió el voto decisivo o directamente a determinar qué nodo es el servidor maestro, pero participará como miembros de una primaria, que decidió convertirse en el nodo del servidor primario. servidor de arbitraje se puede utilizar para evitar el "cerebro dividido" problema.
3) en profundidad oplog estudio
oplog (registro de la operación) es una colección de un tamaño fijo, mantiene la instancia del servidor principal para realizar cambios en el registro de base de datos, las operaciones objetivo de rehacer en el servidor secundario para asegurar que la base de datos en un estado consistente.
oplog generalmente tiene un tamaño fijo.
Si no se ha creado instancia actual oplog, utilice la opción --oplogSize arranque se puede ajustar el tamaño oplog. Linux y sistemas Windows64 bits, ajuste por defecto es oplogSize 5% del espacio disponible en el disco, un mínimo de 1 GB, hasta 50 GB.
Al calcular oplog crítica de tamaño apropiado, teniendo en cuenta la frecuencia de actualización de las bases de datos en el servidor principal. Mediante la realización de comandos db.printReplicationInfo () para obtener algún área oplog tamaño de referencia.
4) aplicar un conjunto de replicación
Un conjunto de copia por el servidor principal, o una pluralidad de servidores de servidores de arbitraje secundarias.
Copiar el sistema también proporciona a los miembros pasivos y activos de los miembros. Cuando el servidor principal actual no está disponible, el servidor pasivo no participa en la elección del nuevo servidor primario, sino que puede votar en contra de la calificación servidor primario de un miembro.
4-1) La creación de un conjunto de replicación
Por lo general se utiliza cuando el conjunto de amplitud es el nombre de host. Usted puede encontrar el nombre de host actual mediante el comando hostname.
4-2) para iniciar miembro de conjunto de réplicas
$ Mkdir -p / dp / Activo 1 / datos (activo)
$ Mongod --dbpath / db / Activo 1 / 27.021 de datos --port -replSet testset
$ Mkdir -p / dp / passive1 / datos (pasivo)
$ Mongod --dbpath / db / Activo 1 / datos --port 27022 -replSet testset
Inicialización conjunto de replicación:
rs.initiate ()
4-3) añadir un servidor a un conjunto de replicación
rs.add ( "[hostname]: 27021")
Use rs.status () puede supervisar el progreso.
Si necesita copiar el archivo de configuración y modificarlo se puede utilizar:
conf = rs.conf ()
Si desea configurar como nodos ocultos, y la prioridad es 0, por lo que no será servidor basado elegido, el comando funciona de la siguiente manera (con el tercer elemento, por ejemplo):
conf.members [2] .hidden = true
conf.members [2] .priority = 0
conf.members [2] .votes = 0
El nuevo archivo de configuración como argumento, se puede hacer rs.reconfig () de comandos, rs.reconfig (conf).
4-4) Agregar servidor de arbitraje
$ Mkdir -p / dp / arbiter1 / datos (pasivo)
$ Mongod --dbpath / db / arbiter1 / datos --port 27023 -replSet testset -Resto
Uso rs.addArb () comando para agregar un nuevo servidor de quórum:
rs.addArb ( "[hostname]: 27023")
4-5) cadena conjunto de replicación
cadena de juego de copias en MongoDB es el comportamiento por defecto
conf.chainingAllowed = false
4-6) gestionar el conjunto de replicación
Uso rs.Status () ejemplo de detección de estado
Uso rs.stepDown () para forzar nuevas elecciones. Utilice este comando para forzar al servidor host para salir 60 segundos; el comando forzará a la elección de un nuevo maestro. rs.stepDown de comandos () también tiene dos parámetros opcionales, el primero se utiliza para determinar los stepDownSeconds servidor maestro actual prohibida elecciones, cuando dominado por mucho tiempo el servidor de nuevo. La segunda es la representación catchUpPerid antes de las elecciones el nuevo servidor principal debe esperar durante largos segundos antes de copiar.
Uso db.isMaster () para determinar si un servidor basado en miembro.