Site hosted by Angelfire.com: Build your free website today!

 

Oracle: Administración de Base de Datos

Guía del Estudiante

 

 

RESPONSABILIDADES DE UN ADMINISTRADOR DE BASES DE DATOS (DBA)

·         El DBA contribuye con su trabajo al funcionamiento eficaz de todos los sistemas que se ejecutan con la base de datos Oracle; Además ofrece asistencia técnica a quienes interactuan con la Base de Datos y se espera que tenga soltura en todos los aspectos técnicos que surjan con el software de Oracle. Dentro de sus responsabilidades están:

·         Instalación y actualización del Oracle Server y de todos sus productos asociados

·         Asignación de recursos para la utilización de Oracle: memoria, espacio en disco, perfiles de usuario etc.

·         Ajuste de la base de datos para conseguir el rendimiento optimo.

·         Enlace con el servicio mundial de asistencia al cliente de Oracle (Oracle Wordwide Support) para resolver problemas técnicos que requieran la intervención de Oracle.

·         Estrategias de copia de seguridad y recuperación.

·         Colaboración con el personal de administración del sistema y desarrolladores de aplicaciones

 

 

 

 

 

 

 

Figura 01


Figura 02

 



 


Shared Pool

 

·         Es una porción de la SGA, creada al subir la Instancia Oracle; La cual contiene:

·         El Diccionario de Datos Cache.

·         Las sentencias SQL y PL/SQL.

·         El árbol semántico de cada sentencia SQL.

·         El plan de ejecución de cada sentencia SQL.

·         Estas son guardadas para las sentencias sean requeridas en más de una ocasión o por más de un usuario.

 

Database Buffer Cache

 

Es un área de la SGA que guarda copias de los bloques de datos más recientemente leídos del disco, esto se hace para un mejor desempeño pues si los datos son de nuevo requeridos por un usuario, su acceso es más rápido.

 

·         Los bloques pueden contener datos modificados que no son permanentemente escritos a disco y los cuales maneja Oracle de una manera consistente para atender la concurrencia de los usuarios conectados a la base de datos, dichos usuarios comparten el acceso a esta área.

 

 

Redo Log Buffer

 

·         Es un buffer en el cual se registran secuencialmente todos los cambios hechos a los datos (sentencias DML, commits, rollbacks).

 

·         Es usado para reconstruir los cambios hechos a la Base de Datos y a los Segmentos de Rollback cuando ocurre una falla y se necesita hacer recuperación de datos.

 

·         Su uso se puede omitir con la opción UNRECOVERABLE en sentencias create table, create index y en sql*loader.

 


 

Memoria Oracle (SGA)

 

·         Su tamaño está determinado por los parámetros:

 

·         Shared_Pool_Size= Tamaño en bytes del área para SQL compartidos y sentencias PL/SQL.

 

·         Db_Block_Size = Tamaño en bytes de un solo bloque de datos.

 

·         Db_Block_Buffers = Numero de Buffers a localizar en memoria.

 

·         Log_Buffer = Numero de bytes localizados para para los Redo Log Buffer.

 

SGA = Shared_Pool_Size + (Db_Block_Size * Db_Block_Buffers) + Log_Buffer.

 

 

 

Diccionario de Datos Cache

 

·         Es una colección de tablas y vistas que contienen información referente a la base de datos, sus estructuras y sus usuarios. Esta información incluye:

 

·         Los nombres de todas las tablas y vistas de la Base de Datos.

 

·         Los nombres y los tipos de datos de las columnas de  las tablas.

 

·         Los privilegios de todos los usuarios.

 

 

 

·COMPOSICION DE UNA BASE DE DATOS ORACLE

 


 


DATAFILES

 

·         Archivos físicos que contienen toda la información de la base de datos; en ellos están estructuras tales como tablas e índices.


 

 

REDO LOG FILES

 

·        

Archivos físicos que almacenan el registro de todos los cambios hechos a la base de datos, son utilizados principalmente para procesos de recuperación y almacena la información proveniente de los Redo Log


 

 


SEGMENTOS DE ROLLBACK

 

·         Son una parte de la base de datos, la cual Oracle la utiliza para una actividad que lleva cabo y que consiste en poder restablecer los datos al estado en que estaban antes de que un usuario empezara a modificarlos.

 

·         En estos segmentos se almacena una imagen de como eran los datos antes de realizar una transacción para mantener la consistencia de los mismos en operaciones no grabadas y que requieran de un proceso de anulación.

 


 

ALERT FILE

 

·         Archivo en el cual se registran cronológicamente:

 

·         Los mensajes y errores producidos por Oracle.

 

·         Operaciones administrativas como sentencias DDL,

