Vous êtes sur la page 1sur 124

Administracion de

Bases de Datos
Oracle
Administracin de Bases de Datos Oracle

1. Introduccin

La administracin de una base de


datos es una labor permanente.
Requiere en muchos casos
dedicacin de tiempo completo

1.1. Responsabilidades de un
DBA

Instalar y actualizar el motor de la base de datos


y Herramientas de desarrollo
Crear las estructuras primarias de la base de
datos
Administrar el espacio en disco
Modificar la estructura de la base de datos
Crear y administrar usuarios, perfiles y roles.
Control del acceso a la Base de datos
Backups y recuperacin
Monitorear y optimizar el rendimiento

2. ESTRUCTURA DE
UNA BASE DE DATOS
ORACLE

Administracin de Bases de Datos Oracle

Estructura De una Base de


Datos Oracle

Estructura Lgica
Estructura fsica
Estructuras de memoria
Procesos de Background
Procesamiento de COMMIT y
ROLLBACK

ESTRUCTURAS LOGICAS DE LA BASE DE


DATOS
Base de Datos

System TBSP 1 TBSP 2

Tablespace

Segmento
Extent 1
Block

Segmento 1
Extent 2

Segmento 2

ESTRUCTURAS FISICAS DE LA BASE DE


DATOS

PROCESOS EN BACKGROUND

System Global Area

Servidores

Archivos de la
Base de datos

Usuarios

Archivos de
Control

Archivos de
Redo Log

Archivo de
Parmetros

Archivos Redo Log


Log 1

Log 2

Log 3

Grupo 3

Grupo 1
Grupo 2
Grupo 1 Miembro A

Grupo 2 Miembro A

Grupo 3 Miembro A

Grupo 1 Miembro B

Grupo 2 Miembro B

Grupo 3 Miembro B

Grupo 1 Miembro C

Grupo 2 Miembro C

Grupo 3 Miembro C

Estructuras de Memoria

SGA
Database Buffer Cache

Memoria
Compartida

KEEP

RECYCLE

DEFAULT

REDO LOG BUFFER


LARGE POOL (opcional)

Shared Pool
Cach del
diccionario
de datos

Estructuras
de Control

Library Cache

Shared
SQL Area
PL/SQL
Procedures &
Packages

Locks

JAVA POOL (opcional)

Memoria no
Compartida

PGA

Stack Space

Session
info

Sort Area

Estructuras de Memoria

SGA
Database Buffer Cache

Memoria
Compartida

KEEP

RECYCLE

DEFAULT

REDO LOG BUFFER


LARGE POOL (opcional)

Shared Pool
Cach del
diccionario
de datos

Estructuras
de Control

Library Cache

Shared
SQL Area
PL/SQL
Procedures &
Packages

Locks

JAVA POOL (opcional)

Memoria no
Compartida

PGA

Stack Space

Session
info

Sort Area

Estructuras de Memoria

SGA
Database Buffer Cache

Memoria
Compartida

KEEP

RECYCLE

DEFAULT

REDO LOG BUFFER


LARGE POOL (opcional)

Shared Pool
Cach del
diccionario
de datos

Estructuras
de Control

Library Cache

Shared
SQl Area
PL/SQL
Procedures &
Packages

Locks

JAVA POOL (opcional)

Memoria no
Compartida

PGA

Stack Space

Session
info

Sort Area

Procesos de Background
PMON

SGA

LCKn

SMON

Database Buffer Cache

RECO

Redo log buffer

Shared Pool

Archivos de
Control

CKPT
DBWR

LGWR

Servidores

Usuarios

ARCH

Archivos de la
Base de datos

Archivos Redo Log

Procesos de Background
PMON

SGA

LCKn

SMON

Database Buffer Cache

RECO

Redo log buffer

Shared Pool

Archivos de
Control

CKPT
DBWR

LGWR

Servidores

Usuarios

ARCH

Archivos de la
Base de datos

Archivos Redo Log

Procesos de Background
PMON

SGA

LCKn

SMON

Database Buffer Cache

RECO

Redo log buffer

Shared Pool

Archivos de
Control

CKPT
DBWR

LGWR

Servidores

Usuarios

ARCH

Archivos de la
Base de datos

Archivos Redo Log

Procesos de Background
PMON

SGA

LCKn

SMON

Database Buffer Cache

RECO

Redo log buffer

Shared Pool

Archivos de
Control

CKPT
DBWR

LGWR

Servidores

Usuarios

ARCH

Archivos de la
Base de datos

Archivos Redo Log

