Transferencia de datos en Oracle

3,284 views

Published on

Transferencia de datos en Oracle 11g R2, Oracle 11g R2, Data Pump, import/export data

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,284
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transferencia de datos en Oracle

  1. 1. ADMINISTRACIÓN DE ORACLE 11G Transferencia de datos 1Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  2. 2. INTRODUCCIÓN  En muchos casos es necesario volcar datos a la base de datos o intercambiar datos entre bases de datos.  El INSERT no es siempre la mejor opción.  Oracle nos da las herramientas:  SQL*Loader  Data Pump 2Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  3. 3. MÉTODOS PARA MOVER DATOS SQL*Loader Directory Objects External Tables 3Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  4. 4. SQL*LOADER  En muchos casos nos encontraremos con la situación que tenemos que volcar datos que nos llegan de un tercero. Por ejemplo en un fichero.  El DBA puede configurar SQL*Loader para que sea capaz de entender el formato de este fichero y pueda volcar los datos.  SQL*Loader puede insertar filas de 2 formas:  La convencional  Utiliza INSERTS y COMMITS  La directa  No se usa la SGA, no se usa el database buffer cache ni los logs.  Se manda escribir en una zona libre del datafile marcando los bloques sin que sean “visibles”.  Al terminar avisa a la base de datos y se hacen visibles (“commit”) 4Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  5. 5. SQL*LOADER  Inconvenientes del método directo:  Las restricciones de integridad deben eliminarse o desactivarse durante la operación.  Si hay triggers definidos, no se lanzarán.  Las tablas afectadas quedarán bloqueadas para otros usuarios.  No se puede aplicar a tablas en modo cluster. 5Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  6. 6. SQL*LOADER  Ficheros necesarios en una operación SQL*Loader:  El fichero de entrada  Donde están los datos a cargar.  El fichero de control  Tiene extensión ctl  Es el que contiene las reglas para interpretar el fichero de entrada (secuencia que se seguirá, campos, delimitadores).  Los ficheros de log  Resumen el proceso y los errores que hubieron durante la carga.  Puede ser que algunas de las filas no se carguen por algún error.  De formato  De integridad de la base de datos  Las filas que dan error se guardan en un “bad file” 6Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  7. 7. TALLER 1 Ejemplo de ejecución de SQL*Loader. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 7
  8. 8. DIRECTORY OBJECTS  Directory Object es una estructura lógica que representa un directorio físico del sistema de ficheros de servidor.  Son propiedad del usuario SYS, aunque los cree otro usuario.  Su nombre no puede repetirse  Los permisos no coinciden con los permisos del sistema operativo  Los ficheros que estan dentro del directorio tienen los mismos permisos que éste.  El parámetro UTL_FILE_DIR indica qué paths pueden ser accedidos (separados por comas).  Por defecto es null  Puede ser * si queremos que sea cualquier directorio (esto no es NADA recomendable).  Estos objetos son necesarios para poder hacer las operaciones de Data Pump. 8Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  9. 9. TALLER 2 Cómo crear un directorio. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 9
  10. 10. TABLAS EXTERNAS  Una tabla externa es un objeto de la base de datos que se almacena como tal, pero no tiene segmentos, porque su estructura depende exclusivamente del sistema operativo.  Se pueden hacer consultas sobre ellas, como si se trataran de tablas normales, pero no se pueden hacer operaciones DML estándar.  No pueden tener índices, ni restricciones ni triggers asociados.  Se utilizan para las operaciones de Data Pump.  Se accede a ellas a través de los directorios. 10Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  11. 11. TABLAS EXTERNAS  Para crearlas se utiliza CREATE TABLE con las palabras clave ORGANIZATION EXTERNAL.  Esto indica que la tabla no existe como segmento, sino como fichero dentro del sistema operativo. 11Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  12. 12. TABLAS EXTERNAS  El comando anterior:  Crea una tabla externa que toma los valores del fichero depts.txt  Busca este fichero en el DEFAULT DIRECTORY  Como hemos dicho que el tipo de la tabla es oracle_loader, los parámetros que recibe son idénticos que en SQL*Loader.  Podríamos insertar datos en esta tabla con un CREATE TABLE…AS SELECT… 12Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  13. 13. TABLAS EXTERNAS  Si el tipo que se le da a la tabla es DATAPUMP, sólo se permite la escritura de datos en formato Data Pump.  No serían necesarios otros parámetros.  Una vez creada de esta manera, el comportamiento sería el mismo. 13Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  14. 14. TALLER 3 Usar SQL*Loader Carmen Soler Chorro - http://www.linkedin.com/in/casoch 14
  15. 15. TALLER 4 Usar tablas externas. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 15
  16. 16. DATA PUMP VS EXPORT/IMPORT  El objetivo es el mismo: extraer grandes cantidades de datos e insertarlos en otra parte.  En versiones antiguas se daban las utilidades Export e Import.  Tienen la limitación de que se han de conectar a la base de datos a través de un proceso de servidor, por lo que nos tenemos que conectar desde un cliente (herramienta cliente/servidor)  El formato de un fichero de Export/Import y de Data Pump, no tienen nada que ver.  Data Pump existe a partir de la versión 10g.  Por lo que para importar datos de bases de datos más antiguas la única opción es utilizar Export/Import.  Data Pump tiene como ventaja que no necesita de un proceso de servidor, es sólo una utilidad de servidor (no necesita un cliente desde el que conectarse).  Gracias a esto mejora notablemente el rendimiento, al tener acceso directo a los datafiles y a la SGA. No se entra por sesión. 16Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  17. 17. DATA PUMP VS EXPORT/IMPORT  Procesos relacionados:  Expdp.exe y impdp.exe  Se utilizan para lanzar, controlar y monitorizar las tareas de Data Pump  Cuando se inicia una tarea de Data Pump se apoya en un proceso llamado DWn.  Como pueden haber varios, necesita un DMnn (Data Pump Master process) que lo gestione.  Un Data Pump genera 3 tipos de ficheros:  Fichero SQL  Con el DDL que definen los objetos de los que se hace data pump  Se pueden generar con o sin datos.  Dump files  Contiene los datos exportados de la base de datos.  Logfiles  Describe todo lo que ha ocurrido durante el proceso. 17Carmen Soler Chorro - http://www.linkedin.com/in/casoch
  18. 18. TALLER 5 Hacer un Data Pump Export e Import. Carmen Soler Chorro - http://www.linkedin.com/in/casoch 18

×