STARTUP, SHUTDOWN, ARCHIVE LOG y RECOVER.

·         Los parámetros suministrados al subir la instancia.

 

·         Oracle usa este archivo para facilitar la labor de administración en el momento de solucionar problemas.

 

·         La ubicación de este archivo esta determinada por el parámetro BACKGROUND_DUMP_DEST (del archivo de parámetros).

 

 


 


 


Procesos Background

 

 

·         Database Writer (DBWR)

·         Log Writer (LGWR)

·         Checkpoint (CKPT)

·         System Monitor (SMON)

·         Process Monitor (PMON)

·         Archiver (ARCH)

·         Recoverer (RECO)

·         Lock (LCKn)

·         Snapshot Refresh (Snnn)

·         Shared Server (Snnn)

·         Dispatcher (Dnnn)

·         Parallel Query (Pnnn)

 

 

 


 

 


LGWR Log Writer

 

·         Escribe las transacciones que se encuentran en los Redo Log a Disco cuando ocurre un commit, cuando se llena la tercera parte de los Redo Log. Esta operación permite que Oracle pueda recuperarse frente a varios tipos de fallos y únicamente existe uno por instancia.


 

 


DBWR Database Writer

 

·         Es un proceso obligatorio que maneja el Database Buffer Cache para que los procesos de servidor siempre encuentren buffers libres, dicho de otra manera escribe los bloques de datos modificados (en memoria) en los archivos de la base de datos (datafiles) utilizando el algoritmo LRU (menos recientemente utilizados).

 

·         Es uno de los dos únicos procesos que tienen permitido escribir en los archivos de datos que componen la base de datos Oracle. En ciertos sistemas operativos se pueden tener varios escritores de bases de datos por motivos de rendimiento.

 

 

 

 

PROCESOS OPCIONALES

 

 

ARCH Archiver

 

·         Es un proceso opcional, encargado de copiar el contenido de los archivos de REDO LOG a cinta o a disco para hacer recuperaciones en caso de fallas. Unicamente es necesario cuando la base de datos se encuentra en modo ARCHIVELOG.

 

CKPT Checkpoint

 

·         Asegura que todos los datos modificados en memoria (database buffers) sean escritos a disco.

 

·         Oracle produce un punto de comprobación al conmutar entre los distintos registros que hay en memoria para que las transacciones sean consistentes entre los diferentes usuarios, además escribe en disco toda la información que los usuarios han modificado en memoria y notifica al archivo de control el registro de la transacción.

 

LCKn Lock

 

·         Es un proceso opcional, configurado para manejar los bloqueos entre bases de datos Oracle cuando estas se encuentran en distintos computadores y compartiendo el mismo conjunto de discos (es decir en modo servidor en paralelo).

 

RECO Recoverer

 

·         Este proceso solo se observa cuando la base de datos ejecuta la opción distribuida de Oracle. La transacción distribuida es una en la que dos o más emplazamientos de datos debe mantenerse sincronizados, Por ejemplo cuando se tiene una copia de los datos en diferentes ciudades y por fallas en una línea telefónica se pierde una transacción en la mitad de su actualización. El proceso recuperador entonces resuelve las transacciones que hayan quedado inconsistentes en las dos ciudades.

 


LOG SWITCHES

 

·         Un Log Switches ocurre cuando el LGWR deja de escribir en un grupo de redo log y comienza a escribir en otro.

·         Un Log Switches ocurre cuando el LGWR ha llenado un grupo de redo log.

·         Cada grupo de redo log almacena un numero de secuencia que identifica la información almacenada, este numero es también usado para sincronización

·         Un Log Switch puede ser forzado usando en comando:

ALTER SYSTEM SWITCH LOGFILE

·         Durante un recover de una BD, oracle aplica los redo log en orden ascendente utilizando el numero de secuencia.

·         El numero de secuencia actual es almacenado el los archivos de control file.

 


 



 



CREACION DE UNA BASE DE DATOS

 

 

 


ARCHIVO DE PARAMETROS

 

·         Es un archivo texto que contiene una lista de los parámetros de configuración de la instancia (Memoria y procesos Background utilizados por Oracle).

 

·         Oracle para poder subir la instancia, debe leer el archivo de parámetros initSID.ora, en donde SID es el nombre de la base de datos; estos parámetros son determinados por el administrador de la base de datos al crearla o antes de subir una instancia, y con ellos se pueden determinar aspectos como el tamaño de la memoria asignada a Oracle, el tamaño de cada bloque en el cual se almacenarán datos etc.

 


 


 

 

 


MANIPULACION DE LA BASE DE DATOS

 

·         Startup nomount pfile=initprueba.ora (sube la instancia de la base de datos prueba).

 