Configuraciones de Servidor
para acceso a la base de datos

Servidor Dedicado
SERVIDOR DEDICADO
Archivos
de Datos

SGA

Usuario

Servidor
Dedicado

Servidor Compartido (MultiThread)


SERVIDOR MULTIHEBRA
Cola de
Requerimientos

SGA

Archivos
de Datos
Cola de
Respuestas

Dispatchers
Servidores
Compartidos
Usuario

Listener

Etapas en el procesamiento de
sentencias SQL

Todas las sentencias SQL son ejecutadas por el proceso


servidor, en tres etapas:
Parse
Verifica sintaxis y permisos
Determina el plan de ejecucin
Coloca la sentencia SQL en el Shared SQL Area
Execute

Se colocan lo bloques de datos en el Database Buffer


Cache
Para operaciones UPDATE o DELETE se aseguran los
registros (Lock).

Fetch

proceso de los registros y envo de resultados al proceso


del usuario

Procesamiento de COMMIT
Cuando una transaccin hace COMMIT, Oracle asigna un nmero
nico que define el estado de la base de datos en ese preciso
momento (SCN : System Change Number).
El SCN es un nmero serial que siempre se incrementa e
identifica una vista consistente de la base de datos.
El SCN sirve para efectos de recuperacin de la base de datos
hasta un momento especfico.
El SCN se registra en los archivos de control, encabezados de los
datafiles y redo logs.
Pasos :
El proceso servidor genera el SCN y se asigna un segmento
de rollback. Luego se marca en el segmento de rollback para
indicar que la transaccin fue confirmada.
El LGWR escribe los Redo Log Buffers al archivo Redo Log
activo, junto con el SCN.
El proceso servidor libera los locks sobre las filas y tablas.
El usuario es notificado que la transaccin fue confirmada.
El proceso servidor marca la transaccin como completada.

Procesamiento de ROLLBACK

Oracle reversa (hace Rollback) a una transaccin ante


los siguientes eventos:
El usuario ejecuta el comando ROLLBACK
El proceso servidor termina anormalmente.
La sesin del usuario es cancelada por el DBA.
Los pasos que se ejecutan son:
El proceso servidor reversa todos los cambios
realizados por la transaccin, para ello utiliza la
informacin en los segmentos de Rollback.
El proceso servidor libera los Locks sobre tablas y
filas
El proceso servidor marca la transaccin como
completada.

Revisin del Captulo

Cuales son las estructuras fsicas de


una base de datos Oracle ?
Cual es la diferencia entre un proceso
servidor y un proceso de Background ?
Cuales son los procesos de Background
y qu hace cada uno de ellos ?
Qu informacin se escribe en los
archivos Redo Log ?

3. ADMINISTRACION DE
UNA INSTANCIA ORACLE

Administracin de Bases de Datos Oracle

Administracin de una Instancia


de base de datos Oracle

Server Manager
Startup
Shutdown

DBA Studio

Inicio de una Instancia

Para iniciar una instancia se debe utilizar alguna


de las siguientes herramientas :
Server Manager (svrmgrl) (hasta oracle 8i)
En Windows NT : svrmgrl svrmgr30
(oracle 8)
En Unix : svrmgrl (carcter) svrmgrm
(grfico).
DBA Studio (Oracle 8i)
SQL*Plus (Oracle 8i)

Inicio de la instancia con DBA Studio - 1

Inicio de la instancia con DBA Studio - 2

Inicio de la instancia con DBA Studio - 3

Inicio de la instancia con DBA Studio - 4

Inicio de la instancia con DBA Studio - 5

Inicio de la instancia con DBA Studio - 6

Inicio de la instancia con DBA Studio - 7

Inicio de la instancia con DBA Studio - 8

Inicio de la instancia con DBA Studio - 9

Inicio de una Instancia con SQL*Plus

Inicio de una Instancia con SQl*Plus

Finalizacin de la base de datos


La operacin SHUTDOWN cierra todos los
archivos de la base de datos, finaliza los procesos
de background e imposibilita el acceso a la base
de datos.
Cuatro formas :
Normal
Abort
Immediate
Transactional

Mensajes y Alertas de la Instancia

BACKGROUND_DUMP_DEST

USER_DUMP_DEST

CORE_DUMP_DEST

Mensajes y Alertas de la Instancia

BACKGROUND_DUMP_DEST

USER_DUMP_DEST

CORE_DUMP_DEST

Revisin del captulo

Realice un Shutdown normal de la base de


