Docs Menu
Docs Home
/
Manual de base de datos

Notas de versión de MongoDB 1.8

MongoDB 1.8 es una versión de producción incremental estándar y funciona como un reemplazo directo para MongoDB 1.6, excepto:

Lea todas las notas de la versión antes de actualizar y asegúrese de que ningún cambio afecte su implementación.

  1. Download the v1.8.x binaries from the MongoDB Download Page.

  2. Apague su mongod instancia.

  3. Reemplace el binario existente con el 1.8 mongod binario.x.

  4. Reinicia MongoDB.

1.8 Los secundarios.x pueden replicarse desde los 1.6 primarios.x.

1.6.x los nodos secundarios no pueden replicar de 1.8.x nodos primarios.

Por lo tanto, para actualizar un conjunto de réplicas primero debes reemplazar todos los secundarios y luego el principal.

Por ejemplo, supongamos que tiene un conjunto de réplicas con un servidor principal, un árbitro y varios servidores secundarios. Para actualizar el conjunto, haga lo siguiente:

  1. Para el árbitro:

    1. Apaga el árbitro.

    2. Reinícielo con el 1.8 binario.x desde la página de descarga de MongoDB.

  2. Cambie su configuración (opcional) para evitar la elección de una nueva primaria.

    Es posible que, al empezar a desactivar miembros del conjunto, se elija un nuevo primario. Para evitarlo, puede asignar a todos los secundarios una prioridad de 0 antes de actualizar y luego volver a cambiarlos. Para ello:

    1. Registra tu configuración actual. Ejecuta y pega los resultados en un archivo de rs.config() texto.

    2. Actualice su configuración para que todos los secundarios tengan prioridad 0. Por ejemplo:

      config = rs.conf()
      {
      "_id" : "foo",
      "version" : 3,
      "members" : [
      {
      "_id" : 0,
      "host" : "ubuntu:27017"
      },
      {
      "_id" : 1,
      "host" : "ubuntu:27018"
      },
      {
      "_id" : 2,
      "host" : "ubuntu:27019",
      "arbiterOnly" : true
      }
      {
      "_id" : 3,
      "host" : "ubuntu:27020"
      },
      {
      "_id" : 4,
      "host" : "ubuntu:27021"
      },
      ]
      }
      config.version++
      3
      rs.isMaster()
      {
      "setName" : "foo",
      "ismaster" : false,
      "secondary" : true,
      "hosts" : [
      "ubuntu:27017",
      "ubuntu:27018"
      ],
      "arbiters" : [
      "ubuntu:27019"
      ],
      "primary" : "ubuntu:27018",
      "ok" : 1
      }
      // for each secondary
      config.members[0].priority = 0
      config.members[3].priority = 0
      config.members[4].priority = 0
      rs.reconfig(config)
  3. Para cada secundaria:

    1. Apague el secundario.

    2. Reinícielo con el 1.8 binario.x desde la página de descarga de MongoDB.

  4. Si cambió la configuración, vuelva a su estado original:

    config = rs.conf()
    config.version++
    config.members[0].priority = 1
    config.members[3].priority = 1
    config.members[4].priority = 1
    rs.reconfig(config)
  5. Apague el servidor principal (el 1.6 servidor final) y luego reinícielo con el 1.8 binario.x desde la página de descarga de MongoDB.

  1. Apague el balanceador:

    mongo <a_mongos_hostname>
    use config
    db.settings.update({_id:"balancer"},{$set : {stopped:true}}, true)
  2. Para cada fragmento:

  3. Para mongos cada:

    1. Cierre el mongos proceso.

    2. Reinícielo con el 1.8 binario.x desde la página de descarga de MongoDB.

  4. Para cada servidor de configuración:

    1. Apague el proceso del servidor de configuración.

    2. Reinícielo con el 1.8 binario.x desde la página de descarga de MongoDB.

  5. Encienda el balanceador:

    use config
    db.settings.update({_id:"balancer"},{$set : {stopped:false}})

Si por alguna razón necesita volver a 1.6, siga los pasos anteriores a la inversa. Asegúrese de no haber insertado ningún documento de más de 4MB mientras se ejecuta en 1.8 (donde el tamaño máximo ha aumentado a 16MB). De ser así, recibirá errores cuando el servidor intente leer esos documentos.