·         Alter database prueba open (Permite a todos los usuarios accesar la base de datos).

 

·         Alter database prueba mount (monta la base de datos para mantenimiento).

 

·         Alter database mount exclusive (es el default y solo permite a la actual instancia accesar la base de datos).

 

 

·         Estando conectado a la base de datos como usuario Internal se puede alterar el estado de la base de datos asi:

 

Alter system enable restricted session (Para futuras conexiones solo permite conectar usuarios que posean ese privilegio).

 

Alter system disable restricted session (Permite que todos los usuarios se conecten a la base de datos).


 

 

BAJANDO LA INSTANCIA ORACLE

 

·         Conectarse a la base de datos como internal o como un usuario con privilegios suficientes para bajar la instancia (puede ser desde una utilidad como Svrmgrl, OEM o Sql*dba).

 

·         Shutdown (si no hay usuarios conectados baja la instancia y cierra la base de datos, de lo contrario su función consiste en no dejar conectar ningún usuario y esperar a que los que estén conectados salgan o se maten sus tareas.

 

·         Shutdown Immediate: Las sentencias que están siendo procesadas por los usuarios no son terminadas completamente, aquellas transacciones que no han sido grabadas (con commit) son reversadas y el servidor Oracle no espera a que los usuarios actualmente conectados a la base de datos se desconecten, sino que cierra y desmonta la base de datos y baja la instancia.

 

 

·         Shutdown Abort: El servidor Oracle no reversa las transacciones que no han sido grabadas y no espera que los usuarios se desconecten de la base de datos, tampoco cierra ni desmonta la base de datos, su trabajo consiste en bajar la instancia (procesos Oracle y memoria). Cuando se requiera volverla a subirla, Oracle por consistencia en sus procesos procede a hacer una recuperación automática de la instancia.

 


 

 


OBJETOS DE LA BASE DE DATOS

 

 

·         Oracle utiliza para su funcionamiento muchas estructuras con las cuales un administrador de base de datos debe familiarizarse, ellas se denominan objetos y cada uno de ellos tiene una función específica o trabajo que realizar, y de su buen funcionamiento depende él óptimo desempeño de la Base de Datos. En los ejemplos presentados posteriormente para la creación, borrado o manipulación de registros o estructuras se debe saber que Oracle maneja Esquemas; un esquema es una forma de referirse a un Objeto que ha sido creado por otro usuario y al cual puedo tener o no los privilegios para manipularlo.

 

·         Al necesitar manipular un registro de una tabla o un objeto creado por otro usuario y no tener los privilegios necesarios, debo anteponer el nombre del usuario creador del objeto seguido de un punto y del nombre del objeto "en la instrucción SQL". Ej, para seleccionar todos los registros de la tabla cliente debería escribir "SELECT * from VENTAS.cliente" en donde VENTAS es un usuario creado en la base de datos y el cual es el propietario de la tabla cliente.

 

 

 

·         TABLA: Es la unidad básica de almacenamiento en un sistema de bases de datos relacionales, en ellas son almacenados los datos de los usuarios y los datos del sistema Oracle; Cada tabla se compone de varias columnas las cuales cuentan con un tipo de datos asociado. La información sobre la estructura de todas las tablas se encuentra en el diccionario de datos y Oracle la utiliza para su funcionamiento.

 


 

Creación de una tabla:

 

 

CREATE TABLE cliente (

k_cliente NUMBER(3) NOT NULL,

n_cliente VARCHAR2(40) NOT NULL,

r_vendedor DATE,

PCTFREE 10

PCTUSED 65

STORAGE (

INITIAL 4M

NEXT 3M

PCTINCREASE 0

INEXTENTS 2

MAXEXTENTS 20))

TABLESPACE USERS;

 


 

 


 

 

Modificación de una tabla

 

1.      ALTER TABLE cliente

ADD    ( d_dirección VARCHAR2(25),

                                               n_teléfono NUMBER(10))

 

2.      ALTER TABLE cliente

MODIFY ( n_cliente VARCHAR2(50))

 

3.      ALTER TABLE cliente

MODIFY ( d_dirección VARCHAR2(50)

                                                        NOT NULL)

 

4.      ALTER TABLE cliente

STORAGE (PCTINCREASE 100

                                                         MAXEXTENTS 50)

 

1.      Adicionando los campos d_dirección y n_teléfono a la tabla

 

2.      Ampliando el tamaño del campo n_cliente

 

3.      Agregando un constraint que impide la entrada de valores nulos en el campo d_dirección

 

4.      Alterando los parámetros de almacenamiento de la tabla.

 


 

Borrando una tabla

 

1.      DROP TABLE cliente

 

2.      DROP TABLE cliente CASCADE CONSTRAINTS

 

3.      TRUNCATE TABLE cliente

 

 

1.      Borra la tabla y su estructura si no existen constraints de integridad referencial

 

2.      Borra la tabla y los CONSTRAINTS de integridad referencial hacia la tabla.

 

 

3.      Borra los datos de la tabla si no existen constraints de integridad referencial.

 

 

 

VISTA : Es una consulta SQL de una o varias tablas, la cual se encuentra almacenada en la base de datos y cuyos resultados se devuelven al usuario igual que los de una consulta a una tabla. A diferencia de una tabla, una vista no contiene datos sino únicamente una consulta SQL. Son útiles en seguridad, pues se pueden crear por ejemplo para restringir el acceso a ciertos campos de una tabla (es decir a los usuarios no se les da acceso a toda la tabla, sino a los campos contenidos en la vista), también se utilizan para facilitar a los usuarios los (join) complejos entre tablas y la escritura de nombres largos o difíciles de las tablas o de sus columnas en las consultas creadas por ellos.

 

Creación una Vista

 

1.      CREATE VIEW Vista_Cliente as select k_cliente, n_descripción from cliente.

 

2. CREATE O REPLACE VIEW Vista_Cliente as select k_cliente,

n_descripción from cliente.

INDICE: Así como el índice de un libro ayuda a accesar su contenido de una manera más ágil, un índice de una tabla le ayuda a la base de datos a recuperar información con mayor velocidad. Un índice es una copia en miniatura de una tabla con información sobre la(s) columna(s) que forman parte del índice, y no sobre todas las columnas de la tabla. De esta manera le proporcionan a Oracle un veloz acceso a los datos pues no necesitan subir a memoria los registros completos de la tabla sino únicamente la(s) columna(s) indexada(s) para proceder a realizar la búsqueda requerida, ello conlleva a que en la memoria se puedan cargar muchas mas columnas de registros deseados en lugar de registros completos no deseados.

 

Creando un Indice

 

1. CREATE UNIQUE INDEX ind_ven_r_vendedor ON CLIENTE(R_VENDEDOR) TABLESPACE users

STORAGE (INITIAL 200K NEXT 100K PCTINCREASE 75%).

 

2.      CREATE BITMAP INDEX ind_ven_r_vendedor ON CLIENTE(R_VENDEDOR).

 

1.      UNIQUE especifica que el valor de la columna en la tabla a ser indexada es UNICO.

 

2. BITMAP es un tipo de índice utilizado para tablas con millones de registros o en columnas con baja cardinalidad, es decir, aquellas en las cuales el numero de valores distintos es pequeño por ejemplo el sexo "F/M" o el estado civil.

Si no se especifica tablespace, Oracle crea el índice en el tablespace default del usuario que crea el índice. Se aconseja crear el índice en un tablespace diferente al de datos y de ser posible en diferente disco para un mejor desempeño de la base de datos.

 


 

SINONIMO : Es un nombre alternativo que se crea para un objeto de la base de datos; es normalmente utilizado para las tablas y las vistas de Oracle. Los sinónimos se crean normalmente para ocultar el propietario, la ubicación o el nombre real de una tabla (así otros usuarios la pueden accesar sin importar quien la haya creado o en donde se encuentre), también es utilizado para proporcionar a los usuarios nombres de objetos menos complicados que los reales.

 

 

 

 

 

Creación de un sinónimo

 

1.      CREATE PUBLIC SYNONYM cliente FOR ventas.cliente.

 

2. CREATE SYNONYM cliente FOR ventas.cliente@BASE2

 

1. Crea un sinónimo llamado cliente para todos los demás usuarios de la base de datos, aunque ellos solo podrán hacer actualizaciones al mismo cuando se les otorguen privilegios tales como select, update, insert y delete.

 

2.      Crea un sinónimo llamado cliente de un objeto que se encuentra en otra base de datos llamada BASE2.


 

ROLE: Es un objeto creado para simplificar el manejo de los privilegios en la Base de Datos cuando existen muchas tablas y muchos usuarios que las accesan. Consisten en agrupar una serie de privilegios en un objeto llamado rol, para que posteriormente este objeto sea otorgado diferentes usuarios o a otros roles. La racionalización se da debido a que hay usuarios que necesitan los mismos privilegios que otros y bastaría con asignar tales privilegios al mismo rol y este a su vez a cada usuario en lugar de tener que asignar individualmente los privilegios por usuario); de la misma manera, para eliminar un privilegio a estos usuarios solo necesitaría eliminarla del role y automáticamente lo perderían.

 

