fragmento MongoDB
La solución a los datos de crecimiento
expansión vertical: aumento de la CPU, disco duro y otros recursos de almacenamiento para expandir la capacidad
expansión horizontal: los datos distribuidos a través de múltiples servidores, es decir, para utilizar el corte en lonchas
MongoDB lo que la fragmentación?
Consiste en dividir la base de datos, todos los datos almacenados en el proceso de dispersión de los diferentes servidores
¿Por qué debería lograr MongoDB fragmentación?
ventajas:
1. cúmulo abstracta, por lo que los grupos "invisibles", MongoDB viene con un proceso patentado llamado enrutamiento de mongo
2. Resolver el problema de espacio de almacenamiento en disco y mejorar el rendimiento de procesamiento de datos
3. Para mejorar la seguridad de datos, para asegurar que el clúster siempre puede leer la fragmentación y la replicación combinación MongoDB, asegúrese de que los datos de la rebanada a varios servidores, sino también asegurarse de que tienen cada uno una copia de seguridad sub-datos correspondientes de manera que se puede asegurar que hay tiempo para reemplazar el servidor, el otro puede hacerse cargo de una parte del trabajo continuo roto inmediatamente de la biblioteca
4. racimos facilitar ampliar
racimo Slice componentes principales:
Routers : los datos de enrutamiento, y el cliente módulo dedicado
servidor config Parte de la información de configuración para todos los depósitos, retirar de datos, la información de todo el fragmento nodos, función de fragmentación de:
Fragmento : La ubicación de almacenamiento de datos reales, los datos almacenados en la unidad de trozo
Despliegue MongoDB fragmentación clúster
Como se muestra en la figura entorno de despliegue
1. Instalación MongoDB, 8 Ejemplo de configuración
2. Crear un directorio para almacenar datos
mkdir -p / usr / local / mongodb / datos / shard11
mkdir -p / usr / local / mongodb / datos / shard12
mkdir -p / usr / local / mongodb / datos / shard21
mkdir -p / usr / local / mongodb / datos / shard22
mkdir -p / usr / local / mongodb / datos / config1
mkdir -p / usr / local / mongodb / datos / config2
mkdir -p / usr / local / mongodb / datos / config3
3. Crear un directorio de registro y archivos de registro y agregar permisos
mkdir -p / usr / local / mongodb / logs
tocar /usr/local/mongodb/logs/router.log
tocar /usr/local/mongodb/logs/shard11.log
tocar /usr/local/mongodb/logs/shard12.log
tocar /usr/local/mongodb/logs/shard21.log
tocar /usr/local/mongodb/logs/shard22.log
tocar /usr/local/mongodb/logs/config1.log
tocar /usr/local/mongodb/logs/config2.log
tocar /usr/local/mongodb/logs/config3.log
chmod -R 777 /usr/local/mongodb/logs/router.log
chmod -R 777 /usr/local/mongodb/logs/shard11.log
chmod -R 777 /usr/local/mongodb/logs/shard12.log
chmod -R 777 /usr/local/mongodb/logs/shard21.log
chmod -R 777 /usr/local/mongodb/logs/shard22.log
chmod -R 777 /usr/local/mongodb/logs/config1.log
chmod -R 777 /usr/local/mongodb/logs/config2.log
chmod -R 777 /usr/local/mongodb/logs/config3.log
4. Editar Perfil
fragmento perfil
vim /usr/local/mongodb/bin/shard11.conf
vim /usr/local/mongodb/bin/shard12.conf
En comparación shard11.conf modificar el número de puerto y dbpath y logpath
vim /usr/local/mongodb/bin/shard21.conf
vim /usr/local/mongodb/bin/shard22.conf
En comparación shard21.conf modificar el número de puerto y dbpath y logpath
config fichero de configuración
vim /usr/local/mongodb/bin/config1.conf
vim /usr/local/mongodb/bin/config2.conf
vim /usr/local/mongodb/bin/config3.conf
En comparación config1.conf modificar el número de puerto y dbpath y logpath
enrutador fichero de configuración
vim /usr/local/mongodb/bin/router.conf
El promotor fragmento y el nodo de la configuración nodal
/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/bin/shard11.conf
/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/bin/shard12.conf
/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/bin/shard21.conf
/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/bin/shard22.conf
/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/bin/config1.conf
/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/bin/config2.conf
/ Usr / local / mongodb / bin / mongod -f /usr/local/mongodb/bin/config3.conf
6. Log constituyen conjunto de réplicas nodo de configuración
/ Usr / local / mongodb / bin / mongo --port 27111
> Cfg = {_ id: 'config', miembros: [{_ id: 0, host: '127.0.0.1: 27111'}, {_ id: 1, host: '127.0.0.1: 27222'}, {_ id: 2, host: '127.0.0.1: 27333'}]}
7. Iniciar fragmento dos rebanadas nodos que constituyen conjunto de réplicas
/ Usr / local / mongodb / bin / mongo --port 27018
> Cfg = {_ Identificación: 'shard1', los miembros: [{_ id: 0, host: '127.0.0.1: 27018'}, {_ id: 1, host: '127.0.0.1: 27019'}]}
/ Usr / local / mongodb / bin / mongo --port 27118
> Cfg = {_ Identificación: 'shard1', los miembros: [{_ id: 0, host: '127.0.0.1: 27118'}, {_ id: 1, host: '127.0.0.1: 27119'}]}
8. Start nodo de encaminamiento, la fragmentación y el aumento
/ Usr / local / mongodb / bin / Mongos -f conf / router.conf
Mongos> sh.addShard ( "shard1 / 127.0.0.1: 27018,127.0.0.1: 27019")
Mongos> sh.addShard ( "shard1 / 127.0.0.1: 27118,127.0.0.1: 27119")
estado de fragmentación de la base de datos de clúster Ver
9. permitir la fragmentación en el ataque a la base de datos
MongoDB fragmentación se basa, a una colección de colección fragmentada (tabla) llevado a cabo, es necesario para que pueda apoyar la fragmentación en la base de datos
Mongos> sh.enableSharding ( "KGC”)
Colección de fragmentos
primer índice
Mongos> db.kgc.createIndex ({ "_ id": 1})
En el conjunto de ensayo en el kgc biblioteca de fragmentos
sh.shardCollection ( "kgc.test", { "id": 1})
Ver estado: mongo> sh.status ()
10. Los datos de prueba se inserta cíclico fragmento
Mongos> for (var i = 1; i <= 10000; i ++) db.kgc.insert ({edad: i, nombre: "wangmazi", dir: "Beijing", país: "China"})