0. Introducción
Ahora que tenemos instalado Oracle con docker, vamos a ver si somos capaces de ver el sistema de ficheros y entender como funciona el sistema. A continuación, con sqlplus intentaremos hacer la copia de seguridad, y finalmente copiaremos los ficheros de copia de seguridad desde docker a una ubicación fuera de docker.
Créditos:
https://www.ajpdsoft.com/modules.php?name=News&file=print&sid=560#copiaseguridadlogicaoracle
https://www.baeldung.com/ops/docker-container-filesystem
http://www.rebellionrider.com/data-pump-expdp-how-to-export-schema-oracle/
https://arvindasdba.blogspot.com/2016/05/restore-database-schema-from-full-expdp.html
1. Entender Docker
1.0. Ver los contenedores docker en marcha (NO los contenedores internos de Oracle)
docker ps
Y nos sale: (Tomar nota del ID del contenedor y del nombre que está al final)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 34a5f979d3de container-registry.oracle.com/database/express "/bin/bash -c $ORACL…" 4 days ago Up 4 days (healthy) 0.0.0.0:1111->1521/tcp, :::1111->1521/tcp, 0.0.0.0:2222->5500/tcp, :::2222->5500/tcp ximo-oracle-db
1.1 Copiar ficheros entre un contenedor docker y el servidor físico
Y para copiar desde el contenedor al servidor
1.2. Abrir una consola de comandos en dicho contenedor y crear una carpeta donde guardar las copias de seguridad
docker exec -it 34a5f979d3de /bin/bash
Y nos sale una consola de comandos
bash-4.2$
Si ejecutamos pwd para ver donde estmos nos sale /home/oracle
Podemos crear la carpeta /home/oracle/BACKUP_XIMO para descargar las copias de seguridad ahí (es evidente que estamos en el servidor) y por si acaso le damos permiso a 777
mkdir BACKUP_XIMO
chmod 777 BACKUP_XIMO
2. Introducción a las copias de seguridad en Oracle
2.1. Entrar en sqlplus como sys y mapear el directorio físico a uno de la BD
docker exec -it ximo-oracle-db sqlplus / as sysdba
La tercera opción es hace click derecho sobre la BD XEPDB1 de la pestaña Database Navigator de DBeaver ->SQL Editor -> New SQL Script
Una vez dentro de sqlplus nos vamos al contenedor XEPDB1, (no hace falta en DBeaver pues ya estamos en dicho contenedor)
OJO: Seleccionar el contenedor XEPDB1 interno de Oracle (solo en sqlplus) en 1ª y 2ª opciones):
SQL> ALTER SESSION SET CONTAINER = XEPDB1;
Ahora mapeamos el directorio creado, y le asignamos el nombre exp_schema_ximo. No nos olvidemos de colocar un ";" al final de las sentencias SQL sinó NO SE EJECUTARÁN !!
SQL> CREATE DIRECTORY exp_schema_ximo as '/home/oracle/BACKUP_XIMO';
y nos dice "Directory created"
Si queremos listar todos directorios, o solo el que nos interesa:
SQL> SELECT * FROM ALL_DIRECTORIES;
SQL> SELECT * FROM ALL_DIRECTORIES WHERE DIRECTORY_PATH LIKE '%XIMO%';
Y nos devuelve:
OWNER|DIRECTORY_NAME |DIRECTORY_PATH |ORIGIN_CON_ID| -----+---------------+------------------------+-------------+ SYS |EXP_SCHEMA_XIMO|/home/oracle/BACKUP_XIMO| 3|
2.2. Otorgar permisios de lectura y escritura del directorio mapeado al usuario
2.3. Otorgar el rol DATAPUMP_EXP_FULL_DATABASE al usuario
El rol DATAPUMP_EXP_FULL_DATABASE permite:
- Especificar un esquema cualquiera que no sea el tuyo o una lista de esquemas
- Exportar objetos de información adicional de cada esquema especificado, tales como contraseñs etc de manera que se pueden volver a crear los esquemas en la importación a otra BD.
2.4. BACKUP: Ejecutar el comando expdp (fuera de sqlplus) en una shell.
bash-4.2$
expdp SCHM01_XIMO/myPassword@XEPDB1 DIRECTORY = EXP_SCHEMA_XIMO DUMPFILE =exp_schm_ximo.dmp LOGFILE=ximo_lg.log SCHEMAS = SCHM01_XIMO
- SCHM01_XIMO/myPassword@XEPDB1 : nombre esquema/contraseña esquema@contenedor interno de la base de datos
- DIRECTORY = EXP_SCHEMA_XIMO : el directorio creado con CREATE DIRECTORY de sqlplus
- DUMPFILE y LOGFILE son los nombres de los ficheros a generar y pueden ser cualquiera que queramos y a ser posible sin cambiar las extensiones
- SCHEMAS = SCHM01_XIMO es el esquema a guardar. Si se quisiese guardar mas esquemas, se seararían por comas (ejemplo SCHEMAS= SCHM01_XIMO, miesquema1, otro_esquema )
Export: Release 21.0.0.0.0 - Production on Tue Sep 19 12:50:50 2023 Version 21.3.0.0.0 Copyright (c) 1982, 2021, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production Starting "SCHM01_XIMO"."SYS_EXPORT_SCHEMA_01": SCHM01_XIMO/********@XEPDB1 DIRECTORY=EXP_SCHEMA_XIMO DUMPFILE=exp_schm_ximo.dmp LOGFILE=ximo_lg.log SCHEMAS=SCHM01_XIMO Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/STATISTICS/MARKER Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/COMMENT Processing object type SCHEMA_EXPORT/TABLE/IDENTITY_COLUMN Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT . . exported "SCHM01_XIMO"."INVENTORIES" 21.41 KB 1112 rows . . exported "SCHM01_XIMO"."REGIONS" 5.562 KB 4 rows . . exported "SCHM01_XIMO"."CONTACTS" 28.72 KB 319 rows . . exported "SCHM01_XIMO"."COUNTRIES" 6.382 KB 25 rows . . exported "SCHM01_XIMO"."CUSTOMERS" 32.28 KB 319 rows . . exported "SCHM01_XIMO"."EMPLOYEES" 17.35 KB 107 rows . . exported "SCHM01_XIMO"."LOCATIONS" 8.390 KB 23 rows . . exported "SCHM01_XIMO"."ORDERS" 9.781 KB 105 rows . . exported "SCHM01_XIMO"."ORDER_ITEMS" 21.21 KB 665 rows . . exported "SCHM01_XIMO"."PRODUCTS" 33.68 KB 288 rows . . exported "SCHM01_XIMO"."PRODUCT_CATEGORIES" 5.585 KB 5 rows . . exported "SCHM01_XIMO"."WAREHOUSES" 6.171 KB 9 rows Master table "SCHM01_XIMO"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for SCHM01_XIMO.SYS_EXPORT_SCHEMA_01 is: /home/oracle/BACKUP_XIMO/exp_schm_ximo.dmp Job "SCHM01_XIMO"."SYS_EXPORT_SCHEMA_01" successfully completed at Tue Sep 19 12:51:48 2023 elapsed 0 00:00:56
2.5. RESTORE Ejecutar el comando impdp (fuera de sqlplus) en una shell.
impdp SCHM01_XIMO/myPassword@XEPDB1 DIRECTORY = EXP_SCHEMA_XIMO DUMPFILE =exp_schm_ximo.dmp LOGFILE=ximo_lg.log SCHEMAS = SCHM01_XIMO REMAP_SCHEMA=SCHM01_XIMO:SCHM01_XIMO_COP
No hay comentarios :
Publicar un comentario