Algunas propiedades de los roles son:

 

·         * Una vez creados no tienen dueño.

 

·         * Pueden ser asignados a algún usuario de la base de datos o a otro rol.

 

·         * Pueden ser habilitados o deshabilitados por un usuario que tenga permisos.

 

·         * Pueden requerir autorización (password) para ser habilitados en determinada aplicación.

 

·         * Deben ser creados con cierto criterio de empresa, por aplicaciones, por cargos.

 

·         * Pueden ser habilitados desde SQL*PLUS, PL/SQL, lenguajes de tercera generación.

 

Creación de un rol

 

1.      CREATE ROLE rol_ventas.

 

2.      CREATE ROLE rol_ventas identified by xxxxxx.

 

Crea un rol llamado rol_ventas.

 

Crea un rol llamado rol_ventas y el usuario debe digitar el password xxxxxx para habilitarlo.

GRANTS (PRIVILEGIOS): Son otorgados por los dueños de los objetos y permiten a otros usuarios trabajar con sus datos. Algunos son:

 

·         Select: permite que otros usuarios pueden examinar el contenido de tablas o vistas que no fueron creadas por ellos.

 

·          Insert permite a quien lo posee la creación de registros en las tablas de otros usuarios.

 

·         Update permite que otros usuarios puedan modificar o cambiar datos en tablas que no son de su propiedad.

 

