Kategorier: Alle - instancia - memoria - administración - procesos

av Luna Rosas Antonio 6 dager siden

90

mapabases02

En Oracle, una instancia de base de datos se compone de diversas áreas de memoria y procesos en segundo plano que gestionan diferentes tareas esenciales. Los estados de la instancia incluyen SHUTDOWN, STARTUP y estados especiales como INACTIVE y SUSPEND, cada uno con funciones específicas, como rollback activo o espera de transacciones.

mapabases02

Instancia y Administración de Memoria en Oracle

Topic principal

5. Casos Prácticos

5.4 Diagnóstico de Memoria
Scripts:

s-05-bind-variables.sql (v$sqlstats)

s-13-pga-stats.sql (v$pgastat)

5.3 Bind Variables
Ejemplo PL/SQL con EXECUTE IMMEDIATE y USING
5.2 Uso de In-Memory
Verificar: SELECT * FROM v$im_segments;
Habilitar: ALTER TABLE ventas INMEMORY PRIORITY HIGH;
5.1 Simulación de Fragmentación
Monitorear huecos con dba_free_space
Crear tablaspace con particiones variables

4. Estados de la Instancia

Estados Especiales
INACTIVE (ALTER DATABASE INACTIVE)

Solo acceso para SYSDBA

SUSPEND (ALTER SYSTEM SUSPEND)

Detiene I/O (útil para backups)

SHUTDOWN
ABORT (recovery requerido)
TRANSACTIONAL (espera transacciones)
IMMEDIATE (rollback activo)
NORMAL (espera sesiones activas)
STARTUP
OPEN

Modos: READ WRITE (default), READ ONLY

Acceso completo a la BD

MOUNT

Operaciones: recovery, renombrar datafiles

Lee archivos de control

NOMOUNT

Archivos: spfileSID.ora, initSID.ora

Solo instancia (lee parámetros)

3. Técnicas de Asignación

3.2 No Contigua
Segmentación

Tabla de segmentos (base/límite)

Lógica (código, datos, pila)

Paginación

Tabla de páginas (MMU/TLB)

Tamaño fijo (ej: 4K, 8K)

3.1 Contigua
Fragmentación

Externa (huecos entre particiones)

Interna (espacio no usado dentro de partición)

Particiones Variables

Requiere compactación (coalescing)

Particiones Fijas

Tamaño predeterminado (ej: 100M por proceso)

2. Administración de Memoria

2.2 Optimización
In-Memory

Prioridad: PRIORITY CRITICAL/HIGH/LOW

Compresión: MEMCOMPRESS FOR QUERY LOW

PGA

workarea_size_policy (AUTO/MANUAL)

Monitoreo: v$pgastat, v$sql_workarea

SGA

Shared Pool: flush con ALTER SYSTEM FLUSH SHARED_POOL;

Ajuste dinámico (v$sga_resize_ops)

2.1 Modos de Administración
Manual (ASMM)

Ejemplo: ALTER SYSTEM SET sga_target=4G;

pga_aggregate_target (PGA)

sga_max_target (límite)

sga_target (SGA dinámica)

Automática (AMM)

Vistas: v$memory_target_advice

memory_max_target (límite)

memory_target (SGA + PGA)

1. Componentes de la Instancia

1.2 Procesos
Server Processes

Compartidos (M:N con sesiones)

Dedicados (1:1 con sesión)

Background Processes

CKPT (Checkpoint)

Sincroniza headers de datafiles

PMON (Process Monitor)

Limpia procesos fallidos

SMON (System Monitor)

Recovery al inicio, limpia temporales

LGWR (Log Writer)

Escribe Redo Log Buffer en Redo Logs

DBWn (Database Writer)

Escribe buffers dirty en datafiles

1.1 Áreas de Memoria
PGA (Program Global Area)

Vistas: v$pgastat, v$sql_workarea

Session Memory

Información de conexión

Variables de sesión

Private SQL Area

Cursores (open_cursors)

Bind Variables

SQL Work Areas

Bitmap Merge Area

Hash Area (JOINs)

Sort Area (ORDER BY, GROUP BY)

SGA (System Global Area)

In-Memory Area

Vistas: v$inmemory_area, v$im_segments

Configuración

Habilitar: ALTER TABLE sales INMEMORY;

Parámetro: inmemory_size (mínimo 100M)

Column Store (formato columnar)

IMEU (In-Memory Expression Units)

SMU (Snapshot Metadata Units)

IMCU (In-Memory Compression Units)

Java Pool

Tamaño: java_pool_size

Almacena objetos Java (JVM)

Large Pool

Tamaño: large_pool_size

Usos

Parallel Query (buffers I/O)

Shared Server (UGA)

RMAN (backups grandes)

Redo Log Buffer

Proceso LGWR escribe en Online Redo Logs

Eventos: commit, cada 3 segundos, 1/3 lleno

Tamaño: log_buffer (parámetro estático)

Buffer circular para registros REDO

Database Buffer Cache

Vistas: v$bh, v$db_cache_advice

Mecanismos

Checkpoint (DBWn escribe buffers dirty)

Touch Count (accesos frecuentes)

LRU (Least Recently Used)

Estructura

Estados

Unused (nuevo/disponible)

Dirty (modificado, no escrito)

Clean (sincronizado con disk)

Buffer Pools

nk Pools (4K, 16K, 32K)

Recycle Pool (objetos temporales)

Keep Pool (objetos frecuentes)

ALTER TABLE employees STORAGE(BUFFER_POOL KEEP);

Default Pool (8K por defecto)

Shared Pool

Reserved Pool (bloques grandes contiguos)

Server Result Cache

PL/SQL Function Result Cache

Ejemplo: Funciones con cláusula RESULT_CACHE

SQL Result Cache (consultas repetidas)

Data Dictionary Cache

Vista: v$rowcache

Metadatos de tablas, índices, usuarios

Library Cache

Vistas: v$librarycache, v$sqlarea

Soft Parse vs Hard Parse

Ejemplo: Reutilización de consultas con bind variables

Almacena planes de ejecución SQL/PLSQL