comprensión de base de datos MongoDB y notas de estudio

la base de datos MongoDB

A, conocimientos MongoDB

MongoDB es una fuente de desarrollo del lenguaje C abierto, multiplataforma, la base de datos NoSQL orientada a documentos

¿Cuál es NoSQL?

Los datos no se almacenan en el modelo relacional se basa, no requiere un formato de mesa fija. la base de datos no relacionales como un suplemento de base de datos relacional, en la era de cada vez más rápido desarrollo del sitio juega un eficiente y de alto rendimiento, NoSQL para almacenar datos muy gran escala

Comúnmente se usa la base de datos no relacionales: MongoDB, Memcache Redis, HBase

Las ventajas de las bases de datos no relacionales: 1. La demanda de alta simultáneas de lectura y escritura de base de datos

                                        2. Alta eficiencia de almacenamiento masivo de datos y el acceso

                                        Alta escalabilidad y alta disponibilidad requisitos 3. Base de datos

definición MangoDB

MongoDB es un producto con función entre bases de datos relacionales y bases de datos no relacionales, funciones de bases de datos no relacionales entre los más ricos y como una base de datos relacional

Proporciona aplicaciones escalables Web a soluciones de almacenamiento de datos de alto rendimiento, aplicados principalmente a la caché de datos, distribuida escena lugar de almacenamiento y datos en formato JSON de documentos para grandes cantidades de datos , alta concurrencia , bajo transaccionales aplicaciones de Internet

MongoDB ventajas y desventajas

Ventajas: Flexibilidad altamente escalable, Distributed Computing, de bajo costo, la arquitectura, los datos semi-estructurados, la relación no complicado

MongoDB proporciona replicación, la alta disponibilidad y la fragmentación automática, apoyar una rica expresiones de consulta, es compatible con una variedad de lenguajes de programación, tales como Ruby, Python, Java, C ++, PHP, C #, etc.

Contras: no estandarizada, función de búsqueda limitado

MongoDB ejecuta dos conceptos : de recogida (recogida) y documentos (document)

concepto de mesa MongoDB sustituyó a la recogida de datos en un documento de concepto

Dos, MongoDB para Linux instalación

1. Descargar e instalar MongoDB dependencias del paquete de instalación

yum -y install openssl-devel

tar zxf mongodb-Linux-x86_64-rhel62-3.2.10.tgz

mv mongodb-Linux-x86_64-rhel62-3.2.10 / usr / / mongodb locales

2. Crear de MongoDB directorio de almacenamiento de datos / Data / mongodb1 , directorio de registro / los registros de datos / , archivos de registro , y añadir la autoridad

Tenga en cuenta que algunos de los métodos más parecido a UNIX sistemas operativos, incluyendo Linux y OS X, proporciona límite básico para cada proceso y cada usuario utilizando hilos, archivos y conexiones de red y otros recursos del sistema:

mkdir -p / data / mongodb1

mkdir -p / data / logs / mongodb

tocar /data/logs/mongodb/mongodb1.log

chmod -R 777 /data/logs/mongodb/mongodb1.log

Cuando MongDB visitó con frecuencia en el estado, si el shell para iniciar el proceso ocupada de recursos es demasiado bajo, se producirá un error no se puede conectar MongoDB, necesita conjunto

sistemas Linux procesar un número máximo predeterminado de los archivos abiertos es de 1024 veces, valores por defecto para estos límites son demasiado pequeños, que pueden causar una serie de problemas durante el funcionamiento normal MongoDB

-u de 25.000 ulimit (número único proceso de archivos abiertos)

-n de 25.000 ulimit (proceso abierto / hilo)

3. Crear un archivo de configuración MangoDB y establecer los parámetros de inicio

vim /usr/local/mongodb/bin/mongodb1.conf

port=27017      \\默认服务端口号 
dbpath=/data/mongodb1      \\数据存储目录
logpath=/data/logs/mongodb/mongodb1.log     \\日志文件
logappend=true       \\使用追加的方式写日志
fork=true      \\后台运行
maxConns=5000       \\最大同时连接数,默认是2000
storageEngine=mmapv1    \\指定存储引擎为内存映射文件

4. Ajuste los parámetros del kernel

 echo "0"> / proc / sys / vm / zone_reclaim_mode

sysctl -w vm.zone_reclaim_mode = 0

eco "nunca"> / sys / kernel / mm / transparent_hugepage / habilitado

eco "nunca"> / sys / kernel / mm / transparent_hugepage / desfragmentación