datos
Inicie la base de datos, slo montndola sin
abrirla de tal forma que solo la instancia
actual pueda acceder a ella.
Examine las siguientes vistas del diccionario
de datos : V$SGA, V$PARAMETER, intente
consultar la tabla DBA_USERS. Qu sucede?
Cambie el estado de la base de datos a
abierta. Intente acceder a la tabla
DBA_USERS. Qu sucede?

4. ADMINISTRACION
DEL ESPACIO

Administracin de Bases de Datos Oracle

Administracin del
espacio

Trminos importantes
Partes de un bloque de la base de
datos
Control del espacio utilizado
Extents y segmentos
Tablespaces
Obtener informacin acerca de
extents y segmentos.

Trminos Importantes

Block
Extent
Segment
Tablespace
File
Database

TABLESPACE
Segmento 270K

Extent
70K

Extent
200K

Database Blocks

File

DATABASE

Partes de un Bloque

Header
Directorio de tablas
Directorio de filas
Espacio libre
Filas de datos

Parmetros de almacenamiento de
un bloque

PCTFREE
PCTUSED
INITRANS
MAXTRANS

Parmetros de almacenamiento de
un bloque

PCTFREE
PCTUSED
INITRANS
MAXTRANS

Extents
TABLESPACE
Segmento 270K

Extent
70K

Extent
200K

Database Blocks

File

DATABASE

Extents
TABLESPACE
Segmento 270K

Extent
70K

Extent
200K

Database Blocks

File

DATABASE

Segmentos

Datos
Indices
Rollback
Temporales

Segmentos

Datos
Indices
Rollback
Temporales

Tablespaces
TABLESPACE
Segmento 270K

Extent
70K

Extent
200K

Database Blocks

File

DATABASE

Obtener informacin sobre extents,


segmentos y Tablespaces

Se pueden consultar vistas del


diccionario de datos

USER/DBA_EXTENTS
USER/DBA_FREE_SPACE
USER/DBA_SEGMENTS
DBA_TABLESPACES
DBA_DATA_FILES
V$TABLESPACE

Revisin del captulo

Cual es el nmero mnimo de archivos que se pueden especificar para un


tablespace al momento de su creacin ?
Cuantos tablespaces se requieren para que una base de datos Oracle pueda
funcionar?. Cuales son ?
La determinacin de los parmetros INITRANS y MAXTRANS se basa en:
El nmero de transacciones activas en el sistema
El nmero de transacciones activas en una tabla
El nmero de transacciones activas en un mismo bloque
El nmero de transacciones activas asignadas a un segmento de rollback.

Cual de los siguientes objetos puede expandirse en ms de un DATAFILE?

Un extent perteneciente a una tabla de ordenamiento


Solo el NEXT extent de cualquier tipo de segmento
Un bloque de datos oracle
Ninguno de los anteriores

Ingrese a la base de datos utilizando el usuario system. Escriba un query


que muestre para cada segmento: nombre, bytes, # de bloques y # de
extents adicionales permitidos.
Modifique el query anterior para mostrar solo los segmentos que se
encuentren a dos extents de su lmite.

Revisin del captulo (continuacin)

Escriba un query que muestre la cantidad total de espacio libre


(en bloques y bytes) de cada tablespace. Especifique el
nmero de extents libres.
Escriba un query usando las tablas USER_TABLES y
DBA_FREE_SPACE para identificar cuales NEXT extent no
podrn ser reservados.

5. CREACION DE
UNA BASE DE DATOS

Administracin de Bases de Datos Oracle

Creacion de una base de datos

Estructura de directorios utilizada


por ORACLE
Como es el proceso ?
Planeacin
Instalacin

Estructura de directorios utilizada


por ORACLE
Oracle_base
8.0.1.7

Admin
dbname1

Data

Local

TAR

dbname2

adhoc arch cdump create

exp logbook pfile udump

Parametros de Inicio

Verificar la definicin de las variables de


ambiente a travs del comando REGEDIT
utilizando la clave
KEY_LOCAL_MACHINE/SOFTWARE/ORACLE
Debe verificarse en el archivo init<nombre
instancia>.ora que los parametros especificados
sean los deseados

Parametros de inicio adicionales

Si se desea conocer el valor tomado por los


parmetros no definidos explcitamente , se debe
seguir el siguiente procedimiento :

Arrancar la BD
Ejecutar el programa svrmgrl (o SQLPLUS)
Ejecutar el comando SHOW PARAMETER

Procedimiento para crear la BD

Una vez revisadas las variables y parmetros de


inicio , continuamos con la creacin de la base
de datos.
A continuacin en las notas observamos este
procedimiento :

