Administración de Oracle 10g (Parte 1)
Este documento electrónico puede ser descargado libre y
gratuitamente desde Internet para su ejecución e
impresión, sólo para fines educativos y/o personales,
respetando su integridad y manteniendo los créditos de
Francisco Fernández Martínez (
[email protected])
Juan Luis Serradilla Amarilla (
[email protected])
Universidad de Murcia
los autores en el pie de página.
Administración de Oracle 10g (Parte 1)
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
TEMARIO
• Arquitectura de la Base de Datos
• Arranque y parada
Fichero de control
•
• Redo log
• Tablespaces
• Segmentos de rollback
• Usuarios, roles, privilegios y perfiles
•
• Auditoría
• Copias de seguridad y recuperación
Jobs
Administración de Oracle 10g (Parte 1)
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
2
OBJETIVOS
• Conocer la Arquitectura Oracle.
• Saber arrancar y parar una base de datos Oracle.
• Gestionar los ficheros Redo log.
• Gestionar el fichero de control.
• Gestionar tablespaces, incluyendo temporales y undo.
• Gestionar segmentos de rollback.
• Gestionar usuarios, roles, privilegios y perfiles.
• Gestionar jobs.
• Gestionar la auditoría del sistema gestor de base de datos.
• Realizar copias de seguridad y recuperación de la base de
datos.
Administración de Oracle 10g (Parte 1)
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
3
TEMA 1
ARQUITECTURA DE LA BASE DE DATOS
Administración de Oracle 10g (Parte 1)
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
4
TEMA 1.
ARQUITECTURA DE LA BD
Instancia
• Servidor oracle
•
• Conexión a la Base de datos
• Memoria: SGA (Automatic Shared Memory Management
• Procesos: procesos de usuario, servidores y background
• Estructura lógica: tablespaces, segmentos, extensiones,
>=10g) y PGA
bloques
• Arquitectura OFA
• Usuarios administradores de la BD: sys y system
• Fichero de autenticación (orapw)
Administración de Oracle 10g (Parte 1)
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
5
SERVIDOR ORACLE
Instancia
Servidor Oracle:
•
• Base de datos
Instancia Oracle:
• System Global
Area (SGA)
• Procesos
Background
Base de datos
Oracle:
Ficheros de
Datos
Fichero(s) de
Control
Ficheros Redo
Log.
•
•
•
Administración de Oracle 10g (Parte 1)
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
6
INSTANCIA
• La integran los procesos “background” y la SGA
• Abre una y sólo una BDO, y permite acceder a ella.
Nota: con Oracle Real Application Cluster (RAC), más de una
instancia usarán la misma BD.
• En la máquina donde reside el servidor Oracle, la variable
ORACLE_SID identifica a la instancia con la que estamos
trabajando.
Administración de Oracle 10g (Parte 1)
ARQUITECTURA DE LA BD
7
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
CONEXIÓN A LA BD
compartidas (Linux/Unix).
conectarnos. Tiene sentido sólo en un SBD.
• Para poder conectarnos a una BDO, necesitamos una serie de
variables en el entorno del usuario del S.O. desde el que
realizaremos la conexión. En el caso de unix/linux:
– ORACLE_HOME. Localización del sw Oracle a utilizar.
– ORACLE_SID. BD, asociada al ORACLE_HOME, a
– PATH=$PATH:$ORACLE_HOME/bin. Programas Oracle
– LD_LIBRARY_PATH=$ORACLE_HOME/lib. Localización de
– NLS_LANG=spanish_spain. Idioma del cliente (opcional).
• Proceso de usuario: la ejecución de la aplicación que permite al
usuario iniciar la conexión; por ejemplo, sql*plus.
• Proceso servidor: se crea en el SBD cuando el usuario se
conecta a la BD, y es el que realmente interactúa con la BD.
• Una conexión de un proceso de usuario al SBD es una sesión
en la BD (puede haber varias del mismo usuario). Se inicia
cuando el usuario se valida contra la BD y termina al
desconectarse.
• Desconectar una sesión con “ALTER SYSTEM DISCONNECT
SESSION 'sid, serial#' [POST_TRANSACTION] [IMMEDIATE];”.
Destruye el servidor dedicado (o el circuito virtual si MTS).
la que vamos a
las
librerías
Administración de Oracle 10g (Parte 1)
ARQUITECTURA DE LA BD
8
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
CONEXIÓN A LA BD: procesos
Conexión con
Servidor
Compartido
(MTS)
Conexión con
Servidor
Dedicado
Administración de Oracle 10g (Parte 1)
ARQUITECTURA DE LA BD
9
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
SGA (System Global Area)
y ASMM (Automatic Shared Memory
Management) - I
LARGE
POOL
JAVA
POOL
SHARED
POOL
BUFFER
CACHE
• Zona
de
REDO
BUFFER
(log_buffer)
memoria
compartida, reservada al
arrancar la instancia. Su
tamaño es dinámico (>=
9i) y
limitado por el
parámetro
SGA_MAX_SIZE.
• SGA_TARGET (>=10g) fija
el tamaño de la SGA y
activa
reparto
automático de su espacio
entre: sga
fija, shared
pool,
java
pool, buffer caché y
streams pool. El resto se
ajustan manualmente.
log buffer, buffer cachés keep y recycle, y buffer cachés con tamaño de
bloque especial; aunque consumen espacio de SGA_TARGET, se fijan
manualmente
DB_KEEP_CACHE_SIZE,
DB_RECYCLE_CACHE_SIZE, DB_nK_CACHE_SIZE). El
(punto
anterior) los dejaremos a cero (tb podemos darles valores, q serán
tomados como mínimos).
libre).
V$SGA_DYNAMIC_COMPONENTS.
(tb gránulo y
• V$SGAINFO:
• V$SGA_TARGET_ADVICE: recomendaciones sobre SGA_TARGET.
Administración de Oracle 10g (Parte 1)
tamaño componentes SGA
SGA (sga_target, sga_max_size)
STREAMS
POOL
el
large pool,
(LOG_BUFFER,
resto
•
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
ARQUITECTURA DE LA BD
10
SGA y ASMM - II
•
•
•
La SGA está formada por gránulos (espacio contiguo de memoria virtual), que
serán de 4M para SGAs <= 1Gb (en 9i <= 128M), y de 16M en caso contrario
(ver V$SGAINFO). Los componentes de la SGA (buffer cache, sharedpool,
largepool, javapool, etc) variarán su tamaño en base a gránulos. Al arrancar,
se asignan al menos tres gránulos (uno para la SGA fija que incluye los redo
buffers, otro para la buffer cache y uno más de sharedpool); y cada
componente seguirá reservando tantos gránulos como necesite.
La SGA está compuesta, fundamentalmente, por tres estructuras de memoria:
shared pool, database buffer cache y redo log buffer. Además, existen tres
estructuras de memoria que, opcionalmente, pueden estar presentes en la
SGA: large pool, streams pool y java pool. Los parámetros de inicialización que
más afectan al tamaño de la SGA son: DB_CACHE_SIZE (>=9i, antiguo
db_block_buffer en <=8i), LOG_BUFFER, SHARED_POOL_SIZE.
Ejemplo de parámetros de inicialización para usar gestión automática de SGA
(SGA_TARGET):
sga_max_size = 80M
sga_target = 70M
db_cache_size = 0
shared_pool_size = 0
large_pool_size = 0
java_pool_size = 0
streams_pool_size = 0
log_buffer = 1048576
# Asignar valor mínimo si se conoce
# Asignar valor mínimo si se conoce
# Asignar valor mínimo si se conoce
# Asignar valor mínimo si se conoce
Administración de Oracle 10g (Parte 1)
ARQUITECTURA DE LA BD
11
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
SGA: Shared Pool - I
el
supere
se
•
La forman por dos estructuras
de memoria gestionadas por
algoritmos LRU:
– library cache
– dictionary cache
• Su tamaño viene determinado
parámetro
por
shared_pool_size (sin que
la
sga_target
SGA
(sga_max_size en 9i)). Desde
usar
10g
sga_target,
dejando
shared_pool_size a cero, o
indicando un valor mínimo).
Modificable dinámicamente:
ALTER SYSTEM SET SHARED_POOL_SIZE
• Se puede “vaciar” con ALTER
SYSTEM FLUSH SHARED_POOL;
(menos lo que está en uso por
sesiones o que esté “fijado” con
dbms_shared_pool.keep).
Administración de Oracle 10g (Parte 1)
recomienda
= 64M;
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
SQL AREA
PL/SQL
AREA
LIBRARY CACHE
DICTIONARY CACHE
SHARED POOL (shared_pool_size)
ARQUITECTURA DE LA BD
12
SGA: Shared Pool - II
• En la library cache se almacena información sobre las
sentencias SQL y PL/SQL, usadas recientemente. Está
formada por dos estructuras:
– Shared SQL área; se almacenan los planes de ejecución y
los árboles sintácticos (parse tree) de las sentencias SQL.
– Shared PL/SQL área; contiene las unidades de programa
(parsed):
compiladas y analizadas
procedures, functions, packages y triggers.
sintácticamente
• En la dictionary cache se guardan las definiciones de
datos usadas más recientemente: database files, tablas,
índices, columnas, usuarios, privilegios, etc. Esta
información se genera y utiliza en la fase de análisis
sintáctico (parse); y se obtiene de las tablas del
diccionario de datos. Es como una caché de datos para el
DD.
Administración de Oracle 10g (Parte 1)
ARQUITECTURA DE LA BD
13
© Juan Luis Serradilla Amarilla y Francisco Fernández Martínez
SGA: Database Buffer Cache
ALTER SYSTEM SET DB_CACHE_SIZE = 96M;
• Almacena copias de los bloques de datos, extraídos de los ficheros de datos
(data files); y está gestionado por un algoritmo LRU.
• Cuando se procesa una query, el proceso servidor busca los bloques de datos
en la Database Buffer Cache; si no los encuentra, los lee de los ficheros de
datos y guarda una copia en la Database Buffer Cache.
Su tamaño depende del parámetro DB_CACHE_SIZE (desde 10g mejor usar
sga_target, dejando db_cache_size a cero o un valor mínimo). Puede
modificarse dinámicamente (sin sobrepasar sga_target (sga_max_size en 9i)):
Se pueden definir varias cachés de datos independientes:
– DB_CACHE_SIZE. Dimensiona la caché por defecto, que siempre existe y cuyo tamaño
– DB_KEEP_CACHE_SIZE. Dimensiona la caché donde se guardarán los bloques de
– DB_RECYCLE_CACHE_S
Comentarios de: Administración Básica de Oracle 10g (Parte 1) (0)
No hay comentarios