Tema: Respaldo y recuperación - Don BoscoBase de datos II. Guía 3 1 Facultad: Ingeniería Escuela:...

12
Base de datos II. Guía 3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos II Tema: Respaldo y recuperación Objetivo Implementar respaldo de la base de datos como parte de la recuperación en caso de desastres Materiales Oracle 12 c Guía Número 3 Introducción Plan de recuperación ante desastres Un plan de recuperación ante desastres (del inglés Disaster Recovery Plan) es un proceso de recuperación que cubre los datos, el hardware y el software crítico, para que un negocio pueda comenzar de nuevo sus operaciones en caso de un desastre natural o causado por humanos. Esto también debería incluir proyectos para enfrentarse a la pérdida inesperada o repentina de personal clave, aunque esto no sea cubierto en este artículo, el propósito es la protección de datos Prevención ante los desastres - Enviar respaldos fuera de sitio semanalmente para que en el peor de los casos no se pierda más que los datos de una semana. - Incluir el software así como toda la información de datos, para facilitar la recuperación. - Si es posible, usar una instalación remota de reserva para reducir al mínimo la pérdida de datos. - Redes de Área de Almacenamiento (SANs) en múltiples sitios son un reciente desarrollo (desde 2003) que hace que los datos estén disponibles inmediatamente sin la necesidad de recuperarlos o sincronizarlos - El suministro de energía ininterrumpido (SAI). - El software del antivirus. - El seguro en el hardware. Uso de las herramientas expdp e impdp de Oracle 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. En versiones anteriores a la 11g de Oracle se utilizaban las herramientas exp e imp. Pero desde esa la versión (10gR1) aparece una nueva herramienta llamada Oracle Data Pump que experimenta importantes cambios respecto a sus predecesoras exp e imp.

Transcript of Tema: Respaldo y recuperación - Don BoscoBase de datos II. Guía 3 1 Facultad: Ingeniería Escuela:...

Base de datos II. Guía 3 1

Facultad: Ingeniería

Escuela: Computación

Asignatura: Base de datos II

Tema: Respaldo y recuperación

Objetivo

Implementar respaldo de la base de datos como parte de la recuperación en caso de desastres

Materiales

Oracle 12 c

Guía Número 3

Introducción

Plan de recuperación ante desastres Un plan de recuperación ante desastres (del inglés Disaster Recovery Plan) es un proceso de recuperación que cubre los datos, el hardware y el software crítico, para que un negocio pueda comenzar de nuevo sus operaciones en caso de un desastre natural o causado por humanos. Esto también debería incluir proyectos para enfrentarse a la pérdida inesperada o repentina de personal clave, aunque esto no sea cubierto en este artículo, el propósito es la protección de datos Prevención ante los desastres

- Enviar respaldos fuera de sitio semanalmente para que en el peor de los casos no se pierda más que los datos de una semana.

- Incluir el software así como toda la información de datos, para facilitar la recuperación.

- Si es posible, usar una instalación remota de reserva para reducir al mínimo la pérdida de datos.

- Redes de Área de Almacenamiento (SANs) en múltiples sitios son un reciente desarrollo (desde 2003) que hace que los datos estén disponibles inmediatamente sin la necesidad de recuperarlos o sincronizarlos

- El suministro de energía ininterrumpido (SAI). - El software del antivirus. - El seguro en el hardware.

Uso de las herramientas expdp e impdp de Oracle 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. En versiones anteriores a la 11g de Oracle se utilizaban las herramientas exp e imp. Pero desde esa la versión (10gR1) aparece una nueva herramienta llamada Oracle Data Pump que experimenta importantes cambios respecto a sus predecesoras exp e imp.

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.

Para conocer los parámetros que se utiliza expdp o impdp para ello basta poner desde la linea de comandos help=y.

Ej. Mostrar los parámetros de expdp (exportación):

$ expdp help=y

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. PROCEDIMIENTO Para comenzar crearemos las siguientes carpetas en la unidad C, en donde estaremos guardando el procedimiento de nuestra practica

Ahora procederemos a crear los usuarios, tablespace y datafile, en el ejemplo primero crearemos el datafile, luego el usuario. En algunas PCs aparece un error que no puede crear el usuario.(como en la imagen)en este caso ejecutamos la línea “alter sesión set “_ORACLE_SCRIPT” = true; En caso contrario el usuario se lo creará sin ningún problema

Ahora agregue las siguientes tablas CREATE TABLE TABLA01 (

CAMPO1_1 NUMBER(10),

CAMPO1_2 VARCHAR2(10),

CAMPO1_3 TIMESTAMP,

CAMPO1_4 CLOB);

