Explicación de la configuración y resumen de errores de la serie de entradas mongoDB

Explicación de la configuración y resumen de errores de la serie de entradas mongoDB

Perspectiva de DevOps de Niu Hengbo

Sobre el Autor

Niu Hengbo, una persona de operación y mantenimiento de primera línea, es bueno para realizar rápidamente la operación y el mantenimiento desde cero hasta la automatización para pequeñas y medianas empresas. Ahora trabaja en una empresa de big data médica.

  首先对昨天《入门系列之实战》两处进行排版纠正:

Explicación de la configuración y resumen de errores de la serie de entradas mongoDB
Explicación de la configuración y resumen de errores de la serie de entradas mongoDB

Explicación del archivo de configuración de Mongod 2.x

  • replSet = setname
  • oplogSize = 1024 El tamaño del registro del conjunto de replicación.
  • keyFile = / ruta / a / archivo de claves: especifique la ruta del archivo de claves que almacena la información de autenticación.

  • lopath = / var / log / mongodb / mongod.log: ruta del archivo de registro.

  • logappend = true: escribe en el registro en modo anexar.

  • fork = true: si se ejecuta como un demonio

puerto = 27017: predeterminado 27017

  • dbpath = / var / lib / mongo: ubicación del archivo de la base de datos

  • pidfilepath = / var / run / mongodb / mongod.pid: la ubicación del archivo PID

  • bind_ip = 127.0.0.1: Configure el puerto de escucha.

  • nojournal = true: deshabilita la escritura anticipada en diario。

  • cpu = true: habilita el registro periódico de la utilización de la CPU y la E / S en espera

  • noauth = true: se ejecuta en un modo de autenticación inseguro, el valor predeterminado es el modo no seguro no autenticado

  • auth = true: se ejecuta en modo de autenticación seguro.

  • verbose = true: salida de registro detallada

  • objcheck = true: se usa para verificar las solicitudes del cliente al desarrollar un controlador

  • quota = true: habilita la gestión de cuotas de la base de datos

  • diaglog = 0: establece el nivel de registro de oplog

    • 0 = desactivado (predeterminado)
    • 1 = W
    • 2 = R
    • 3 = ambos
    • 7 = W + algunas lecturas
  • nohints = true: ignora las sugerencias de consulta

  • httpinterface = true: deshabilita la interfaz http, el valor predeterminado es localhost: 28017

  • noscripting = true: desactive las secuencias de comandos del lado del servidor, que restringirán en gran medida la funcionalidad

  • notablescan = true: cierre la tabla de escaneo, cualquier consulta será un error de escaneo

  • noprealloc = true: desactiva la preasignación de archivos de datos

  • nssize = <tamaño>: especifique el tamaño del archivo .ns para la nueva base de datos, unidad: MB

  • directoryPerDB: true: ¿hay una carpeta para una biblioteca?

configuración maestro-esclavo mongod

El modo de conjunto de réplicas no se recomienda oficialmente. Se recomienda usar fragmentación o fragmentación más conjunto de réplicas

archivo de configuración de escritura del servidor maestro


cat >/data/app/mongodb/config/mongo.conf <<EOF
logpath=/data/app/mongodb/logs/mongod.log
logappend=true
fork=true
port=27017
dbpath=/data/app/mongodb/db
pidfilepath=/data/app/mongodb/mongod.pid
bind_ip=192.168.56.12
nojournal=true
verbose=true
master=true
EOF

Configuración de escritura del servidor esclavo


cat >/data/app/mongodb/config/mongo.conf <<EOF
logpath=/data/app/mongodb/logs/mongod.log
logappend=true
fork=true
port=27017
dbpath=/data/app/mongodb/db
pidfilepath=/data/app/mongodb/mongod.pid
bind_ip=192.168.56.13
nojournal=true
verbose=true
slave = true  
source = 192.168.56.12:27017 
EOF

parámetro clave

  • maestro = verdadero
  • esclavo = verdadero
  • source = 192.168.56.12: 27017 ## Resumen de errores

    Error 1: se informa un error al conectarse a la base de datos por primera vez.


[root@localhost etc]# /application/mongodb/bin/mongo
MongoDB shell version: 3.0.4
connecting to: test
Server has startup warnings: 