·         Delete permite que otros usuarios puedan eliminar registros en tablas que no hayan sido creadas por ellos.

 

 

Asignación de Privilegios

 

1.      GRANT select, insert, update ON cliente TO rol_ventas.

 

2.      GRANT rol_ventas TO Marina

 

3.      GRANT rol_ventas TO Marina WITH ADMIN OPTION

 

1.      Asigna privilegios de consulta inserción y actualización a rol_ventas.

 

2.      Otorga todos los privilegios dados a rol_ventas a un usuario de la base de datos llamado Marina.

 

3.      Hace los mismo que el anterior pero adicionalmente permite que el usuario Marina pued conceder privilegios de rol_ventas a otros usuarios de manera transitiva.

 


 

Creación Usuarios

 

El Superusuario de Oracle es system

 

sql> connect system/password

 

sql> create user Carlos identified by Carlos99 default tablespace USER temporary tablespace TEMP quota unlimited on USER profile default

 

grant connect to Carlos

 

solo se puede conectar a al bd

 

sql> connect Carlos/Carlos99

 

sql> connected

 

sql> connect system/password

 

sql> Grant dba to Carlos (maxima permiso)

 

Grant resource to Carlos (puede crear tabla paces, tablas)

 

sql>

 

Alterar Usuarios

 

Alter user carlos identified by Carlos2002

 

Alter user carlos quota unlimited on  TBLS_DATA

 

1 Cambia la password del username carlos

 

2 define recursos sin limites para el tablespace Tbls_Data

METODOS DE RESPALDO Y RECUPERACION

 

·         Oracle ofrece varios tipos de respaldo para la información; entre ellos no existe un método que sea el más óptimo para todas las organizaciones, debido a que son muchos los factores que inciden y se deben evaluar para determinar cual es el mejor procedimiento para determinado escenario de recuperación. Cada método de respaldo cumple funciones definidas, es por ello que se debe conocer muy bien la Base de Datos, la carga transaccional y la criticidad de la información entre otros para determinar el tipo de respaldo que necesita cada organización.

 

 

EXPORT E IMPORT

 

·         Es uno de los más usados por los clientes de Oracle por su flexibilidad y portabilidad y solo se puede hacer si la Base de Datos esta abierta;

 

Ventajas

 

·         Selectividad muy alta: se puede respaldar desde una tabla de la base de datos hasta toda la información almacenada en ella. Si se desea se pueden guardar únicamente las estructuras de los objetos, los triggers, los constraints etc. Esta misma selectividad funciona al restaurar la información posteriormente desde el Backup.

 

·         Portabilidad: Un archivo de "export" puede ser exportado de y desde cualquier sistema operativo que soporte Oracle7 o superior y ser importado en y desde cualquier sistema operativo con la ayuda de SQL*Net (herramienta de conectividad de Oracle).

 

 

·         Herramienta de Reorganización: una vez hecho un "export ", al restaurar los datos con el "Import" correspondiente se pueden relocalizar los objetos en otros tablespaces o si se quiere se pueden cambiar sus parámetros de almacenamiento; también permite crear los índices por separado acelerando el tiempo del import y cambiar de esquema (usuario dueño) los objetos si quien los importa posee los privilegios suficientes.

 

·         Permite recuperar información perdida por errores de usuario o del servidor como son: drops, truncates, deletes, corrupción de registros en tablas, perdida de tablas al perderse el tablespace o la base de datos, borrado de objetos y por ende su definición entre ellos triggers, constraints etc.

 

 

Desventajas

 