CREATE UNIQUE INDEX tabla01_idx ON TABLA01(CAMPO1_1);

CREATE TABLE TABLA02 (

CAMPO2_1 NUMBER(10),

CAMPO2_2 VARCHAR2(10));

INSERT INTO TABLA01 VALUES(1, 'Prueba 01', SYSDATE, 'Campo CLOB muy muy largo - Campo CLOB muy

muy largo - Campo CLOB muy muy largo - Campo CLOB muy muy largo - Campo CLOB muy muy largo -

Campo CLOB muy muy largo ... ');

INSERT INTO TABLA01 VALUES(2, 'Prueba 02', SYSDATE, 'Campo CLOB 2');

INSERT INTO TABLA01 VALUES(3, 'Prueba 03', SYSDATE, 'Campo CLOB 3');

INSERT INTO TABLA01 VALUES(4, 'Prueba 04', SYSDATE, 'Campo CLOB 4');

INSERT INTO TABLA01 VALUES(5, 'Prueba 05', SYSDATE, 'Campo CLOB 5');

INSERT INTO TABLA01 VALUES(6, 'Prueba 06', SYSDATE, 'Campo CLOB 6');

INSERT INTO TABLA01 VALUES(7, 'Prueba 07', SYSDATE, 'Campo CLOB 7');

INSERT INTO TABLA01 VALUES(8, 'Prueba 08', SYSDATE, 'Campo CLOB 8');

INSERT INTO TABLA02 VALUES (1, 'Prueba 21');

INSERT INTO TABLA02 VALUES (2, 'Prueba 22');

INSERT INTO TABLA02 VALUES (3, 'Prueba 23');

INSERT INTO TABLA02 VALUES (4, 'Prueba 24');

INSERT INTO TABLA02 VALUES (5, 'Prueba 25');

INSERT INTO TABLA02 VALUES (6, 'Prueba 26');

Revise que se creación las 2 tablas

CREACION DE RESPALDOS

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.

Crearemos el objeto directory con el comando:

create directory CARPETA_EXPORT as 'c:/guia3/completo';

Donde:

CARPETA_EXPORT: será el nombre que le asignemos al directory, será el que

usemos en el comando export (expdp).

'c:/backup/export': unidad y carpeta asignada al directory, será el destino de la copia

de seguridad export.

Para comprobar que el directorio se ha creado correctamente en el usuario system podemos

ejecutar la siguiente select:

select directory_name from dba_directories;

Nos devolverá varios directory, entre ellos el creado anteriormente:

Ahora siempre en el usuario system otorgamos los permisos para el directorio lógico GRANT READ, WRITE ON DIRECTORY CARPETA_EXPORT to udbexp

La carpeta de destino debe existir, si no está creada el export devolverá el error:

ORA-39002: operación no válida

ORA-39070: No se ha podido abrir el archivo

ORA-29283: operación de archivo no válida

ORA-06512: en "SYS.UTL_FILE", línea 536

ORA-29283: operación de archivo no válida

El archivo de respaldo de exportación anterior no debe existir , si ya existe un archivo de respaldo de exportación el comando expdp dará error pues no reemplaza uno existente, el error:

ORA-39001: valor de argumento no válido

ORA-39000: especificación de archivo de volcado errónea

ORA-31641: no se ha podido crear el archivo de volcado

"c:/backup/export/copia_oracle_export.dmp"

ORA-27038: el archivo creado ya existe

OSD-04010: opción <CREATE> especificada; el archivo ya existe

Copia de seguridad completa Ejemplo de export full (copia de seguridad completa de la base de datos) con un único archivo de volcado: expdp system/123456 dumpfile=copia_oracle_export.dmp logfile=copia_oracle_export.log directory=CARPETA_EXPORT full=y

El comando anterior generará el fichero "copia_oracle_export.dmp" en la carpeta indicada en el directory CARPETA_EXPORT (guia3/comlpleto) con la copia de seguridad lógica de todos los datos de toda la base de datos Oracle (todos los usuarios, vistas, tablas, sinónimos, procedimientos, funciones, ...). Generará un fichero llamado

"copia_oracle_export.log" con el resultado de la copia:

Copia de seguridad de un esquema Ahora exportaremos el esquema udbexp, primero crearemos el directorio lógico EXPORT_ESQUEMA create directory EXPORT_ESQUEMA as 'c:/guia3/esquema'; y ahora ejecutamos la sentencia expdp system/123456 schemas=udbexp directory=EXPORT_ESQUEMA

dumpfile=esquema_udbexp.dmp logfile=expdp_udbexplog.log

+ Como puede observar solo se exportan las tablas correspondientes al esquema udbexp Copia de seguridad de tablas especificas El siguiente ejemplo, permite realizar une export de la tabla02 del esquema udbexp expdp udbexp/udbexp tables=TABLA02 directory=EXPORT_ESQUEMA dumpfile=table_02.dmp logfile=table02log.log

IMPORTACION Ahora eliminaremos la tabla 01 y 02 del usuario udbexp

Si recuerda todas las tablas del esquema udbexp quedaron almacenadas en el archivo esquema_udbexp.dmp, en este ejemplo solo importaremos la tabla 01 de dicho respaldo con la siguiente sentencia impdp udbexp/udbexp DIRECTORY=EXPORT_ESQUEMA DUMPFILE=esquema_udbexp.dmp TABLES=tabla01

Ahora ingrese al usuario udbexp y verifique que la tabla fue importada

Ahora recuerde que hicimos un respaldo solo de la tabla 2 y quedó guardado en el archivo table_02.dmp(Copia de seguridad de tablas especificas) Con una sentencia similar a la anterior proceda a importar la tabla01 del archivo table_02.dmp con la siguiente instrucción impdp udbexp/udbexp DIRECTORY=EXPORT_ESQUEMA DUMPFILE=table_02.dmp TABLES=tabla02

Ahora entre al usuario y verifique que se ha importado la tabla 2. ANALISIS DE RESULTADOS Para el análisis de resultado cree una carpeta lógica para cada carpeta de las que se encuentran dentro de la carpeta guia3asignación en total serán 4 carpetas lógicas

Cree un usuario llamado empresa con su respectivo tablespace y datafile y agregue las siguientes tablas Bloque 1 tablas DEPT y EMP

CREATE TABLE DEPT

(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,

DNAME VARCHAR2(14) ,

LOC VARCHAR2(13) ) ;

CREATE TABLE EMP

(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,

ENAME VARCHAR2(10),

JOB VARCHAR2(9),

MGR NUMBER(4),

HIREDATE DATE,

SAL NUMBER(7,2),

COMM NUMBER(7,2),

DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);

INSERT INTO DEPT VALUES

(10,'ACCOUNTING','NEW YORK');

INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');

INSERT INTO DEPT VALUES

(30,'SALES','CHICAGO');

INSERT INTO DEPT VALUES

(40,'OPERATIONS','BOSTON');

INSERT INTO EMP VALUES

(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);

INSERT INTO EMP VALUES

(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);

INSERT INTO EMP VALUES

(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);

INSERT INTO EMP VALUES

(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);

INSERT INTO EMP VALUES

(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);

INSERT INTO EMP VALUES

(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);

INSERT INTO EMP VALUES

(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);

INSERT INTO EMP VALUES

(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);

INSERT INTO EMP VALUES

(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);

INSERT INTO EMP VALUES

(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);

INSERT INTO EMP VALUES

(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);

INSERT INTO EMP VALUES

(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);

INSERT INTO EMP VALUES

(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);

INSERT INTO EMP VALUES

(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);

Bloque 2 tablas BONUS y SALGRADE CREATE TABLE BONUS

(

ENAME VARCHAR2(10) ,

JOB VARCHAR2(9) ,

SAL NUMBER,

COMM NUMBER

) ;

CREATE TABLE SALGRADE

( GRADE NUMBER,

LOSAL NUMBER,

HISAL NUMBER );

INSERT INTO SALGRADE VALUES (1,700,1200);

INSERT INTO SALGRADE VALUES (2,1201,1400);

INSERT INTO SALGRADE VALUES (3,1401,2000);

INSERT INTO SALGRADE VALUES (4,2001,3000);

INSERT INTO SALGRADE VALUES (5,3001,9999);

COMMIT;

Deje constancia de los querys realizados Respaldos En la carpeta respaldo completo, realice un respaldo completo de la base de datos y también realice un respaldo completo con formato de compresión En la carpeta esquema_ejercicio, realice un respaldo del esquema empresa En la carpetarespaldo tablas, realice un respaldo de las tablas DEPT y EMP En la carpeta respaldo_query, realice un respaldo de la tabla salgrade en donde HISAL sea mayor o igual 1800 Importaciones Elimine las tablas creadas y realice los script de importación, muestrelos al instructor al final de la práctica

INVESTIGACION COMPLEMENTARIA Investigue como importar una tabla de un esquema hacia otro esquema:

- Cree dos usuarios: Usuario1 y Usuario2

- En usuario 1 agregue las tablas DEPT y EMP utilizadas en el análisis de resultados

- Realice un respaldo

- Del respaldo creado en el punto anterior, importe las tablas DEPT y EMP pero hacia el usuario 2

Realice dos ejemplos haciendo uso de los parámetros INCLUDE y EXCLUDE