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
![]() |

·
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.
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.
·
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.
·
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.
·
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

·
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.
·
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).

·
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)

·
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.

·
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.
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.
·
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.
·
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:
·
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.


·
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).
·
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.

·
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 (
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
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.
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;
·
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.
·
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.
·
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.
·
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).
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
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:
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:
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:
Full = Y
File= d:\orant\backup\fullexpor.dmp
Log = d:\orant\backup\impf.log
Commit = Y
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.
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.
·
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,…)