<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Administración de ORACLE en Español &#187; datapump</title>
	<atom:link href="http://colacios.es/blog/WordPress3/tag/datapump/feed/" rel="self" type="application/rss+xml" />
	<link>http://colacios.es/blog/WordPress3</link>
	<description>Administración de Base de datos ORACLE en español</description>
	<lastBuildDate>Tue, 11 Mar 2014 12:56:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Uso de las herramientas expdp e impdp de Oracle</title>
		<link>http://colacios.es/blog/WordPress3/uso-de-las-herramientas-expdp-e-impdp-de-oracle/</link>
		<comments>http://colacios.es/blog/WordPress3/uso-de-las-herramientas-expdp-e-impdp-de-oracle/#comments</comments>
		<pubDate>Wed, 16 Jan 2013 13:07:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración Oracle]]></category>
		<category><![CDATA[datapump]]></category>
		<category><![CDATA[exp]]></category>
		<category><![CDATA[expdp]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[imp]]></category>
		<category><![CDATA[impdp]]></category>
		<category><![CDATA[import]]></category>

		<guid isPermaLink="false">http://colacios.es/blog/WordPress3/?p=117</guid>
		<description><![CDATA[Oracle ofrece unas herramientas para realizar exportaciones/importaciones de datos que nos permiten desde realizar backups de esquemas completos, de bases de datos, de tablas, hasta la migración de esquemas en diferentes versiones, y un sin fin de posibilidades. La idea &#8230; <a href="http://colacios.es/blog/WordPress3/uso-de-las-herramientas-expdp-e-impdp-de-oracle/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Oracle ofrece unas herramientas para realizar exportaciones/importaciones de datos que nos permiten desde realizar backups de esquemas completos, de bases de datos, de tablas, hasta la migración de esquemas en diferentes versiones, y un sin fin de posibilidades.</p>
<p style="text-align: justify;">La idea de esta entrada del blog es explicar cómo realizar difentes exportaciones e importaciones en función de nuestras necesidades. En versiones anteriores a la 10gR1 de Oracle se utilizaban las herramientas exp e imp. Pero desde esa versión (10gR1) aparece una nueva herramienta llamada <strong><em>Oracle Data Pump</em></strong> que experimenta importantes cambios respecto a sus predecesoras exp e imp.</p>
<p style="text-align: justify;">Una de las diferencias más sustanciales de la nueva herramienta es que pasa de ser una herramienta que se ejecuta en el servidor en lugar de en el cliente, con la mejora de rendimiento/velocidad que eso conlleva. Por tanto los ficheros de dump (.dmp normalmente) se generarán o leerán en el servidor de base de datos.</p>
<p style="text-align: justify;">Las antiguas exp/imp ya se encuentran fuera de soporte. Por lo que es más que recomendable adaptarse al uso de Oracle Data Pump.</p>
<p style="text-align: justify;">Para empezar lo ideal es conocer los parámetros que se le pueden pasar a expdp o impdp para ello basta poner desde la linea de comandos help=y.</p>
<p style="text-align: justify;">En esta entrada de blog todos los ejemplos están hechos en Linux.</p>
<p style="text-align: justify;">Ej. Mostrar los parámetros de expdp (exportación):</p>
<p style="text-align: justify;"><strong>$ expdp help=y</strong></p>
<p style="text-align: justify;">Para poder usar Oracle Data Pump debemos realizar unos pasos previos a nivel de Oracle que nos permita ejecutar la herramienta correctamente. El primer paso que debemos realizar es crear el directorio a nivel lógico en Oracle que especifica la ruta que Oracle usará para realizar los exports e imports. De esta manera no tendremos nunca que modificar nuestros scripts de export/import, ya que en el script especificaremos el nombre que nosotros hayamos puesto a nivel lógico.</p>
<p style="text-align: justify;">Para crear el directorio nos conectamos con el usuario &#8220;sys&#8221;:</p>
<p style="text-align: justify;"><strong><em>$ sqlplus /nolog</em></strong></p>
<p><strong><em>SQL&gt;connect /as sysdba</em></strong></p>
<p style="text-align: justify;"><strong><em>SQL&gt; show user</em></strong></p>
<p style="text-align: justify;"><strong><em>USER is &#8220;SYS&#8221;</em></strong></p>
<p style="text-align: left;"><strong><em>SQL&gt; create or replace directory dirdatapump as &#8216;/home/oracle/dirdatapump&#8217;;</em></strong></p>
<p style="text-align: justify;"><strong><em> </em></strong><strong><em>Directory created.</em></strong></p>
<p style="text-align: justify;"><strong><em> </em></strong><strong><em>SQL&gt; grant read,write on directory dirdatapump to system;</em></strong></p>
<p style="text-align: justify;"><strong><em> Grant succeeded.</em></strong></p>
<p style="text-align: justify;">Con esto ya tenemos el directorio creado llamado dirdatapump que será el que usaremos en nuestros scripts. Si quisieramos modificar la ruta del directorio deberíamos volver a ejecutar los pasos anteriores especificando la nueva ruta. Al usuario que hemos dado permisos para poder hacer los exports/imports lo hemos especificado en la segunda setencia con el &#8220;grant&#8221;, en el ejemplo &#8220;system&#8221;.</p>
<p style="text-align: justify;">Una vez hecho esto, ya podemos empezar a crear nuestros scripts para hacer las exportaciones o importaciones que necesitemos. Seguidamente pongo algún ejemplo&#8230;</p>
<p style="text-align: justify;"><strong><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Ejemplo 1</span></span></strong>: Exportar datos de un esquema en concreto</p>
<p style="text-align: justify;">Crear un fichero llamado expdp.sh y añadir el siguiente contenido:</p>
<p style="text-align: justify;">$ vi expdp.sh</p>
<p style="text-align: left;"><strong><em>expdp system/password@micadenaconexion schemas=USUARIO_EJEMPLO directory=dirdatapump dumpfile=esquema_USUARIO_EJEMPLO.dmp  logfile=expdp_USUARIO_EJEMPLO.log</em></strong></p>
<p style="text-align: justify;">Dar permisos de ejecución al script en Linux:</p>
<p style="text-align: justify;">$ chmod u+x expdp.sh</p>
<p style="text-align: justify;">donde&#8230;</p>
<p style="text-align: justify;"><strong><em>USUARIO_EJEMPLO</em></strong> es el nombre de usuario</p>
<p style="text-align: justify;"><strong><em>micadenaconexion</em></strong> es el nombre de la instancia a la que nos conectamos</p>
<p style="text-align: justify;"><strong><em>dirdatapump</em></strong> es la ruta que hemos especificado en la creación del directorio a nivel lógico. En este ejemplo &#8216;/home/oracle/dirdatapump&#8217;</p>
<p style="text-align: justify;">Este export generará un fichero con extensión .dmp que posteriormente usaremos para realizar el import en función de nuestras necesidades.</p>
<p style="text-align: justify;">Ya podríamos ejecutar el script para realizar el export:</p>
<p style="text-align: justify;">$ . ./expdp.sh</p>
<p style="text-align: justify;">- Ejemplo de import usando el anterior export para crear el esquema en otra instancia:</p>
<p style="text-align: left;"><strong><em>impdp system/password@<span style="color: #ff0000;">micadenaconexion2</span> schemas=USUARIO_EJEMPLO directory=dirdatapump dumpfile=esquema_USUARIO_EJEMPLO .dmp  logfile=impdp_USUARIO_EJEMPLO.log</em></strong></p>
<p style="text-align: justify;">Donde &#8230;</p>
<p style="text-align: justify;"><strong><em>micadenaconexion2</em></strong> es el nombre de una nueva instancia donde por ejemplo quiero importar los datos del esquema que he exportado anteriormente. Si el usuario no existe el propio impdp lo crea.</p>
<p style="text-align: justify;"> <strong><span style="text-decoration: underline;">Ejemplo 2</span></strong>: Quiero copiar un esquema de desarrollo a un entorno de producción pero con otro nombre.</p>
<p style="text-align: justify;">Para ello usaremos el parámetro <em>REMAP_SCHEMA</em> en el import.</p>
<p style="text-align: justify;">Export:</p>
<p><strong><em>expdp system/password@micadenaconexion schemas=USUARIO_DESARROLLO directory=dirdatapump dumpfile=esquema_USUARIO_DESARROLLO .dmp  logfile=expdp_USUARIO_DESARROLLO.log</em></strong></p>
<p style="text-align: justify;">Import:</p>
<p><strong><em>impdp system/password@micadenaconexion <span style="color: #ff0000;">remap_schema</span>=USUARIO_DESARROLLO:USUARIO_PRODUCCION directory=dirdatapump dumpfile=esquema_USUARIO_DESARROLLO .dmp  logfile=impdp_USUARIO_REMAP.log</em></strong></p>
<p style="text-align: justify;"><strong>Ejemplo 3</strong>: Quiero copiar un esquema y quiero que el fichero .dmp se sobreescriba para evitar el error al ejecutar expdp y así tener la última versión del esquema exportado.</p>
<p style="text-align: justify;">Sólo basta con añadir el parámetro <em>REUSE_DUMPFILES=y </em>en el export.</p>
<p style="text-align: justify;">Export:</p>
<p><strong><em>expdp system/password@micadenaconexion schemas=USUARIO_EJEMPLO directory=dirdatapump dumpfile=esquema_USUARIO_EJEMPLO.dmp  <span style="color: #ff0000;">resuse_dumpfile</span>=y logfile=expdp_USUARIO_EJEMPLO.log</em></strong></p>
<p style="text-align: justify;">Nota:</p>
<p style="text-align: justify;">Si no sabemos que ruta tenemos definida como &#8220;directory&#8221; la tabla all_directories nos podrá facilitar esta información,  podemos ejecutar la siguiente setencia:</p>
<p style="text-align: justify;"><strong><em>SELECT privilege,directory_name, directory_path</em></strong><br />
<strong><em>FROM user_tab_privs t, all_directories d</em></strong><br />
<strong><em>WHERE t.table_name(+)=d.directory_name and d.directory_name = &#8216;DIRDATAPUMP&#8217;</em></strong><br />
<strong><em>ORDER BY 2,1</em></strong><br />
<strong><em>/</em></strong></p>
<p style="text-align: justify;">o esta para saber todos los directorios configurados de Oracle</p>
<p><em><strong>SELECT privilege,directory_name, directory_path</strong></em><br />
<em><strong>FROM user_tab_privs t, all_directories d</strong></em><br />
<em><strong>WHERE t.table_name(+)=d.directory_name ORDER BY 2,1</strong></em><br />
<em><strong>/</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://colacios.es/blog/WordPress3/uso-de-las-herramientas-expdp-e-impdp-de-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