·         Tamaño y tiempos impredecibles: es muy difícil predecir el tamaño que tendrá un archivo de "export" al igual que el tiempo que durará el mismo o en su defecto el import. Puede que se requiera pasar todo el archivo de export para importar solo una parte: debido al recorrido secuencial para realizar un import, si el objeto buscado esta al comienzo del archivo se detiene después de importarlo, pero si está al final tiene que recorrer todo el archivo para recuperar solo ese(os) objeto(s).

 

 

2. RESPALDOS EN FRIO (Cold backup)

 

·         Es un método de respaldo muy restrictivo, y debe hacerse únicamente cuando la base de datos este cerrada. Es útil en el evento de perdida total de la base de datos.

 

Ventajas:

 

·         La consistencia de datos está garantizada: No se da el caso de que los datos a ser respaldados estén siendo usados por algún usuario por que ellos no pueden acceder a la base de datos.

 

·         Todo incluido: Este tipo de respaldo incluye todos los Datafiles, los Controlfiles, y los Logfiles; no hay posibilidad de que alguna tabla o vista no quede en el backup.

 

 

·         El espacio que ocupa es conocido, además el tiempo de respaldo y recuperación es predecible.


 

Desventajas:

 

·         Nada excluido: esto se convierte en una desventaja cuando no se desea restaurar toda la información. Aquí no se permiten hacer respaldos ni restauraciones parciales, es decir "se respalda todo o nada y se restaura todo o nada"; Solo se puede hacer con la base de datos cerrada: nadie puede estar trabajando.

 

 

3. RESPALDOS EN CALIENTE (Hot Backup)

 

·         Este tipo de respaldo es especialmente utilizado en organizaciones en las cuales la base de datos necesita estar disponible durante las veinticuatro horas y los siete dias de la semana.

 

·         Los respaldos en caliente son una consecuencia de una funcionalidad de Oracle llamada el modo "ARCHIVE". Este modo consiste en configurar algunos parámetros de la base de datos para que se registren todos los cambios hechos a la misma por mínimos que sean en unos archivos llamados "REDO LOGS". Oracle lleva un histórico del orden de los Redo Logs (y por ende de las transacciones realizadas a la base de datos) y cuando hay necesidad de restaurar información, lo hace consistentemente y deja la base de datos como estaba hasta el momento en el cual las fallas ocurrieron o hasta el punto en el tiempo que el cliente lo desee; esto se hace restaurando un cold backup y aplicando los Redo Logs (transacciones) ocurridas a partir de ese backup hasta una fecha y hora determinada que se necesite. De esta forma se obtiene una fotografía exacta y consistente de cómo estaba la base de datos en un día y hora determinados.


 

 

Ventajas

 

·         Selectivo a nivel de tablespace: Se respaldan todos los datafiles (archivos físicos de datos) de un tablespace completo y por ende todos los objetos almacenados en él.

 

·         No interfiere con la operación normal de la base de datos en producción: no hay necesidad de cerrar la base de datos y los usuarios pueden estar trabajando.

 

 

·         Se puede recuperar hasta cualquier punto en el tiempo: si se respaldan los Redo Logs suficientes y se mantienen respaldos en frío o calientes anteriores, se puede recuperar información en cualquier fecha y hora especificados.

 

·         Siempre recupera de manera consistente: es la única manera de recuperar la información.

 

 

Desventajas

 

·         La consistencia es forzosa: si se recupera toda la información no hay espacio para hacer modificaciones, selecciones o adecuaciones. Si se desea recuperar un objeto, no importa que haya sufrido o cual objeto sea, se deben recuperar todos los archivos de datos "datafiles" en donde ese objeto residía hasta el momento cuando la base de datos quede consistente.

 

·         Es necesario mantener todos los Redo Logs archivados: Si por alguna razón un Redo Log archivado se pierde, no se podrá recuperar la base de datos mas allá del último Redo Log antes del cual se perdió.

 

 

·         Se necesitan recursos importantes de disco para almacenar todos los Redo Logs, además de una administración cuidadosa con políticas para bajar estos archivos a cinta en horas determinadas y para relacionar en alguna parte información como el numero de la cinta, la fecha, la hora, de que numero a que numero de Redo Log se bajo y la persona que realizó la labor.

 

 

PROCESO ESTANDAR PARA LA GENERACION DE UN FULL-EXPORT

 

Se debe tener un comando "AT" programado para que active un archivo llamado "Backup" de manera automática. El archivo Backup contendrá lo siguiente:

 

·         EN WINDOWS NT :

 

El archivo Backup es una opción de Inicio, programas y contendrá lo siguiente:

 

d:\orant\bin\exp73.exe parfile = d:\orant\backup\param_fullexp.txt

 

