Data Pump

download Data Pump

of 11

Transcript of Data Pump

Universidad Politcnica Salesiana

Materia:Base de datos II.

Tema:Data Pump

Integrantes:Edison Barzallo Carlos Buay Cristian Cordero Sebastin Zhinin Grace Culcay.

Fecha de realizacin:11/02/2 012

Ciclo lectivo: 201 2

OBJETIVORealizar el proceso de respaldo y recuperacin (expdp, impdp) debemos pasar respaldos hechos en Windows, y subirlos luego en Ubuntu Se debe realizar respaldo toda la base de datos (FULL EXPORT), respaldo solo de 1 usuario (hr) y respaldo de 1 o n tabla Y realizar una auditora automtica en Oracle audit_trail

DATA PUMPA partir de Oracle 10 se utilice data pump en las utilidades de import y export. Data pump soporta todas las nuevas funcionalidades de Oracle 10. Tambin el diseo de Data Pump permite mayores prestaciones en el movimiento de datos que el import o export. De hecho en Oracle 11 los export y imports originales estn de soportados.

Es ms, Oracle recomienda el uso de Data Pump excepto en las siguientes situaciones: Se necesita importar archives creados con un export. Se quiere importar datos en una versin anterior de la base de datos, para eso deberemos utilizar el export original ya que los archivos generados con el import no son compatible con data pump. Oracle Data Pump se compone de distintas partes: Lnea de comandos expdp y impdp El paquete PL/SQL DBMS_DATAPUMP (tambin conocido como la API de Data Pump) El paquete de PL/SQL DBMS_METADATA (tambin conocido como el API de Metadata).

Los clientes de data pump, expdm y impdp, invoca las utilidades de Data Pump export y data pump import respectivamente. Esta interfaz es muy similar la export e import originales.

El objeto directorio Lo primero que se necesita para utilizar Datapump es un objeto directorio. Este tipo de objeto se corresponde a un directorio de sistema operativo y es donde Datapump dejara todos los ficheros. Cmo crear un directorio:

Sqlplus / as sysdba SQL> CONNECT system/eb; SQL> CREATE OR REPLACE DIRECTORY directorio AS 'N:\exporter\datapump';

Figura 1

Nota: Estos directorios ya deben estar creados en disco, ya que la sentencia CREATE DIRECTORY define un directorio como objeto en la base de datos, pero no lo crea fsicamente. Hay que comprobar que el directorio sea vlido y que existan los permisos necesarios para acceder a l en los directorios fsicos definidos como directorio de bd. Nota2: Para crear un directorio es necesario tener el rol DBA o el privilegio CREATE ANY DIRECTORY.

Se otorgan permisos de escritura y lectura sobre los directorios al usuario system, porque en este caso es el encargado de realizar la exportacin. SQL> GRANT read, write ON DIRECTORY directorio TO SYSTEM;

Para consultar todos los directorios definidos en la bd y su equivalencia con sistemas de ficheros de s.o. SQL> SELECT * FROM DBA_DIRECTORIES;

Figura 2 Una vez que se ha creado el directorio, se puede utilizar el parmetro DIRECTORY utilizando el nombre del objeto directorio, en vez de la ruta del SO. Si se ha creado el directorio con el nombre por defecto de DATA_PUMP_DIR, no se necesita especificar el parmetro DIRECTORY en el comando export/import Oracle automticamente buscar el directorio especificado para el valor DATA_PUMP_DIR.

Exportacin completa (Full Export Mode)Una exportacin completa se especifica con el parmetro FULL. Para ello el usuario que exporta debe tener el rol DATAPUMP_EXP_FULL_DATABASE (El usuario system tiene este rol). Se verifica que el usuario que va a realizar la exportacin tiene los roles necesarios: SELECT * FROM SYS.DBA_ROLES; Con esta vista se ven todos los roles del usuario system. SELECT * FROM DBA_ROLE_PRIVS WHERE granted_role='DATAPUMP_EXP_FULL_DATABASE';

