---
# System prepended metadata

title: Manual de Proyecto BD2

---


# Manual de Proyecto BD2


|              Nombre               |   Carne   |
|:---------------------------------:|:---------:|
|     Luis Fernando Pérez Morán     | 201212822 |
| Christian Leví González Rodríguez | 200915168 |
|     Andrea María López Flores     | 201404134 |





## Configuración Replica BD

A continuación se detalla el proceso para la configuracion de la base de datos de mongoDB y sus 4 replicas.

+ Se deben de crear 5 instancias de maquinas virtuales las cuales se pueden configurar en nuestra servicio de cloud favorito en nuestro caso se instalaron 5 maquinas con ubunto 18.0 LTS

![](https://i.imgur.com/ayBkOz9.png)

+ Creadas unestras 5 instancias de las maquinas virtuales procedemos a instalar mongoDB en cada una de ellas y configurarlas para la replicacion con los siguientes comandos 

    + Ingresamos como super usuario `sudo su`
    
    + Desde una terminal, emita el siguiente comando para importar la clave GPG pública de MongoDB desde : 
    `wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -`
    
    + Instale gnupg y sus bibliotecas requeridas usando el siguiente comando:
    `sudo apt-get install gnupg`
    
    + Una vez instalada, vuelva a intentar importar la clave:
     `wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -`
     
     + Cree el archivo /etc/apt/sources.list.d/mongodb-org-4.4.list para Ubuntu 20.04 (Focal):
     `echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list`
     
     + Emita el siguiente comando para volver a cargar la base de datos del paquete local:
    `sudo apt-get update`
    
    + Para instalar la última versión estable, emita lo siguiente:
    `sudo apt-get install -y mongodb-org`
    
    + Por ultimo iniciamos el mongo en cada una de las maquinas virtuales
    `sudo systemctl start mongod`

## Carga de datos
Para realizar la carga de datos, utilizaremos la herramienta compass para conectarnos a nuestra base de datos mongo. Para la carga de datos se realizaron los siguientes pasos:

+ Creacion de base de datos y coleccion: Crear las bases de datos con su coleccion correspondiente
    + BD: countries_grupo1 Coleccion: coleccion1_grupo1
    + BD: patents_grupo1 Coleccion: coleccion2_grupo1
    
![](https://i.imgur.com/w2PTZHR.png)

+ Seleccionar la coleccion a la que se desea cargar datos e ir al boton "ADD DATA" en la opcion "Import File".

![](https://i.imgur.com/czi4taU.png)

+ Seleccionar el archivo .json correspondiente a la coleccion de datos que deseamos cargar:
![](https://i.imgur.com/KHH5hQu.png)

+ Hacer clic en el boton "Import" para realizar la carga de datos. Al finalizar presionar el boton "Done".

![](https://i.imgur.com/cmqJXMA.png)

+ Repetir el proceso con el resto de cargas en nuestras colecciones.



## Alta disponibilidad
Definir la prioridad de cada nodo es importante para saber que nodo se levantará al dar de baja a otro. Esto es facil de realizar simplemente actualizando la configuracion de la prioridad de los nodos de la siguiente manera:

```
cfg = rs.conf()
cfg.members[0].votes = 1;
cfg.members[0].priority = 20;
cfg.members[1].votes = 1;
cfg.members[1].priority = 15;
cfg.members[2].votes = 1;
cfg.members[2].priority = 10;
cfg.members[3].votes = 1
cfg.members[3].priority = 5;
cfg.members[4].votes = 1
cfg.members[4].priority = 1;
rs.reconfig(cfg);
```

+ El nodo con mayor prioridad (priority = 20;) será el nodo primario en este ejemplo. 
+ El nodo con menor prioridad (priority = 1;) es el 5to nodo en este ejemplo y será el ultimo en ser primario.

## Backup y recuperacion
### Backup
+ Para realizar el backup y recuperación, basta con ejecutar una serie de comandos para generar una copia total o parcial de la base de datos. El comando "mongodump" genera un directorio "dump/" que contiene la base de datos de respaldo. 

    + Crear backup de base de datos: `mongodump `

    + Tambien se puede asignar un directorio de la siguiente manera:
    `mongodump --out=/data/backup/ `
     
    + O se puede ejecutar una copia parcial con el siguiente comando:
    `mongodump --collection=myCollection --db=test`

    + Mongodump tambien permite especificar el servidor y puerto de la instancia de mongo, cambiar el nombre del backup de salida, usuario y contraseña.

### Restauración
+ Para realizar la recuperacion de datos, una vez que se ha borrado la información, se ejecuta el siguiente comando indicando el directorio del backup:
    + Restaurar base de datos: `mongorestore dump/`

     