Volver a 1.6 después de usar 1.8 el registro en diario funciona correctamente, ya que no modifica el formato del archivo de datos. Supongamos que está 1.8 ejecutando.x con el registro en diario habilitado y decide volver 1.6 a. Existen dos escenarios:

  • Si apaga limpiamente con 1.8.x, simplemente reinicie con el binario mongod 1.6.

  • Si 1.8.x se cerró incorrectamente, reinicie 1.8.x y deje que los archivos de registro se ejecuten para corregir cualquier daño (escrituras incompletas) que pudiera haber existido al momento del fallo. Luego, cierre 1.8.x correctamente y reinicie con el binario de mongod 1.6.

MongoDB ahora admite el registro anticipado de escritura para facilitar la recuperación rápida ante fallos y la durabilidad del motor de almacenamiento. Con el registro habilitado, se mongod puede reiniciar rápidamente un tras un fallo sin necesidad de reparar las colecciones. Una canalización de agregación permite realizar la agregación.

Los índices dispersos son índices que solo incluyen documentos que contienen los campos especificados. Los documentos que no tengan el campo no aparecerán en el índice. Esto puede reducir significativamente el tamaño del índice en el caso de índices con campos que contienen solo un subconjunto de documentos dentro de una colección.

Los índices cubiertos permiten a MongoDB responder consultas completamente desde el índice cuando la consulta solo selecciona campos que contiene el índice.

El comando admite nuevas opciones mapReduce que permiten actualizar incrementalmente las colecciones existentes. Anteriormente, un trabajo de MapReduce podía generar datos en una colección temporal o en una colección permanente con nombre, que se sobrescribía con nuevos datos.

Ahora tiene varias opciones para la salida de sus trabajos de MapReduce:

  • Puede fusionar la salida de MapReduce con una colección existente. La salida de la fase Reducir reemplazará las claves existentes en la colección de salida, si ya existe. Las demás claves permanecerán en la colección.

  • Ahora puede volver a reducir su salida con el contenido de una colección existente. Cada salida clave de la fase de reducción se reducirá con el documento existente en la colección de salida.

  • Puede reemplazar la colección de salida existente con los nuevos resultados del trabajo de MapReduce (equivalente a configurar una colección de salida permanente en versiones anteriores)

  • Puede calcular MapReduce en línea y devolver los resultados al llamador sin conservar los resultados del trabajo. Esto es similar a las colecciones temporales generadas en versiones anteriores, excepto que los resultados están limitados a 8MB.

Para obtener más información,out consulte mapReduce las opciones del campo en el documento.

  • Corrección de migración de fragmentación al mover fragmentos más grandes.

  • Corrección de durabilidad con indexación en segundo plano.

  • Se solucionó el problema de concurrencia de Mongos con muchas conexiones entrantes.

  • Todos los cambios de la serie 1.7.x.

  • Corrección de errores.

  • Soporte inicial del índice cubierto.

  • Distinct puede utilizar datos de índices cuando sea posible.

  • mapReduce can merge or reduce results into an existing collection.

  • mongod rastrea y muestra el uso de la mongostat red.Consulte mongostat.

  • Mejoras en la estabilidad de la fragmentación.

  • $rename operator allows renaming of fields in a document.

  • db.eval() not to block.

  • Consultas geográficas con fragmentación.

  • mongostat --discover opción

  • Mejoras en la división de fragmentos.

  • Los conjuntos de réplicas mejoran la red para los servidores detrás de un NAT.

  • Muchas mejoras en el rendimiento del particionado.

  • Mejor soporte para en primitivas en matrices $elemMatch integradas.

  • Mejoras del optimizador de consultas en consultas de rango.

  • Mejoras en el servicio de ventanas.

  • Mejoras en la configuración del conjunto de réplicas.

  • $pull works on primitives in arrays.

  • Mejoras en el rendimiento de fragmentación para cargas de inserción pesadas.

  • Soporte de retardo de esclavo para conjuntos de réplicas.

  • local.system.replset.settings.getLastErrorDefaults for replica sets.

  • Completado automático en el shell.

  • Distancia esférica para búsqueda geográfica.

  • Todas las correcciones de 1.6.1 y 1.6.2.

Next

¿Qué es MongoDB?

En esta página