¡El poder de los datos!

1

¡El poder de los datos!

Introducción a las bases de datos relacionales

2

Buenas prácticas de bases de datos con SQL

3

Tipos de datos en SQL

4

¿Cómo crear una base de datos en SQL?

5

Práctica: Tu primera consulta en bases de datos

6

Historia y Evolución de SQL

7

Práctica: Creación de Tablas en SQL (CREATE TABLE)

Manipulación de Datos

8

Insertando Datos con SQL (INSERT)

9

Consultas y Selecciones en SQL (SELECT)

10

Práctica: SELECT en SQL

11

Actualización de Datos con SQL (UPDATE)

12

Eliminación de Datos con SQL (DELETE)

13

Práctica: CRUD con SQL

Manipulación Avanzada de Datos

14

Instalación de MySQL Server y MySQL Workbench

15

¿Qué es la cláusula WHERE de SQL?

16

Filtrar y Ordenar Datos en SQL (LIKE)

17

Práctica: Filtrar Datos con WHERE en SQL

18

Cláusulas de Comparación Textual en SQL (AND, NULL, IN, NOT)

19

Funciones de Aritmética Básica en SQL (COUNT, SUM, AVG)

20

Funciones de Aritmética Básica en SQL (MIN, MAX)

Agrupación de Datos

21

Agrupación de Datos en SQL: GROUP BY, HAVING y CASE para Análisis Avanzado

22

Práctica: Agrupamiento y Ordenamiento de Datos

23

Tipos de JOIN en SQL

24

¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

25

Práctica: LEFT JOIN en SQL

Transformación de Datos

26

Vistas Materializadas en SQL: Como optimizar tus consultas y reportes.

27

Práctica: Crear Vistas Materializadas en SQL

28

Optimización de Bases de Datos con SQL: CREATE INDEX y TRIGGER

29

Vistas Materializadas y Temporales en SQL

30

Expresiones de Tablas Comunes (CTE) en SQL

Procedimientos Almacenados

31

Procedimientos Almacenados en SQL

32

Procedimientos Almacenados en SQL: Gestión de Variables y Manejo de Excepciones

Administración de Base de Datos

33

Respaldos y Restauración de Bases de Datos

34

Seguridad en Bases de Datos SQL

Análisis de Datos Avanzados

35

Potenciando los Datos en la Nube: Data Science, Big Data, ML e AI

36

SQL para Análisis de Datos: Primeros pasos con Power BI

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Respaldos y Restauración de Bases de Datos

33/36
Recursos