El archivo PARAM_FULLEXP.TXT contiene lo siguiente

 

Backup/Backup

full=y

compress=y

indexes=y

file=d:\orant\backup\fullexpor.dmp

log=d:\orant\backup\fullexpor.log

rows=y

 

·         EN UNIX:

 

EXP USERID=Backup/Backup BUFFER=3076000 FILE=/u01/Backup/Fullexport.dmp FULL=Y COMPRESS=Y

GRANTS=Y INDEXES=Y CONSTRAINTS=Y ROWS=Y

LOG=/u01/Backup/Fullexport.log

 

Para lo anterior se debe crear un usuario llamado Backup en las bases de datos, y direccionar los archivos con extensión (.dmp) a un disco con suficiente espacio.

 

 

 

PROCESO ESTANDAR PARA LA GENERACION DE UN Cold-Backup

 

Este es un respaldo de todos los archivos de la base de datos (no de sistema operativo, aunque se podrían incluir), habiendo sido esta bajada en forma normal. Los archivos a copiar en este tipo de respaldo son los generados en las siguientes busquedas:

 

select status, enabled, bytes, name from v_$datafile;

 

select * from v_$controlfile;

 

select status, member from v_$logfile;

 

Además se debe respaldar el archivo initsid.ora.

 

Para respaldarlos se requiere una utilería del sistema operativo como tar,cp,cpio etc. Siempre y cuando se garantice que los archivos cuando se restauren queden iguales; (Se debe tener en cuenta que en algunos sistemas operativos estos comandos producen lo que se llama un 'sparce file' lo cual significa que trunca los espacios vacios de un archivo, esto daña o corrompe los datafiles).


 

EN WINDOWS NT :

 

1.      Verificar que no hayan usuarios conectados a la base de datos.

 

2. Entrar a Inicio, Programas y ejecutar el comando "BAJAR_BD", el cual baja la base de datos y contiene:

d:\orant\bin\oradim73.exe -shutdown -sid ORCL -usrpwd oracle –shuttype srvc,inst -shutmode n

 

2.      Entrar a la utilidad de backup de Windows NT, escoger la unidad requerida, y los archivos a ser respaldados, incluyendo D:orant y los directorios en donde están los archivos con extensiones .trc, .dmp, .ctl, .dbf, .log, init*.ora.

 

3.      Entrar a Inicio, Programas y ejecutar el comando "SUBIR_BD", el cual sube la Base de Datos y contiene:

 

 

d:\orant\bin\oradim73.exe -startup -sid ORCL -usrpwd oracle -starttype srvc,inst pfile d:\orant\database\initorcl.ora

 

EN UNIX

 

Bajar la base de datos asi:

·         Estando conectado a Unix verificar que no hayan usuarios conectados a la base de datos

·         svrmgrl

·         connect internal

·         shutdown

·         exit

·         ejecutar el script que genera la copia de los archivos a ser respaldados

 

Subir la base de datos asi:

·         svrmgrl

·         connect internal

·         startup


 

PROCESO ESTANDAR PARA LA GENERACION DE Hot-Backup

 

·         Para inicializar este modo de operación se recomienda hacer antes un backup de la base de datos por si ocurre algún problema. Posteriormente se deben configurar en el archivo INITsid.ORA los siguientes parámetros:

 

·         LOG_ARCHIVE_DEST = (Directorio donde seran grabados los archivos

Ejemplo: d:/backup/archive/arch).

 

·         LOG_ARCHIVE_FORMAT = (Formato del nombre de los archivos

Ejemplo: %t_%s.dbf)

 

·         LOG_ARCHIVE_START = TRUE

 

·         enseguida se deben ejecutar los siguientes comandos:

 

·         Alter database mount; (Sube la instancia pero no abre la base)

 

·         Alter database archivelog; (Coloca la base en modo Archivelog)

 

·         Archive log start; (Activa el archive automaticamente cada vez suba la instancia)

 

·         Alter database open; (Abre la base de datos y la deja disponible)

 

·         Para minimizar el impacto en el rendimiento por este método de respaldo, se aconseja incrementar el numero de LOG_ARCHIVE_BUFFERS a 2,3 o mas y el tamaño de LOG_ARCHIVE_BUFFER_SIZE al máximo posible (dependiendo del sistema operativo consultar user´s guide). Información adicional de este metodo de respaldo se encuentra digitando ARCHIVE LOG LIST, o haciendo la consulta select group#, archived from sys.v_$log.

 


 

PROCESO ESTANDAR PARA LA RESTAURACION DE UN FULL-EXPORT

 