Procedimiento para crear la BD

Una vez revisadas las variables y parmetros de


inicio , continuamos con la creacin de la base
de datos.
A continuacin en las notas observamos este
procedimiento :

Procedimiento para crear la BD

Posteriormente se pueden agregar archivos


REDO LOG utilizando el siguiente comando :
alter database add logfile member
nombre_del_archivo to group
numero_de_grupo

Para consultar los nombres de los archivos redo


log de la BD se debe ejecutar el query
select * from v$logfile;

Vistas de Interes de la Base de Datos

V$sga : Parmetros de la SGA


Dba_rollback_segs : Segmentos de rollback y su
estado
Dba_tablespaces : Tablespaces de la base de
datos
Dba_data_files : Informacin acerca de los
datafiles de la base de datos
Dba_free_space : Distribucin del espacio libre
en los diferentes data files
Dba_catalog : Nombre de todas las vistas
Dba_users : Usuarios de la Base de Datos

Diccionario de datos de ORACLE

Conjunto de tablas y vistas donde reside


informacin de la BD
Se crean ejecutando el script sql.bsq
Contienen informacin acerca de objetos de la
BD, usuarios y sus privilegios, estructura general
de la BD , auditora
Usuarios solo pueden consultar informacin de
ellas

Diccionario de datos de ORACLE

Las tablas del diccionario de datos se pueden


subdividir en las siguientes categoras :

DBA_xxx : Vistas accesible solo para el


DBA
User_xxx : Vistas accesibles para un
usuario
All_xxx
: Vistas accesibles para todos los
usuarios

Administracin de tablespaces

Creacin :

Create tablespace tablespace_name datafile


archivo size <entero> [K/M]
default storage (
initial <entero> [K/M]
next <entero> [K/M]
miniextents <entero>
maxentents <entero>
pctincrease <entero> )]
[online/offline];

Administracin de tablespaces

Modificacin :

Alter tablespace tablespace_name [add


datafile
file_name size <entero> [K/M].. ]
[rename datafile file_name to file_name1]
[default storage ( )]
[online/offline]
[begin/end backup];

Administracin de tablespaces

Borrado :
Drop tablespace tablespace_name
[incluiding contents [cascade constraints]];

Segmentos de rollback

Porcin de la base de datos donde se registran


las imgenes de todos los datos antes que
cualquier transaccin pueda modificarlos
TRANSACCION : Unidad de trabajo que produce
cambios en los datos de la base de datos. En
oracle cada transaccion se identifica con un
numero nico y es asignada a un segmento de
rollback
Se ubican en un tablespace

Segmentos de rollback

Tipos de segmentos de rollback

Privado : Debe incluirse en el parmetro


Rollback_segments
Pblico : Pueden ser utilizados por cualquier
instancia
Diferido : Se crean cuando un tablespace se
coloca en modo OFFLINE

Segmentos de rollback

Tablespace Rbs
Seg_r1

Transaccion_1

Seg_r2

Transaccion_6

Seg_r3
Seg_r4

Transaccion_5
Espacio Libre

Transaccin 1

Transaccion_4

Transaccion_2

E libre
Espacio Libre

Espacio libre

Segmentos de rollback

Creacin :
Create [public] rollback segment
nombre_segmento
[tablespace nombre_tablespace]
[storage (initial <entero> [K/M]
next <entero> [K/M]
minextents <entero>
maxentents <entero>
optimal <entero> [K/M])];

Segmentos de rollback

Activacin
Se realiza para que el segmento este
disponible inmediatamente. Se utiliza la
instruccin :

Alter [public] rollback segment <nombre_seg> ONLINE;

Desactivacin
Se realiza para que el segmento quede fuera
de linea. Es necesario para poder borrar un
segmento de rollback. Se usa la instruccin:

Alter [public] rollback segment <nombre_seg> OFFLINE;

Segmentos de rollback

Eliminacin
Se puede borrar un segmento de rollback con
el fin de defragmentarlo. Se utiliza la
instruccin :
Drop [public] rollback segment <nombre_seg>;

Revisin del Captulo

Cuantos usuarios hay definidos en la base de


datos ?
Que cantidad de espacio libre existe en la BD,
por tablespace?
Cuales son los nombres de los data_files
asociados a cada tablespace de la base de
datos?
Muestre el nombre de todos los tablespaces de
la base de datos
Cuantos segmentos de rollback existen en la
base de datos?
Dibuje la estructura fsica de la BD.

Revisin del Captulo