[initandlisten] 
[initandlisten] ** WARNING: Readahead for /data/db/ is set to 4096KB
[initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
[initandlisten] **          http://dochub.mongodb.org/core/readahead
[initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
[initandlisten] 
[initandlisten] 
[initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
[initandlisten] **        We suggest setting it to 'never'
[initandlisten] 
[initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
[initandlisten] **        We suggest setting it to 'never'
[initandlisten] 
> 

Solución: Predeterminado:


[root@localhost etc]# cat /sys/kernel/mm/transparent_hugepage/enabled 
[always] madvise never
[root@localhost etc]# cat /sys/kernel/mm/transparent_hugepage/defrag 
[always] madvise never

cambiar a:


echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

resultado:


[root@localhost etc]# cat /sys/kernel/mm/transparent_hugepage/enabled            
always madvise [never]
[root@localhost etc]# cat /sys/kernel/mm/transparent_hugepage/defrag            
always madvise [never]

Error 2: la inserción de datos es un error:


for ( var i = 1; i < 10; i++ ) db.things.save(n:7,h:i);
2015-06-29T22:22:27.689+0800 E QUERY    SyntaxError: Unexpected token :

Solución: error de formato.


for ( var i = 1; i < 10; i++ ) db.things.save( { n:7,h:i } );
WriteResult({ "nInserted" : 1 })

Error 3: Error al inicializar el conjunto de replicación:


> rs.initiate(config_rs1);
{
        "ok" : 0,
        "errmsg" : "replSetInitiate quorum check failed because not all proposed set members responded affirmatively: localhost:28012 failed with not running with --replSet",
        "code" : 74
}
> exit

Solución:


/application/mongodb/bin/mongod --replSet rs1 --keyFile /data/key/r2 --fork --port 28012 --dbpath /data/data/r2 --logpath=/data/log/r2.log --logappend

Error cuatro: elimine otro nodo esclavo en el nodo esclavo e informe un error:


rs1:SECONDARY> rs.remove("localhost:28012")
{
        "ok" : 0,
        "errmsg" : "replSetReconfig should only be run on PRIMARY, but my state is SECONDARY; use the \"force\" argument to override",
        "code" : 10107
}
rs1:SECONDARY> 

Solución: el nodo esclavo no tiene permiso para cambiar la configuración de rs.

Error 5: Apague un nodo y no se puede iniciar normalmente al iniciar el conjunto de replicación:


[initandlisten] journal dir=/data/data/r0/journal
[initandlisten] recover : no journal files present, no recovery needed
 [initandlisten] 
[initandlisten] Insufficient free space for journal files
[initandlisten] Please make at least 3379MB available in /data/data/r0/journal or use --smallfiles
initandlisten] 
initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
[initandlisten] ReplicationCoordinatorImpl::shutdown() called before startReplication() finished.  Shutting down without cleaning up the replication system
[initandlisten] now exiting
[initandlisten] shutdown: go

Solución: (El motivo es que el espacio en el disco duro no es suficiente)


/application/mongodb/bin/mongod --config /application/mongodb/etc/mongodb.conf.r0 --smallfiles

Error 6: al configurar la fragmentación, agregar un servidor real de back-end en el extremo del enrutamiento genera un error de permiso:


mongos> db.runCommand({addshard:"localhost:20000"})
{
        "ok" : 0,
        "errmsg" : "failed listing localhost:20000's databases:{ ok: 0.0, errmsg: \"not authorized on admin to execute command { listDatabases: 1 }\", code: 13 }"
}

Solución: no agregue la opción de autenticación al abrir el servidor real.

Error 7: al configurar la ruta para administrar el servidor de configuración, se informa un error:


 error upgrading config database to v6 :: caused by :: Distributed ClockSkewed clock skew of the cluster 192.168.2.145:30000,192.168.2.149:30000,192.168.2.147:30000 is too far out of bounds to allow distributed locking.

Solución: el tiempo de los tres servidores es diferente. Establezca la misma hora del servidor. problema resuelto.

Error ocho: después de configurar el conjunto de replicación, inicie sesión en la base de datos para operar, incluso si está operando en la base de datos primaria, le indica que se requiere autenticación.

Solución: si el servidor MongoDB comienza con el parámetro --auth o --keyFile, debe autenticarse antes de realizar cualquier operación. Puede autenticarse cuando se conecta. El método consiste en especificar el nombre de usuario y la contraseña en la cadena de enlace, o especificar el "nombre de usuario" y la "contraseña" en el constructor MongoClient :: __ construct ().

Debido a que el archivo de claves se usa al configurar el clúster, se debe usar la autenticación para iniciar sesión. No está relacionado con el comando db.auth ().

Error ocho: error de configuración de IP

Al configurar --conigdb, la dirección IP no se puede completar con localhost o 127.0.0.1; de lo contrario, se devolverá el siguiente mensaje de error al agregar fragmentos:


{
           "ok" : 0,
           "errmsg" : "can't use localhost as a shard since all shards need to communicate. either use all shards and configdbs in localhost or all in actual IPs  host: 192.168.71.43:27017 isLocalHost:0"
}

Supongo que te gusta

Origin blog.51cto.com/15127511/2658090
Recomendado
Clasificación