Posts

Showing posts with the label datapump

Datapump 06 - Como respaldar el AWR con export datapump

Este es el sexto artículo sobre datapump, igualmente este pudiera ser un post referente a AWR. Vamos a ver como respaldar los datos del AWR (Automatic Workload Repository) con el Oracle Datapump. Como sabemos el AWR tiene una retención definida, por defecto solo guarda los últimos 8 días. Si queremos preservar un periodo en particular o llevarlo a otro ambiente para su posterior análisis podemos respaldarlo con un export datapump, Oracle trae un script que simplifica esta tarea. Paso 01.- Creamos el objeto directorio. sqlplus / as sysdba CREATE OR REPLACE DIRECTORY DPUMP_AWR AS '/home/oracle/dbprocs/awr'; Paso 02.- Exportamos el AWR con el script awrextr.sql. El script va a requerir que ingresemos 4 datos. sqlplus / as sysdba @?/rdbms/admin/awrextr.sql Paso 02.1.- database id, el script te sugiere uno. The default database id is the local one: '3645396109'. To use this database id, press to continue, otherwise enter an alternative. Enter value f

Datapump - 04 Export con flashback time

Image
Cuando escucho la palabra "Flashback" lo primero que pienso es el video juego de los años 90, muy divertido y adelantado para su época. Sin embargo, en esta oportunidad vamos a hablar de Oracle Flashback en el Datapump y como nos permite hacer viajes en el tiempo. Flashback es una tecnología que comenzó con Oracle 9i y sigue evolucionando. Esta herramienta permite a los administradores y usuarios ver y manipular estados pasados de los datos sin necesidad de recuperar toda la base de datos a un punto de tiempo en especifico. Vamos a crear un respaldo de una tabla pero con su imagen de hace 30 minutos y no con la imagen actual. Comencemos: 01.- Insertamos 5 registros a la 14:00, la tabla tiene un campo llamado "fecha" donde vamos a insertar la hora actual a través de la función SYSDATE. 14:00:33 SQL> INSERT INTO test.tab01 (ID,NOMBRE,FECHA) SELECT level, 'First Load', sysdate FROM dual CONNECT BY level <= 5; 5 rows created. 14:00:46 SQL>

Datapump – 03 Directorios

Una diferencia obvia entre Datapump y el export/import tradicional es el uso de objetos Directorio, lo cual algunas personas les causa un poco de confusión. Son objetos de base de datos que apuntan a un directorio específico en el sistema operativo, estos permiten flexibilidad en el manejo de códigos y script, a diferencia de poner explícitamente la ruta del directorio, lo que se conoce como *"quemar" o "harcodear",  solo utilizas este alias, es decir si la ruta cambia no afecta al código. Comencemos: Como crear un directorio: CREATE OR REPLACE DIRECTORY EXP_DIR AS '/u01/workarea'; Si requerimos que otros usuarios tengan acceso de lectura y/o escritura: GRANT READ, WRITE ON DIRECTORY EXP_DIR TO otro_usuario; Chequear quienes tienen permisos sobre el directorio: COL TABLE_NAME FOR A32 COL GRANTEE FOR A24 COL OWNER FOR A16 COL GRANTOR FOR A16 COL PRIVILEGE FOR A12 SELECT * FROM DBA_TAB_PRIVS WHERE TABLE_NAME='EXP_DIR'; Revisar los directori

Datapump – 02 ¿Por qué falla el comando el Export Datapump con la opción Parallel en Oracle RAC?

Teníamos un script para un export/import datapump que funcionaba cuando la BD era single y ahora que fue llevada a Oracle RAC está fallando. ¿Qué sucedió? Cuando se activa la opción de PARALLEL el datapump va a invocar varios trabajadores para separar el trabajo y así optimizar el proceso, sin embargo hay que tener en cuenta un detalle cuando estamos en una configuración de Oracle RAC. Estos trabajadores van a estar en cada nodo del RAC, entonces el dumpfile debe estar ubicado en un almacenamiento compartido como ASM o un Clustered-filesystem, sino va a suceder el siguiente error. ORA-31693: Table data object "TEST"."TEST_15" failed to load/unload and is being skipped due to error: ORA-31617: unable to open dump file "/datadir/temp_expdp /TEST_test_03.dmp" for write ORA-19505: failed to identify file "/datadir/temp_expdp /TEST_test_03.dmp" ORA-27037: unable to obtain file status Como conclusión, Datapump(PARALLEL) en Oracle RAC el d

Datapump - 01 Extraer sentencias DDL de un export Datapump

Saludos, estoy comenzando el día de hoy con una serie de al menos 10 artículos relacionados con la herramienta de datapump, esta apareció con oracle 10g como la evolución del export/import. Datapump trae mejoras e interesantes funcionalidades con cada nueva versión de Oracle. Si solo lo has usado para mover y hacer un respaldo lógico de una tabla o esquema, quizás te estás perdiendo de algunas utiles caracteristicas que pueden simplificar tu vida. Si deseamos extraer en un archivo el script de creación y carga de un export datapump que realizamos previamente. impdp  DUMPFILE=EXP_DIR:expADM_ADMIN.dmp sqlfile=EXP_DIR:sqlADM_ADMIN.sql