·         Se debe tener presente si se desea restaurar la información por tabla, usuario o la base de datos, pues del fullexport puedo obtener los tres. Además se debe evaluar si se desea sobreescribir la información existente al bajar el fullexport o si se baja sobre un usuario temporal para posteriormente proceder a hacer el insert a las tablas originales. Restaurar el archivo (Fullexport.dmp) de la cinta a un disco con suficiente capacidad.

 

·         EN WINDOWS NT :

 

Modificar uno de los siguientes tres archivos según el tipo de Import que se desee realizar :

 

d:\orant\backup\Imp_tabla

d:\orant\backup\Imp_user

d:\orant\backup\Imp_full.

 

Digitar el siguiente comando por inicio ejecutar o por Ms-dos (no se hace automatico por que son muchos los escenarios que se pueden presentar y especificos según el import deseado,debido a ello existe cierto riesgo de error).

 

d:\orant\bin\imp73.exe parfile = d:\orant\backup\imp_tabla ó

d:\orant\backup\imp_user ó d:\orant\backup\imp_full

 

según el archivo que haya modificado anteriormente.


 

UN EJEMPLO del archivo IMP_TABLA sería:

 

IMP Backup/Backup

Fromuser = contab (usuario dueño de la tabla a ser restaurada)

Touser=bajarinf (usuario en el cual deseorestaurar la tabla, puede ser el dueño

File= d:\orant\backup\fullexpor.dmp (archivo restaurado de la cinta)

Tables = (emp,cliente,...)

Log = d:\orant\backup\impt.log

 

UN EJEMPLO del archivo IMP_USER sería:

 

IMP Backup/Backup

Fromuser = contab (usuario dueño de los objetos a restaurar)

Touser = bajarinf (usuario en donde voy a bajar los objetos)

File= d:\orant\backup\fullexpor.dmp(archivo restaurado de la cinta)

Log = d:\orant\backup\impu.log

 

UN EJEMPLO del archivo IMP_FULL sería:

 

IMP Backup/Backup

Full = Y

File= d:\orant\backup\fullexpor.dmp

Log = d:\orant\backup\impf.log

Commit = Y


 

 

EN UNIX

 

Crear un directorio Modificar uno de los siguientes tres archivos según el tipo de Import que se desee realizar :

 

d:\orant\backup\Imp_tabla

d:\orant\backup\Imp_user

d:\orant\backup\Imp_full.

 

EXP Backup/Backup BUFFER=3076000 FILE=/u01/Backup/Fullexport.dmp FULL=Y COMPRESS=Y GRANTS=Y INDEXES=Y CONSTRAINTS=Y ROWS=Y LOG=/u01/Backup/Fullexport.log

 

PROCESO ESTANDAR PARA LA RESTAURACION DE Cold-Backup

 

Bajar estos archivos es tan sencillo como copiar los archivos del medio en donde se respaldaron a su posición original. Se debe tener en cuenta que cuando se esta en modo NOARCHIVELOG (este se verifica haciendo un select * from sys.v_$database) se debe bajar completamente, sin dejar ningún archivo de lado, de lo contrario la base de datos no reconocerá los archivos bajados o los que ya estaban y presentará problemas.

 

RECOMENDACIONES

 

Generar ayudas con EXP HELP=Y

 

El usuario con el que se va a hacer el full_export de la base de datos debe tener el rol exp_full_database. Evaluar si se hace por usuario (por tabla no ??) o full-export. O si se requiere Archive mode.

 

El export incremental es recomendable cuando no se modifican mucho los datos. De escogerse uno de estos dos ver si hay un administrador que verifique cada incremental export y/o cumulative para consistencia. Cualquier duda consultar el Utilities users guide.


 

IMPORT

 

El import se puede hacer a nivel de tabla, usuario o Full database dependiendo de los privilegios de quien importa y de la manera como se hizo el export.

 

SECUENCIA DE RECUPERACION UTILIZANDO IMPORT

 

Digite el comando IMP username / password PARFILE = filename o IMP PARFILE = filename

 

El username/password especifican quien hace el import, lo importante es que tenga los privilegios suficientes.

 

·RECOMENDACIONES

 

·         Si se necesita importar tablas con campos tipo LONG debe aumentar el tamaño del Buffer Size por que se genera un error.

 

·         Para importar los indices se debe cambiar el default tablespace del usuario con el cual se desea hacer la restauración para que estos no se mezclen en el tablespace de los datos (este proceso es posterior al de la importación de los datos).

 

·         Debido a los privilegios que necesita el import para crear cada objeto seria aconsejable darle grant DBA o (IMP_FULL_DATABASE ??) al usuario con el cual se va a restaurar ??.(además de quotas por tablespace o unlimited tablespace.

 

·         Si se desea ayuda en el import se digita IMP HELP=Y mirar que es KEYWORD = value , = (value) o = (value,value,…)