Aportes 9

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Estarian buenos unos slides o que pongan algo en la seccion de recursos para uno apoyarse mientras ve el video
creo que no es buena idea hacer la exportación por workbench, la mayoria de veces en entornos productivos y de pruebas no o puedes hacer por permisos. por eso por consola es mucho mas rapido a mi parecer `mysql -u username -p database_name <` file.sql ```txt mysql -u username -p database_name < file.sql ```
Respaldo de Bases de Datos MySQL desde una terminal: ```txt 1. Respaldo de una Base de Datos mysqldump -u [usuario] -p[contraseña] [nombre_Base_de_Datos] > respaldo.sql 2. Respaldo de todas las Bases de Datos mysqldump -u [usuario] -p[contraseña] --all-databases > respaldo_completo.sql 3. Respaldo de una tabla específica mysqldump -u [usuario] -p[contraseña] [nombre_Base_de_Datos] [nombre_Tabla] > respaldo_tabla.sql ```Restauración en MySQL desde la terminal: ```txt 1. Restauración de una Base de Datos mysql -u [usuario] -p[contraseña] [nombre_Base_de_Datos] < respaldo.sql 2. Restauración de todas las Bases de Datos mysql -u [usuario] -p[contraseña] < respaldo_completo.sql ```
### **Utilizando PostgreSQL:** Método 1: Usando `pg_dump` `pg_dump` es una utilidad de PostgreSQL que permite realizar copias de seguridad de bases de datos. Puedes usarla desde la línea de comandos. #### Respaldo de una sola base de datos: Para hacer un respaldo de una base de datos, usa el siguiente comando: * `-U [usuario]`: Especifica el nombre de usuario. * `-h [host]`: Especifica el host (servidor) de la base de datos (por ejemplo, `localhost`). * `-p [puerto]`: Especifica el puerto del servidor de la base de datos (por ejemplo, `5432`). * `[nombre_bd]`: Especifica el nombre de la base de datos que quieres respaldar. * `> [ruta_al_archivo_de_respaldo].sql`: Especifica la ruta y el nombre del archivo donde se almacenará el respaldo. #### Ejemplo: ```js pg_dump -U myuser -h localhost -p 5432 mydatabase > /path/to/backup/mydatabase_backup.sql ``` Método 2: Usando `pgAdmin` `pgAdmin` es una interfaz gráfica que facilita la administración de bases de datos PostgreSQL, incluyendo la creación de respaldos. #### Pasos: 1. **Abrir pgAdmin**: Inicia pgAdmin y conéctate al servidor PostgreSQL. 2. **Seleccionar la base de datos**: En el panel de navegación de la izquierda, expande el servidor y selecciona la base de datos que deseas respaldar. 3. **Abrir el menú de respaldo**: Haz clic derecho sobre la base de datos seleccionada y elige `Backup...` del menú contextual. 4. **Configurar el respaldo**: * **Filename**: Especifica la ruta y el nombre del archivo donde se guardará el respaldo. * **Format**: Selecciona el formato del respaldo (`Custom`, `Tar`, `Plain`, etc.). `Plain` es un archivo SQL simple, mientras que `Custom` y `Tar` son formatos comprimidos. * Configura otras opciones según tus necesidades (por ejemplo, incluir datos de solo esquema, etc.). 5. **Iniciar el respaldo**: Haz clic en el botón `Backup` para iniciar el proceso de respaldo. ### Método 3: Usando `pg_basebackup` `pg_basebackup` es otra herramienta de PostgreSQL que permite hacer respaldos completos de una instancia de PostgreSQL, incluyendo todas las bases de datos en el servidor. Es útil para configuraciones de replicación y respaldo a nivel de instancia. #### Ejemplo: ```js pg_basebackup -U [usuario] -h [host] -p [puerto] -D [directorio_destino] -Ft -z -P ``` * `-D [directorio_destino]`: Especifica el directorio donde se almacenará el respaldo. * `-Ft`: Especifica el formato del respaldo (tar). * `-z`: Comprime el respaldo. * `-P`: Muestra el progreso del respaldo. #### Ejemplo Completo: ```js pg_basebackup -U myuser -h localhost -p 5432 -D /path/to/backup/directory -Ft -z -P ```Restaurar un Respaldo Para restaurar un respaldo hecho con `pg_dump`, usa `psql`: ```js psql -U [usuario] -h [host] -p [puerto] [nombre_bd] < [ruta_al_archivo_de_respaldo].sql ``` #### Ejemplo: ```js psql -U myuser -h localhost -p 5432 mydatabase < /path/to/backup/mydatabase_backup.sql ``` Para respaldos hechos en formato `Custom` o `Tar`: ```js pg_restore -U [usuario] -h [host] -p [puerto] -d [nombre_bd] [ruta_al_archivo_de_respaldo] ``` #### Ejemplo: ```js pg_restore -U myuser -h localhost -p 5432 -d mydatabase /path/to/backup/mydatabase_backup.tar ```
Caro 👩‍💻 Los Backup siempre son muy importantes cuando queremos respaldar nuestra información
Los respaldos van si o si, sería anti profesional y muy imprudente no hacerlos.
\# Respaldos y Restauración de Bases de Datos \### 1. Respaldo Completo de Base de Datos ```sql \-- MySQL mysqldump -u usuario -p nombre\_base > respaldo.sql \-- PostgreSQL pg\_dump nombre\_base > respaldo.sql \-- SQL Server BACKUP DATABASE nombre\_base TO DISK = 'C:\respaldo.bak' WITH FORMAT; ``` \### 2. Respaldo de Tablas Específicas ```sql \-- MySQL mysqldump -u usuario -p nombre\_base tabla1 tabla2 > respaldo\_tablas.sql \-- PostgreSQL pg\_dump -t tabla1 -t tabla2 nombre\_base > respaldo\_tablas.sql \-- SQL Server BACKUP DATABASE nombre\_base FILE = 'tabla1', 'tabla2' TO DISK = 'C:\respaldo\_tablas.bak'; ``` \### 3. Restauración de Base de Datos ```sql \-- MySQL mysql -u usuario -p nombre\_base < respaldo.sql \-- PostgreSQL psql nombre\_base < respaldo.sql \-- SQL Server RESTORE DATABASE nombre\_base FROM DISK = 'C:\respaldo.bak' WITH REPLACE; ``` \### 4. Respaldo Incremental ```sql \-- MySQL con Binary Log mysqlbinlog bin-log.000001 > incremental.sql \-- PostgreSQL pg\_dump -F c -b nombre\_base > base.backup \-- SQL Server BACKUP DATABASE nombre\_base TO DISK = 'C:\incremental.bak' WITH DIFFERENTIAL; ``` \### 5. Programación de Respaldos Automáticos ```sql \-- Ejemplo de script para respaldo automático CREATE PROCEDURE realizar\_respaldo() BEGIN SET @fecha = DATE\_FORMAT(NOW(), '%Y%m%d'); SET @comando = CONCAT( 'mysqldump -u usuario -p nombre\_base > respaldo\_', @fecha, '.sql' ); \-- Ejecutar el comando SYSTEM @comando; END; \-- Programar ejecución CREATE EVENT respaldo\_diario ON SCHEDULE EVERY 1 DAY DO CALL realizar\_respaldo(); ``` \### Estrategias de Respaldo: 1\. \*\*Respaldo Completo\*\*: \- Todo el contenido de la base de datos \- Ideal para bases pequeñas \- Mayor espacio de almacenamiento 2\. \*\*Respaldo Incremental\*\*: \- Solo cambios desde el último respaldo \- Menor espacio de almacenamiento \- Más complejo de restaurar 3\. \*\*Respaldo Diferencial\*\*: \- Cambios desde el último respaldo completo \- Balance entre espacio y complejidad 4\. \*\*Respaldo en Caliente\*\*: \- Sin detener la base de datos \- Ideal para sistemas 24/7 \- Puede afectar el rendimiento 5\. \*\*Respaldo en Frío\*\*: \- Base de datos detenida \- Más seguro y consistente \- Requiere tiempo de inactividad \### Buenas Prácticas: 1\. \*\*Programación de Respaldos\*\* ```sql \-- Ejemplo de política de respaldos \- Respaldo completo: Semanal \- Respaldo incremental: Diario \- Respaldo de logs: Cada hora ``` 2\. \*\*Verificación de Respaldos\*\* ```sql \-- Verificar integridad del respaldo RESTORE VERIFYONLY FROM DISK = 'C:\respaldo.bak'; ``` 3\. \*\*Rotación de Respaldos\*\* ```sql \-- Mantener últimos 7 días \-- Eliminar respaldos antiguos DELETE FROM respaldos WHERE fecha < DATE\_SUB(NOW(), INTERVAL 7 DAY); ``` 4\. \*\*Documentación\*\* ```sql \-- Registro de respaldos CREATE TABLE log\_respaldos ( id INT AUTO\_INCREMENT, fecha DATETIME, tipo VARCHAR(50), archivo VARCHAR(255), estado VARCHAR(20), PRIMARY KEY (id) ); ``` \### Consideraciones Importantes: 1\. \*\*Seguridad\*\*: \- Encriptar respaldos sensibles \- Almacenar en ubicación segura \- Control de acceso a respaldos 2\. \*\*Espacio\*\*: \- Monitorear espacio disponible \- Comprimir respaldos grandes \- Política de retención clara 3\. \*\*Pruebas\*\*: \- Verificar respaldos regularmente \- Simular restauraciones \- Documentar procedimientos 4\. \*\*Recuperación\*\*: \- Plan de recuperación documentado \- Tiempo objetivo de recuperación \- Punto objetivo de recuperación Los respaldos son cruciales para: \- Recuperación ante desastres \- Cumplimiento normativo \- Migración de datos \- Pruebas y desarrollo
Aquí mi mundo colapso por completo quede así: 🤐 Creo que es debido a la herramienta usada en la clase que no permite hacer más cosas. En SQL server debemos conocer los tipos de recuperación para saber que backups vamos a hacer, y los backups deben ser super bien planeados. Los backups son un tema demasiado importante, y si bien depende de la herramienta usada creo que vale la pena que se mencione las capacidades de un SQL server, o de un Azure, etc. Sobre todo, cuando se mencionan roles laborales como ingeniería de datos, analistas de datos, Bis, Administradores DB, o procesos como ETLs. Debe mencionarse para no caer en la ingenuidad que esos roles se pueden desempeñar usando <https://sqliteonline.com/> o MySQLworkbench
En el contexto del curso, se mencionó que se dejaron archivos para que puedas practicar la restauración de datos. Estos archivos probablemente son copias de seguridad de las bases de datos que se han creado hasta ahora. Verifica en la sección de recursos del curso o en el área asignada para materiales complementarios. Si no los encuentras, revisa el foro o contacta al soporte de Platzi para más ayuda.