Cree un tablespace llamado prueba_x (donde x


corresponde al nmero de su usuario en el
curso). Coloque el parmetro de
almacenamiento inicial en 200K.
Cree una tabla llamada PRUEBA en el
tablespace que acaba de crear con un tamao
inicial de 50K.
Qu pasa y porque ?

6. ADMINISTRACIN DE
SEGURIDAD

Usuarios

Se identifican por un username y se les asigna


un password
Se les asignan permisos sobre la Base de Datos
Al intentar conectarse , Oracle verifica su
autenticidad
Al crear la Base de Datos se generan dos
usuarios : sys y system

Usuarios

CREACIN
Se crean por medio de la siguiente
instruccin :
create user <nombre_usuario>
identified by {<password>/EXTERNALLY}
[default tablespace <nombre_tablespace>]
[temporary tablespace <nombre_tablespace_tem>]
[profile <nombre_profile>]
[quota {<entero>/UNLIMITED} ON
<nombre_tablespace>]
[password expire]
[account {lock/unlock} ];

Usuarios

Modificacin de usuarios :
Para modificar cualquiera de estos
parmetros , se utiliza el comando
ALTER USER

Usuarios

Eliminacin de usuarios
Se realiza utilizando el comando :
DROP USER nombre_usuario
No se puede eliminar un usuario que se
encuentre conectado actualmente a la
BD

Usuarios

Eliminar sesin
Se puede eliminar la sesin de un usuario
mientras est conectado a la base de datos.
Es til en los casos :
Prevenir ejecucin de comandos por parte de
un usuario conectado a la BD
Liberar recursos/tablas bloqueados por un
usuario
Se requiere bajar la BD

Un usuario tiene bloqueado recursos que se


necesitan urgentemente

Usuarios

Para poder eliminar una sesin de


usuario, se debe poseer el privilegio
ALTER SYSTEM . El comando es el
siguiente :

Alter system kill session <sid>,<serial#>;

Estos datos pueden obtenerse de la


vista V$SESSION

Privilegios

Es un derecho asignado a un user / role para


ejecutar o realizar alguna operacin en la BD
Existen 2 tipos de privilegios :
Sobre el sistema : Accin particular sobre el
sistema o sobre un tipo de objeto. Ej: crear
sesiones, crear tablas, borrar tablas
Sobre objetos : Acciones especficas sobre
una tabla /vista. Ej : select , insert, delete

Privilegios sobre el sistema

Son permisos para ejecutar ciertos comandos.


Existen 3 tipos de privilegios que pueden
asignarse sobre el sistema :
En el esquema del usuario :

Crear tablas en su propio esquema


Crear secuencias en su propio esquema

Sobre los objetos de un tipo especfico

Crear tablas sobre cualquier esquema


Actualizar filas en una tabla o vista de
cualquier esquema

Privilegios sobre el sistema

Sobre el sistema o un usuario :

Crear un usuario
Crear sesiones en la base de datos

Existen ms de 60 tipos de privilegios diferentes


sobre el sistema. Cada uno de ellos le permite a
un usuario ejecutar operaciones sobre la BD.
Ej : Create session, create table, select any table

Privilegios sobre el sistema

Para asignar privilegios se utiliza el comando


GRANT system_priv / role to
user/role/PUBLIC ........
[with admin option];
Donde :
system_priv : nombre del privilegio a asignar
role : Nombre del role a asignar
PUBLIC : Todos los usuarios
WITH ADMIN OPTION : Permite que el usuario
pueda asignar a su vez los privilegios a otros
usuarios.

Privilegios sobre el sistema

Para revocar privilegios a un usuario / role se


utiliza el comando
REVOKE system_priv / role from
user/role/PUBLIC;

Para poder revocar privilegios de debe poseer el


privilegio WITH ADMIN OPTION

Privilegios sobre objetos


Privilegio
Alter
Delete

Tabla

x
x

Vista

Secuencia

x
x
x

Execute
Index

X**

Insert

X**
x
x

x
x

References
Select
Update

Procedim

Privilegios sobre objetos


Privilegio
Alter
Delete

Tabla

x
x

Vista

Secuencia

x
x
x

Execute
Index

X**

Insert

X**
x
x

x
x

References
Select
Update

Procedim

Roles

Se utilizan para simplificar la tarea de


administracin de permisos y privilegios en la
base de datos
Usuario 1

Usuario 2

Usuario n

Role

Privilegios

Roles