5. Inicio y parada MongoDB

启动: / usr / local / mongodb / bin / mongod --config /usr/local/mongodb/bin/mongodb1.conf

停止: / usr / local / mongodb / bin / mongod --config /usr/local/mongodb/bin/mongodb1.conf --shutdown

Multi-instancia de MongoDB

MongoDB para crear un nuevo directorio de almacenamiento de datos / Data / mongodb2 , archivos de registro y permisos para agregar,

mkdir / data / mongodb2

tocar /data/logs/mongodb/mongodb2.log

chmod -R 777 /data/logs/mongodb/mongodb2.log

En el directorio principal de almacenamiento de archivos de configuración para crear un nuevo archivo de configuración principales, comparando la primera instancia de los siguientes parámetros se pueden modificar el archivo de configuración (es necesario crear varias instancias de copia de editar varios nombres diferentes)

vim /usr/local/mongodb/bin/mongodb2.conf

port = 27018

dbpath = / data / mongodb2

logpath = / data / logs / mongodb / mongodb2.log

Iniciar la instancia (inicio de la misma forma con la primera instancia)

Tres, base MongoDB

estructura de almacenamiento MongoDB

Estructura lógica compone principalmente de una colección (Collection) , el documento (el documento) , base de datos (base de datos) compuesto de tres partes, que es el concepto básico del documento, que es la unidad de almacenamiento MongoDB almacenamiento lógico más pequeña

★ colección:

nombre legal de la colección: un nombre de colección no puede ser una cadena vacía "".

                          2. El nombre de la colección no puede contener el carácter \ 0 (carácter nulo), este personaje representa el final del nombre de la colección.

                          3. El nombre de la colección no puede ser "sistema". En un principio, que está reservado para el sistema de recogida del prefijo.

                          4. Nombre de la colección creada por el usuario no puede contener caracteres reservados, algunos conductores de apoyo incluidos en el conjunto estaban allí, esto se debe a que la colección contiene un poco de carácter generado por el sistema, a menos que desee acceder a esta colección creada por el sistema, o un mil $ millones no va a aparecer en el nombre

★ documento:

Documento es un conjunto de teclas (clave-valor) par (es decir BSON), MongoDB documento necesidad no establece el mismo campo, y el mismo tipo de necesidad campo de datos no ser idéntico, que es muy diferente de una base de datos relacional, también MongoDB característica muy destacada

Tenga en cuenta que: 1. El documento de pares clave / valor se ordenan

                         2. El valor del documento puede ser no sólo el interior de la cadena entre comillas dobles, también puede haber varios otros tipos de datos (o incluso todo el documento incrustado)

                         3.MongoDB para distinguir los tipos y sensible

                         4.MongoDB documento no puede tener claves duplicadas

                         Los documentos claves son cadenas , con pocas excepciones, la clave puede ser cualquier carácter UTF-8

estructura de almacenamiento físico:

estructura de almacenamiento de datos: archivo de espacio de nombres (.ns final del archivo) archivo de datos (.0,1,2,3 ...)

Entrar estructura de almacenamiento: archivos de registro diario: para la protección de recuperación de bloqueo MongDB

                         operación de copia de archivo de registro oplog: sólo aparece después de la apertura principal de la copia

                         registro de consultas lentas: puede ser necesario abrir después

★ base de datos:

Inicial base de datos integrada: admin: administrador de base de datos Biblioteca Central almacenar información de la cuenta.

                             locales: base de datos local nunca ha de ser copiado desde el nodo, que puede ser utilizado para almacenar cualquier conjunto de servidores se limita a un solo local,

                             config: config entorno de clúster de base de datos para la fragmentación, el almacenamiento de piezas de información relacionados metadatos.

                             prueba: por defecto MongoDB creó una biblioteca de prueba

tipo de datos MongoDB