Figura 3

Ejemplo $ expdp system/eb full=Y DIRECTORY=directorio DUMPFILE=fulldump.dmp LOGFILE=fulllog.log; expdp: comando con el que se realiza la exportacin Data Pump system/eb: usuario y contrasea con el que realizo la exportacin Data Pump . full=Y: parmetro que indica la exportacin de la base de datos completa. DIRECTORY=Nombre del objeto directorio que se asign en el principio. DUMPFILE=fulldump.dmp: Se pone el nombre del fichero mediante DUMPFILE. LOGFILE= fulllog.log: Indica el nombre del fichero log mediante LOGFILE

Figura 4

Figura 5

Figura 6

Exportacin e Importacin de un esquema (Schema Mode)

La exportacin de un esquema se especifica usando el parmetro SCHEMAS. Para excluir un usuario y todos sus objetos puede emplearse el filtro: EXCLUDE=SCHEMA:=. Tambin puede emplearse este filtro para

excluir nicamente alguno de los objetos de dicho usuario: EXCLUDE=TABLE:IN(). Ejemplo:

Exportacin

$ expdp system/eb schemas=hr DIRECTORY=directorio DUMPFILE=hrdump.dmp LOGFILE=hrlog.log;

Importacin

$ impdp system/eb DIRECTORY=directorio dumpfile=HRDUMP.DMP logfile=hrlog.log REMAP_SCHEMA=hr:usr_importar expdp comando con el que se realiza la exportacin DataPump. impdp comando con el que se realiza la importacin DataPump. system/eb: usuario y contrasea con el que realizo la exportacin. schemas=hr: parmetro que indica el esquema a exportar. DIRECTORY=Nombre del objeto directorio que se asign en el principio. DUMPFILE=hrdump.dmp: Se pone el nombre del fichero mediante DUMPFILE. LOGFILE=hrdump.log: Indica el nombre del fichero log mediante. REMAP_SCHEMA=hr:usr_importar=comando con el cual se renombra a al nuevo usuario.

Figura 7

Figura 8

Figura 9 Exportacin e Importacin de una tabla (Table Mode) El parmetro TABLES se usa para especificar las tablas que son exportadas. Ejemplo: Exportacin $ expdp system/eb tables=hr.JOBS DIRECTORY=directorio DUMPFILE=jobsdump.dmp LOGFILE=jobslog.log Importacin $ impdp system/eb TABLES=hr.JOBS DIRECTORY=directorio DUMPFILE=JOBSDUMP.DMP lonfile=jobslog REMAP_SCHEMA=hr:usr_importar expdp= comando con el que se realiza la exportacin DataPump impdp comando con el que se realiza la importacin DataPump. system/eb: usuario y contrasea con el que realizo la exportacin. tables=hr.JOBS: parmetro que indica la(s) tabla(s) a exportar. DUMPFILE=jobsdump.dmp: Se pone el nombre del fichero mediante DUMPFILE. DIRECTORY=Nombre del objeto directorio que se asign en el principio. LOGFILE=jobslog.log: Indica el nombre del fichero log mediante LOGFILE. REMAP_SCHEMA=hr:usr_importar=comando con el cual se renombra a al nuevo usuario.

Figura 10

Figura 11

Figura 12

Activar auditora de una base de datosSe puede auditar las conexiones a una base de datos ORACLE o auditar los intentos de modificacin a las tablas de un usuario de una forma automtica. Teniendo en cuenta que el parmetro que habilita la posibilidad de auditar la base de datos ORACLE en el init.oraes audit_trail que el comando sql que activa la auditora sobre algo es AUDIT ( para desactivar NOAUDIT ) y que la tabla para mirar ( usuario sys ) el seguimiento de auditora es dba_audit_trail . Activar la auditoria de intento de conexiones fallidas para todos los usuarios. Miramos que actualmente no est activada la auditoria en la base de datos. SQL> select name , value from v$parameter where name like 'audit_trail'; audit_trail NONE Activamos la auditora de la base de datos