Ventajas
Asignar/revocar privilegios por medio de una
instruccin
Simplifican la administracin de privilegios en
sistemas con muchos usuarios/tablas
Se pueden cambiar los privilegios de un role
a medida que las responsabilidades cambien
Se puede habilitar/deshabilitar
dinmicamente para asignar/revocar
temporalmente privilegios
Los programas de aplicacin pueden
modificar roles cuando se requiera

Roles
Contab 1

Contab 2

Role Cont

Role ACT_CONT

Privilegio Act
mov contable

Dir. Financ

Role Finan

Financ 1

Role Pres

Role ACT_PRESU

Privilegio Act
mov presupuestal

Roles

HABILITAR/DESHABILITAR ROLES

Para restringir/permitir el uso de privilegios


por parte de un usuario
Los privilegios asignados a un role
deshabilitado no tienen efecto
La sintaxis es la siguiente :

SET ROLE <role[identified by password> /


ALL[EXCEPT role]/NONE

Esta instruccin debe ejecutarse desde


SQLPLUS o desde un programa de tercera
generacin (C o COBOL) o desde PL/SQL

Perfiles

Se asignan a los usuarios con el fin de restringir


la cantidad de recursos que estos pueden utilizar
Los perfiles permiten restringir la cantidad de
recursos del sistema disponibles para el usuario.
Esto permite simplificar la administracin de los
recursos

Perfiles

Creacin de perfiles
Se realiza mediante la sintaxis siguiente
CREATE PROFILE nombre LIMIT
[SESSIONS_PER_USER entero/unlimited/default]
[CPU_PER_SESSION entero/unlimited/default]
[CPU_PER_CALL entero/unlimited/default]
[CONNECT_TIME entero/unlimited/default]
[IDLE_TIME entero/unlimited/default]
[LOGICAL_READS_PER_SESSION entero/unlimited/default]
[LOGICAL_READS_PER_CALL entero/unlimited/default]
[PASSWORD_LIFETIME <dias>]
[PASSWORD_GRACE_TIME <dias>]
[FAILED_LOGIN_ATTEMPTS <entero>]
[PASSWORD_LOCK_TIME <dias>] ;

Revisin del captulo

Crear un usuario denominado CURSOx_1 (donde x


corresponde a su nmero de usuario en el curso), con
password CURSOx_1. El tablespace temporal debe ser
TEMPORARY_DATA, no debe asignarle tablespace default.
Asgnele cuota ilimitada sobre el tablespace CURSO.
Examine la vista DBA_USERS y determine el tablespace
default del usuario creado. Examine la vista
DBA_TS_QUOTAS para ver las cuotas asignadas al usuario.
Crear otro usuario denominado CURSOx_2 asignndole
como default tablespace CURSO y tablespace temporal
TEMPORARY_DATA. No le asigne cuotas.
Especifique el tablespace TEMPORARY_DATA como
tablespace temporal para el usuario SYS.
Borre la cuota del usuario CURSOx_1 en el tablespace
SYSTEm y cambie su cuota sobre el tablespace CURSO a 5
M.

Revisin del captulo (Continuacin)

Consulte la tabla V$SESSION para determinar el # serial y


SID de su sesin. Cual sera el comando que utilizara si
deseara terminar esta sesin?
Proporcione al usuario CURSOx_1 los privilegios
necesarios para conectarse a la base de datos.
Conctese a la base de datos con el usuario CURSOx_1.
Consulte las vistas SESSION_PRIVS y
USER_SYS_PRIVS.
Conctese a la base de datos con el usuario SYSTEM y
proporcione al usuario CURSOx_1 privilegios para crear
tablas.
Conctese a la base de datos con el usuario CURSOx_1
y verifique las vistas USER_USERS y
USER_TS_QUOTAS, para determinar las cuotas del
usuario.
Cree una tabla denominada ORDENES con los campos
cdigo, fecha_ing, valor_ord, cliente. No indique
tablespace para la tabla.

Revisin del captulo (Continuacin)

Modifique el comando de creacin de la tabla y


especifique el tablespace CURSO como destino de la
misma. Consulte las vistas apropiadas del diccionario
de datos para verificar que efectivamente fue creada.
Conctese a la base de datos como el usuario system
y cambie el tablespace default del usuario CURSOx_1
a CURSO y cambie la cuota de 5M a 5K.
Conctese a la base de datos con el usuario
CURSOx_1 y cree una tabla denominada
EMPLEADOS con los campos : cdigo, nombre,
direccion, telefono, sueldo. Asgnele un extent inicial
de 5K y NEXT de 2K. No especifique tablespace. Qu
sucede?
Examine la vista USER_TS_QUOTAS para
determinar la cuota mxima y utilizacin actual del
usuario CURSOx_1 en el tablespace CURSO.

Revisin del captulo (Continuacin)

Conctese nuevamente con el usuario SYSTEM y


cambie la cuota del usuario CURSOx_1 en el
tablespace CURSO a 5M.
Conctese nuevamente con el usuario CURSOx_1 e
intente crear la tabla EMPLEADOS.
Examine la vista USER_OBJECTS. Existen objetos
adicionales a los que el usuario especficamente cre?.
Por qu?
Conctese con el usuario system y ejecute un query
sobre la tabla CURSOx_1.EMPLEADOS.
Sin salir de SQLPLUS intente asignar privilegios al
usuario CURSOx_2 sobre la tabla
CURSOx_1.EMPLEADOS. Qu sucede?
Ahora conctese a la base de datos con el usuario
CURSOx_1 y asgneles permiso para consultar la table
EMPLEADOS al usuario CURSOx_2.

Revisin del captulo (Continuacin)

Examine la vista USER_TAB_PRIVS y asegrese de


que el permiso fue correctamente concedido.
Conctese con el usuario CURSOx_2 y verifique que
puede consultar la tabla CURSOx_1.EMPLEADOS.
Ejecute el siguiente comando : INSERT INTO
CURSOx_1.EMPLEADOS (codigo,nombre)
values(12345,CURSO x 1). Qu sucede ?

7. POLITICAS DE BACKUP
Y RECUPERACION

Administracin de Bases de Datos Oracle

Objetivos

Entender los mecanismos de


backup y recuperacin de una
base de datos Oracle.
Definir las pautas para la definicin
de una poltica de Backup y
recuperacin.

Polticas de backup y Recuperacin

Tipos de fallos
Export
Backup en fro
Modo ARCHIVELOG o
NOARCHIVELOG
IMPORT

Polticas de backup y Recuperacin

Tipos de fallos
Export
Backup en fro
Modo ARCHIVELOG o
NOARCHIVELOG
IMPORT

Tipos de Errores

Errores de Usuario
Fallas en Programas / sentencias
SQL
Fallas en procesos de usuario
Falla en la instancia de la base de
datos
Fallo en los medios fsicos de
almacenamiento.

Tipos de Errores

Errores provocados por el usuario


Accidentes (borrado o truncado de
tablas).
El usuario borra datos de una tabla.

Alternativas de solucin
Entrenamiento
Recuperar backup vlido
Recuperar una tabla a partir de un
export.

Tipos de Errores

Errores de Programa
Error lgico en la aplicacin
Intento de introducir datos errados en una tabla.
Insuficientes privilegios
El usuario excedi su cuota en el tablespace
No se puede crear un extent para un objeto.
Alternativas de Solucin

Corregir la aplicacin
Modificar la sentencia SQL
Adjudicar al usuario los privilegios necesarios.
Cambiar las cuotas del usuario sobre el tablespace
Agregar un datafile al tablespace o extender uno
actual.

Tipos de errores

Fallas en la Instancia
Falla en la energa
Problemas de hardware (procesador,
memoria)
Problemas de software
Problemas con un proceso de background
Alternativas de solucin
Normalmente la instancia se recupera
automticamente en la siguiente subida de la
base de datos. Oracle revisar las
transacciones que quedaron pendientes y de
reversar (rollback) las que no fueron
confirmadas por medio de COMMIT

Tipos de Errores

Fallas en medios fsicos


Un disco que contiene un archivo de la base
de datos sufri una avera grave y
permanente.
Se presenta un problema fsico al momento
de leer o escribir algn archivo de la base de
datos.
Un archivo fue borrado accidentalmente.

La estrategia de recuperacin depende del


mtodo de backup escogido. Si es posible,
utilice los archivos Redo Log para recuperar
las ltimas transacciones realizadas sobre la
base de datos.

Export

El Export es una utilidad de Oracle que realiza


una copia lgica de la base de datos, la cual se
almacena en un archivo en formato binario.
Lee la base de datos (incluido el diccionario de
datos, procedimientos y funciones almacenadas,
triggers, constraints, etc) y guarda el resultado
en un archivo binario. Puede ejecutarse para
toda la base de datos, para un usuario/usuarios
especficos o para tablas especficas.
Se puede exportar el diccionario de datos,
permisos, usuarios, ndices, procedimientos, etc.
Puede utilizarse para defragmentar la base de
datos.

Export

Ejemplo de una programacin de Backups.


LUN

DOM

MAR

MIE

JUE

VIE

SAB

x
I
I
I

16

I
I
I

X : Full export

10

17

I
I
I

11

18

12

19

13

20

I
I
I

14

21

c
c
c

15

22

I : Export Incremental C : Export acumulativo

Copia en Fro (Cold Backup)

Consiste en realizar una copia fsica de


todos los archivos que conforman la
base de datos, utilizando comandos del
sistema operativo.
Es necesario bajar previamente la base
de datos.
Posiblemente es el mtodo ms rpido
para hacer backups.
Solo permite recuperacin total

Modo ARCHIVELOG o NOARCHIVELOG

Para habilitar el modo Archive:


Ejecutar Server Manager
Connect internal
startup mount;
alter database archivelog;
alter database open;
Si desea que el modo Archive se active
automticamente al iniciar la base de datos,
introduzca los siguientes parmetros en el archivo
de inicio:
LOG_ARCHIVE_START=true
LOG_ARCHIVE_DEST= directorio
LOG_ARCHIVE_FORMAT=nombre archivo

Modo ARCHIVELOG o NOARCHIVELOG

Es necesario almacenar en forma


segura todos los archivos Redo Log para
poder efectuar una recuperacin.
Para determinar los parmetros activos
para el modo archive:

Entrar al server manager SQL*PLUS


connect system/<psw>
ARCHIVE LOG LIST

Import

La utilidad import se utiliza para recuperar la base de


datos a partir de un backup realizado con la utilidad
export.
Cuando se importa una tabla, el archivo de export se
lee y la tabla y sus respectivos datos se crean en el
siguiente orden:
Se crea la tabla (si no existe).
Se importan los datos
Se construyen los ndices
Se importan los triggers y se habilitan constraints
de integridad.

Import
IMP username/psw FILE=filename
[ BUFFER=entero] [SHOW=N/Y]
[GRANTS=N/Y]
[TABLES=(tablename,)],
[INDEXES=Y/N] [COMMIT=N/Y]
[TOUSER=username
FROMUSER=username]
[INDEXFILE=file_name]
[INCTYPE=RESTORE/SYSTEM]

Import - Ejemplo
LUN

DOM

MAR

MIE

JUE

VIE

SAB

x
I
I
I

16

I
I
I

X : Full export

10

17

I
I
I

11

18

12

19

13

20

I
I
I

14

21

c
c
c

15

22

I : Ex`port Incremental C : Export acumulativo

Revisin del captulo

Enumere los pasos para habilitar el modo


ARCHIVELOG en forma automtica.
Modifique los parmetros de inicio de la base de
datos que sean necesarios de tal forma que el
proceso ARCH pueda copiar automticamente los
archivos redo log.
Baje la base de datos y luego sbala sin abrirla.
Consulte la vista V$DATABASE para determinar el
modo actual de la base de datos.
Utilice el comando ALTER DATABASE para
colocar la base de datos en modo ARCHIVELOG
Verifique el estado actual del modo archive.
Determine el nmero de secuencia de log que
utilizar la base de datos.

Revisin del captulo

Abra la base de datos para que pueda ser accesada


normalmente.
Realice operaciones de insercin y/o borrado sobre
algunas tablas.
Ingrese con el usuario system y ejecute el comando
ALTER SYSTEM SWITCH LOG FILE, para forzar un
logswitch y la creacin de un archivo redolog.
Verifique que se han creado archivos redolog en el
directorio especificado para el modo ARCHIVELOG
Consulte nuevamente el nmero de secuencia de
log.
Con el fin de simular un fallo de dispositivo, baje la
base de datos y mueva los datafiles del tablespace
CURSO a un directorio temporal e intente subir la
base de datos.

Revisin del captulo

Baje la instancia y vuelva a colocar los datafiles


en su ubicacin original, luego suba la base de
datos.
Realice un full export de la base de datos.
Ingrese a SQL*PLUS y borre la tabla
CURSOx_1.EMPLEADO.
Utilice la utilidad import para recuperar la tabla
CURSOx_1.EMPLEADO
utilice nuevamente el comando import y genere
un archivo denominado estruc.sql que contenga
las instrucciones necesarias para crear las
definiciones de todos los objetos de la base de
datos.

8. CARGUE DE DATOS

Administracin de Bases de Datos Oracle

Cargue de datos

SQL*Loader : Utilidad de Oracle


para el cargue de datos en tablas
a partir de archivos planos.
Los archivos planos deben estar
formateados de tal forma que
todas las columnas sean de
longitud fija o estn delimitadas
por un separador.
Comando : sqlldr

Cargue de Datos

Cargue de Datos

Vous aimerez peut-être aussi