Cadena : datos de cadena almacenados tipo de datos común, en MongoDB, cadena UTF-8 codificado es válido
Entero : valor entero para almacenar un valor, de acuerdo con el servidor que está empleado, puede ser dividido en 32 bits o un 64-bit
Boolean : valor booleano, para almacenar el operador booleano (verdadero / falso)
doble : doble precisión valor de punto flotante, para el almacenamiento de punto flotante valores
Min / Max Keys : un valor mínimo y el elemento de BSON (JSON binario) y los valores máximos de la proporción relativa
matriz : matriz o lista de uno o más valores se almacenan como una clave de
marca de tiempo : marca de tiempo, modificar o añadir registros documentar un momento determinado
de objetos : documentos incorporados para
nula : Crea un valor vacío
Símbolo : símbolos, sustancialmente idéntico al tipo de cadena de tipo de datos, pero la diferencia es que se utiliza generalmente con tipos especiales de símbolos de idioma
una fecha : fecha y hora, un formato de tiempo UNIX para almacenar la fecha o la hora actual. Se puede especificar su propia fecha y hora: crear un objeto Date, pasar información actualizada
de objetos ID : ID del objeto, que se utiliza para crear el documento de identificación
binaria Fecha : datos binarios para almacenar datos binarios
Código : Introduce el código para el documento código JavaScript se almacena
la expresión regular: Tipos de expresión regular. Se utiliza para almacenar expresiones regulares

operativo subyacente de MongoDB

Registro local: / usr / local / MongoDB / bin / mongo (27017 por defecto el puerto de inicio de sesión, prueba de la base de datos, no hay ninguna contraseña de usuario por defecto)

Telnet: MongoDB: // zhangsan: [email protected]: 27017

Ver la base de datos:> Mostrar DBS

Muestra al usuario:> Mostrar los usuarios

bases de datos de conmutación:> nombre de la base uso (si la base de datos no existe, crear una base de datos, o el interruptor a la base de datos especificada)

Base de datos de visualización comando de operación:> db.help ()

Ver la colección:> Mostrar las Colecciones

Viendo comando de operación de recolección:> . Db nombre de la colección .help ()

Cómo encontrar la documentación:> nombre de la colección db .find ().

Crear una colección:> db.createCollection (nombre, Opciones)

Opciones parámetros:
cubiertas (booleanas) :( opcional) Si es verdad, a continuación, crear un conjunto de, conjunto fijo fijo es una colección con un tamaño fijo, cuando se alcanza el valor máximo, se sobrescribe automáticamente los documentos más antiguos, cuando el valor es verdadero se debe especificar el tamaño de parámetro
autoIndexId (Boolean) :( opcional) como verdadero, el índice se crea por defecto de campo automáticamente _id a falsa
tamaño (valor) :( opcional) especificar un conjunto de máximo fijado (en bytes metros), si el tapado es cierto, pero también es necesario especificar el campo
máximo (valor) :( opcional) Especifica el número máximo de documentos contenidos en el conjunto de fijo

Crear un conjunto fijo de prueba, todo el espacio de recogida 6142800 KB, el número máximo de documentos a 10000

> Db.createCollection ( "test", {cubiertas: true, autoIndexId: verdad, tamaño: 6142800, max: 10000})

La colección se va a convertir en un conjunto fijo de recopilación de datos no se pueden modificar fijo , sólo para descubrir - borrado - y luego insertar , crear una colección que se establece cuando el parámetro cubiertas de verdad

Insertar un documento para crear automáticamente una colección:

> Db.test.insert ({ "name": "zhangsan"}

Crear un documento:

generar automáticamente _ID:> . DB .Insert collectionname ({ "clave": " valor"})

Puede especificar manualmente _id:> Db nombre de la colección .save (documento).

mantenimiento de rutina cuatro, MongoDB

MongoDB respaldo y recuperación de

Herramienta de exportación de datos: mongoexport

MongoDB es una herramienta de recopilación mongoexport se puede exportar como archivos JSON o CSV

mongoexport -d -c nombredb collectionname -o archivo --type JSON / csv -f campo

Herramienta de importación de datos: mongoimport

mongoimport -d -c nombredb collectionname --file nombre --type JSON / csv -f campo

-d: especifica el nombre de la base

-c: Especifica el nombre de la colección de la colección

-f: Especifica qué columnas a la exportación

-o: Especifica el nombre del archivo que desea exportar

-q: Especifica los criterios de filtrado de datos a la exportación

Nota: En la importación de MySQL tiempo , antes de la exportación de MySQL cuando las bases de datos complemento opciones, la importación cuando no pueden crear

MongoDB copia de seguridad y recuperación: mongodump

Copia de seguridad: mongodump dbhost -d nombrebd -h -o dir

Recuperación: mongorestore dbhost -d nombrebd -h dir -dir

-H: MongoDB dirección IP del servidor se encuentra (especifique el número de puerto se puede añadir más tarde)

-d: Especifica la copia de seguridad de la instancia de base

-o: Especifica la ubicación de la base de datos almacenada en la copia de seguridad (el directorio que se ha creado de antemano, directorio de prueba los datos de copia de seguridad se almacena creado automáticamente en el directorio)

Copiar la base de datos MongoDB base de datos

> Db.copyDatabase ( "DB1", "DB2", "localhost")

Un conjunto de clones (de la copia remota para el conjunto actual de ejemplos instancia MongoDB MongoDB, el mismo nombre es set)

> Db.runCommand ({ "cloneCollection": "abc.test", "de": "192.168.100.7:27017"})

Gestión de la Seguridad MongoDB

Restricciones de escucha dirección IP y el puerto (situado en el archivo de configuración)

vim /usr/local/mongodb/conf/mongodb.conf

= 192.168.0.111 bind_ip  \\ sólo permiten el acceso a esta dirección IP

= 27017 Puerto  \\ sólo permiten el acceso al número de puerto

Está autorizado para iniciar la conexión userAdminAnyDatabase (MongoDB contraseña por defecto primero no es necesario, ni ningún usuario)

1. Accede a la base de datos, cambiar al administrador de la biblioteca

> Utilización de administración

2. Crear un usuario administrativo

> Db.createUser ({usuario: "admin", pwd: "123456", los roles: [{rol: "userAdminAnyDatabase", db: "admin"}]})

funciones: las funciones de usuario especificados , puede ser una matriz vacía a la nueva función de usuario conjunto vacío, en papeles en el campo, puede especificar la función funciones definidas por el usuario incorporado y

Funciones integradas (integradas en parte):

los roles de base de datos de usuarios: lectura, escritura y lectura;
las funciones de administración de bases de datos: dbadmin, dbowner, UserAdmin
funciones de gestión de racimo: clusterAdmin, clusterManager, clusterMonitor, hostManager
copia de seguridad y la función de recuperación: copia de seguridad, restaurar
todas las funciones de base: readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase
rol de superusuario: raíz  
suplementos: hay varios papel directo o indirecto proporciona acceso súper sistema de usuario (dbowner, UserAdmin, userAdminAnyDatabase)
funciones internas: __ sistema

dbadmin : permite a los usuarios realizar las funciones de gestión de bases de datos específicas, como la indexación para crear, eliminar, o ver las estadísticas de acceso system.profile

UserAdmin : permite a un usuario escribir en system.users, usted puede encontrar especificar la base de datos para crear, eliminar y administrar usuarios

clusterAdmin : admin sólo está disponible en la base de datos, el usuario da toda función de correlación privilegios fragmentación y conjuntos de replicación

3. Inicio de autenticación de usuario

/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/conf/mongodb.conf --auth

O editar el fichero de configuración: vim /usr/local/mongodb/conf/mongodb.conf

Añadir auth = true

Vista de usuario existente:> Mostrar los usuarios o> db.system.users.find ()

4. Registro de MongoDB, utilizando la biblioteca de verificación de acceso de administrador de usuario de administración

> Utilización de administración

> Db.auth ( "admin", "123456")

Con administrativa usuario administrador de usuario para crear el nombre de usuario y la contraseña de base de datos adicional

> Prueba de uso

> Db.createUser ({Usuario: "testuser", pwd: "123456", papeles: [{papel: "READWRITE", db: "test"}]})

更新用户:> db.updateUser ( 'testuser', {pwd: "111111", los roles: [{rol: "lectura-escritura", db: "test"}]})

Eliminar usuario:> db.dropUser ( "testuser")

Nota: con permisos de usuario administrativos usuario administrador puede eliminar un usuario después de aterrizar

Gestión de procesos

Procesar el bienestar operación de consulta realizada:> db.currentOp ()

Terminar el proceso:> db.killOp ( "shard3: 466 404 288")

Monitoreo MongoDB

1. Base de datos de Command View

Ver base de datos de información del estado de instancia:> db.serverStatus ()

Ver las estadísticas de bases de datos actuales:> db.stats ()

Ver una recopilación de estadísticas:> db.users.stats ()

Ver el tamaño de la colección:> db.users.dataSize ()

2. ser monitoreados (editar el archivo de configuración) a través de la web: vim /usr/local/mongodb/conf/mongodb.conf

Añadir httpinterface = true

Por 28017: http: // localhost para el acceso web

3. Herramientas de monitoreo tripartitos: Nagios

Suplementaria instalar MongoDB bajo Windows:

inicio mongo.exe

 

instalación de software de visualización MongoDB

 

Publicado 37 artículos originales · ganado elogios 6 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/feili12138/article/details/104789298
Recomendado
Clasificación