SQL> alter system set audit_trail = DB scope = spfile; Reiniciamos la base de datos ( shutdown immediate, startup ) y comprobamos que la auditora se ha activado. SQL> select name, value from v$parameter where name like 'audit_trail'; audit_trail DB Activamos la auditora para ver la conexin y desconexin de los usuarios a la base de datos, se hace con la siguiente sentencia SQL> audit connect; Visualizar las tablas de auditora para comprobar que se insertan datos cuando intentamos conectarnos sin lograrlo. Nos conectamos con varios usuarios a la base de datos ( en nuestro caso con system y el usuario hr , otro que est creado ) SQL> connect hr/hr; SQL> connect system/system; Tras habernos conectado a la base de datos miramos la tabla dba_audit_trail para ver que datos contiene. SQL> select username , action_name , priv_used , returncode from dba_audit_trail ;

Figura 13

Observarnos que en esta tabla se registran los intentos de conexin de los usuarios, por lo tanto podemos saber quien se ha conectado a la base de datos Activar la auditora sobre la modificacin de tablas del usuario Scott. Ahora vamos a activar la auditora sobre la modificacin de las tablas sobre el usuario Scott, de esta forma cualquier modificacin realizada en una tabla que pertenezca a este usuario ser registrada en las tablas y podremos ver quien ha realizado esa modificacin. SQL>audit SQL>audit SQL>audit SQL>audit insert,update insert,update insert,update insert,update on on on on scott scott scott scott . bonus by access; . emp by access; .dept by access; . salgrade by access;

En este caso estamos auditando cada una de las tablas que pertenecen al usuario scott ( bonus, emp, dept, salgrade ) en caso de que alguien inserte algo en ellas o realice alguna actualizacin. ( si queremos auditar el borrado o la lectura de alguna fila, solo hay que aadir los permisos de select y delete detrs del comando audit).Al ponerlo by access se guardar un registro en la tabla de auditora por cada intento de insert o update que se realice sobre cada una de las tablas nombradas. ( exite tambin el registro by session, en el cual se registra por sesin nica el intento de insert o update sobre las tablas ).

Miramos la tabla user_obj_audit_opts ( con el usuario scott ) SQL>select * from user_obj_audit_opts;

Figura 14 Y observamos que es lo que estamos auditando del usuario scott, en este caso se vera que eta activada para cada una de las tablas la auditora para update e insert. (A/A) --> activado / por acceso

La prueba que se puede realizar es conectarse con otro usuario que tenga permisos de insert y update sobre estas tablas y realizar una serie de inserciones y actualizaciones en esas tablas. En este caso suponemos que un usuario, hr que tiene permisos de insercin y actualizacin sobre las tablas del usuario scott ha realizado una serie de inserciones y actualizaciones sobre estas tablas. La forma de ver si las ha realizado o no ( teniendo activada la auditora es la siguiente ). SQL>select * from sys . dba_audit_trail where ( action_name = 'INSERT' ) or ( action_name = 'UPDATE' ) ;

Figura 15 CONCLUSIONES Hemos realizado el proceso de respaldo y recuperacin desde Windows hacia Ubuntu de diferentes formas respaldando toda la base de datos (FULL EXPORT), respaldo solo de 1 usuario (hr) y respaldo de 1 o n tabla Y hemos realizar una auditora automtica en Oracle audit_trail. BIBLIOGRAFA http://cajondesastreoracle.wordpress.com/2010/08/04/data-pump-versus-importexport/ http://www.oracle-base.com/articles/10g/OracleDataPump10g.php http://www.orasite.com/backup-de-base-de-datos/export-oracle-10g/11g http://www.orasite.com/seguridad/activar-auditoria-de-una-base-de-datos