Archive for the Tutoriales Category

Sea un Heroe, sea proactivo!

Comiésemos este año nuevo con una nueva mentalidad, o una resolución de año nuevo si quieres pensarlo de ese modo, dejemos de ser reactivos y empecemos a ser proactivos. Ser proactivo va a ayudarlo a reducir sus costos en administración de base de datos,  incrementar tu nivel de eficiencia, ayudarte a cumplir más fácilmente los SLA’s y lo que es mejor salvar tus horas de sueño cuando estés de turno.

¿Porque chequear los problemas solamente cuando estos ya son críticos, o cuando ya es muy tarde y la base de datos ya está abajo o congelada,  o lo que es peor,  cuando los usuarios ya están gritando?

Ser proactivo es la mejor manera de mantener tu base de datos saludable y de mostrarle a tu empresa o tus clientes que tu realmente te preocupas por ellos.

No sé porque, pero muchos DBA’s gastan la mayoría de su tiempo siendo bomberos solamente (puro apagando incendios) arreglando problemas o trabajando en requerimientos de los usuarios. Este tipo de mentalidad o comportamiento va solamente traer como resultado, miles de dólares en horas extras (si es que te las pagan), varias horas sin sistema para los usuarios, baja performance de las aplicaciones y lo que es peor de todo, varios usuarios insatisfechos que pensaran que tú no tienes el conocimiento necesario para estar a cargo de su data.

Mencionemos un pequeño ejemplo, tienes configurado el alarma del área de archive logs en que se dispare cuando este en un 95% lleno, y esto ocurre en la mitad de la noche, algunos DBA’s van a tomar este alerta seriamente y lo arreglaran de inmediato, otros esperaran hasta el día siguiente para resolverlo ya que o están muy cansados y dormidos, o no tienen en ese momento acceso a internet para resolverlo. Hubiera sido mucho mejor y más fácil si en vez del alerta estar configurado en un nivel crítico solamente, haberlo puesto con un monto mas proactivo como por ejemplo un 75% o un 85%, o lo que hubiera sido aun mejor, haber mirado la salud de tu DB antes de haberte ido del trabajo para detectar y resolver cualquier posible problema antes que fuera un problema real o para planear como solucionarlo a tiempo antes de que te despierten en la mitad de la noche o te interrumpan durante el fin de semana (Acuérdate siempre que tu tiempo personal y familiar es lo más importante que tienes y siempre debes de trabajar en pro de protegerlo y cuidarlo). A mí personalmente siempre me gusta recomendar a los DBA’s que corran 2 checklists diarios, uno a principio de su jornada laboral y otro al final de esta.

Yo conozco a muchos DBA’s que reclaman todo el tiempo que no tienen vida, ya que se vuelven locos cuando están de turno por el volumen de llamados y de las interrupciones que ocurren durante los fines de semana y noches. Pero esto solamente les ocurre porque ponen su atención y tiempo en solucionar los síntomas y no los problemas de raíz o si no es posible, en tomar medidas proactivas para protegerse.

Ser proactivo no solamente lo ayudara a obtener una mejor calidad de vida, también lo ayudara a detectar puntos de mejora en: performance, seguridad o quién sabe, simplemente evitar un posible desastre futuro antes que cualquier otra persona lo haya detectado.

Aquí podrás encontrar un script de checklist que podrás usar como ejemplo para ayudarte a hacer tu vida un poco mas fácil (Este no es mi script completo, pero muy bueno para empezar). Este script es una compilación de varios scripts de checklist y tu podras modificar facilmente  las variables (thresholds) segun tus necesidades, pero eso si, acuerdese siempre de tener una baseline con que compararlo.

Como mencionado antes, este script no solamente lo ayudara a Ud. A detectar problemas actuales o futuros, pero también lo ayudara a detectar futuros requerimientos de tuning también.

Aquí está un ejemplo de lo que sería la primera parte del reporte generado por el script:

– ———————————————————————– –
– Oracle Instance Information
– ———————————————————————– –
Cpu_Count                                    4   |      Host_Name              OLIVER
Instance_Name                        prod   |      Database_Status      ACTIVE
Status                                     OPEN   |     Startup_Time          10-01-2009 19:50
Version                            11.1.0.7.0   |      Instance_Role          PRIMARY_INSTANCE
Database Space (Mb)           36604    |      SGA (Mb)                 511
Nb. Datafiles                               43    |     Nb. Tempfiles           1

Archive destination LOCATION=E:\oracle\oradata\prod\archive
Database log mode ARCHIVELOG
Background Dump Dest d:\oracle\diag\rdbms\prod\prod\trace
Spfile D:\ORACLE\PRODUCT\11.1\PROD\DATABASE\SPFILEPROD.ORA
Redo size (Kb) 102400

– ———————————————————————– –
– Instance CheckList –
– ———————————————————————– –
Instance Status                                  OK    |      Listener Status      OK
– ———————————————————————– –
– Performance Memory CheckList –
– ———————————————————————– –
Total Sessions < 700                           OK - 19
Active sessions number <15                 OK - 9
Data Buffer Hit Ratio > 80                   OK - 97
L.Buffer Reload Pin Ratio > 99           OK - 99
Row Cache Miss Ratio < 0.015            NO - 1.351
Dict.Buffer Hit Ratio > 80                    OK - 99
Log Buffer Waits = 0                            NO - 110
Log Buffer Retries < 0.0010                 OK - 0
Switch number (Daily Avg) < 5            OK - 1
Jobs Broken = 0                                   OK 0
Shared_Pool Failure = 0                     OK - 0
– ———————————————————————– –
– Storage CheckList                                            –
– ———————————————————————– –
Dba_Tablespaces Status                     OK   |       V$Log Status             OK
V$Datafile Status                                OK   |       V$Tempfile Status   OK
V$Recover_File                                  OK   |       V$Recovery_Log      OK
Tablespace in Backup Mode = 0        OK - 0
Tablespace < 95%                              OK- 0
Objects Invalid = 0                              NO - 147
Indexes unusable = 0                          OK - 0
Trigger Disabled = 0                            NO- 5
Constraint Disabled = 0                       NO - 2
Objects close max extents = 0             OK - 0
Objects can not extent = 0                  NO - 552
User Objects on Systems = 0               NO - 26
FK Without Index = 0                          NO - 138
– ———————————————————————– –
– Datagard CheckList                                          –
– ———————————————————————– –
Datagard Errors = 0                             OK- 0
Datagard Gap = 0                               OK - 0
Archives not Aplied < 5                       OK - 2
– ———————————————————————- –
– Installed options :
– ———————————————————————- –
- Objects option
- Connection multiplexing option
- Connection pooling option
- Database queuing option
- Incremental backup and recovery option
- Instead-of triggers option
- Parallel load option
- Proxy authentication/authorization option
- Plan Stability option
- Coalesce Index option
- Transparent Application Failover option
- Sample Scan option
- Java option
- OLAP Window Functions option

Ud. También podrá encontrar varios productos que lo podrán ayudar a monitorear y configurar sus alertas de una forma proactiva, tales como: Grid Control (Oracle), Enterprise Manager (Oracle), Insider (FourthElephant), Spotlight (Quest), entre muchos otros más disponibles en el mercado y también caso sea su preferencia, utilizar sus propios scripts para esta finalidad. La idea es siempre usarlos de una forma proactiva, nunca reactiva.

Por eso cambiemos nuestra mentalidad y dejemos de ser bomberos para comenzar a ser realmente héroes.

Mucha suerte,

Francisco Muñoz Alvarez

Vamos a jugar con Oracle RAC 11g y Oracle Enterprise Linux 5- Parte I

Este es el primero de varios workshops que voy a publicar, al final de cada  uno publicare el workshop complete asi como algunos videos de estos explicando paso a paso cada uno.

Comencemos con el primero  ;)

Parte I – Creando el Ambiente Virtual

Proyecto

Oracle Rac5/2008

Autor

Francisco Munoz Alvarez

Programas usados

Oracle Enterprise Linux 5

WMware Workstation 6.0.4 build 93057

Oracle 11.1.0.6 Database and Clusterware Software

Fecha

30/10/2008

 

La idea de este workshop es para ensenar como crear una installacion de RAC usando VMWare Workstation 6, Oracle Enterprise Linux 5 y Oracle 11g. Esta instalacion nunca debe de ser usada para ambientes de produccion, esta instalacion fue creada para proposito educacional solamente.

1. Project Hardware and Software Overview

 

Host Machine

Machine Name

Francisco-PC

Operational System

Windows Vista Business SP1

VMware Version

WMware Workstation 6.0.4 build 93057

Host Machine

HP Pavilion 6730b

Memory

3 GB

External Hard Drive

600 GB

Processor

Intel Core Duo P8400

 

Virtual Machine #1 - Rac1

Operational System

Oracle Enterprise Linux 5

Machine Name

rac1

Database Version

11.1.0.6

Instance Name

Test1

Public Name/IP - (eth0)

rac1.dbisonline.com - 192.168.2.8

Interconnect Name/IP - (eth1)

rac1-vip.dbisonline.com -10.10.10.11

Memory

860 MB

CPU

2 CPUs

Hard Drive

18 GB

Location

C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac1

Virtual Machine #2 - Rac2

Operational System

Oracle Enterprise Linux 5

Machine Name

rac2

Database Version

11.1.0.6

Instance Name

Test2

Public Name/IP - (eth0)

rac2.dbisonline.com - 192.168.2.9

Interconnect Name/IP - (eth1)

rac2-vip.dbisonline.com -10.10.10.12

Memory

860 MB

CPU

2 CPUs

Hard Drive

18 GB

Location

C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac2

VMware File

Virtual Disks

Virtual Device Node

Size (GB)

Description

RAC\rac1\localdisk-flat.vmdk

/dev/sda1

/dev/sda2

SCSI 0:0

8

/

Mount Point

Swap space

Oracle Binaries

RAC\shared_storage\ocfs2-flat.vmdk

/dev/sdb1

SCSI 1:0

1

OCFS2 Disk

RAC\shared_storage\asm1-flat.vmdk

/dev/sdc1

SCSI 1:1

3

ASM disk group 1

RAC\shared_storage\asm2-flat.vmdk

/dev/sdd1

SCSI 1:2

3

ASM disk group 2

RAC\shared_storage\asm3-flat.vmdk

/dev/sde1

SCSI 1:3

3

ASM Flash Recovery Area

 

2. El Software

Ud. Podra bajar todos los programas aqui utilizados usando los links a continuacion:

 

 

3. Virtual Machine Rac1 Setup

 

Nosotros vamos a crear 2 maquinas virtuales (Rac1 and Rac2) que compartiran 5 discos (asm1, asm2, asm3, ocfs2 and local disk).

Primero vamos a crear los folders en Windows par alas maquinas virtuales y los storages compartidos.

  • C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac1
  • C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac2
  • C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage

1. Despues haga Doble-clique en el icono deVMware en su desktop para abrir esta aplicacion:

clip_image001

2.   Clique en el icono de New Virtual Machine.

clip_image002

3. New Virtual Machine Wizard: Clique en Next.

clip_image003

4. En el Select the Appropriate Configuration Window, seleccione Custom  y clique  next.

clip_image004

5. Cliques Next en la ventana de Compatibility.

clip_image005

6. Select a Guest Operating System:

  • a. Guest operating system: Seleccione Linux.
  • b. Version: Seleccione Red Hat Enterprise Linux 5.

c. CliqueNext

clip_image006

7. Name the Virtual Machine:

  • a. Virtual machine name: Entre rac1
  • b. Location: Entre C:\Users\francisco\Documents\labs-virtual-machines\RAC\rac1\
  • c. Clique Next

clip_image007

8. Processor Configuration

  • a. Number of processors: Seleccione Two
  • b.Clique Next

clip_image008

9. Memory for the Virtual Machine

  • a. Memory: Entre 860 MB
  • b. Clique Next

clip_image009

10. Network Type

  • a. Network Connection: Seleccione Use bridged networking
  • b. Clique Next

clip_image010

11. Select I/O Adapter Types

  • a. SCSI Adapters: Seleccione LSI Logic
  • b. Clique Next

clip_image011

12. Select a Disk:

  • a. Disk: Seleccione create a new virtual disk.
  • b. Clique Next

clip_image012

13. Select a Disk Type:

  • a. Virtual Disk Type: Seleccione SCSI (Recommended).
  • b. Clique Next

clip_image013

14. Specify Disk Capacity:

  • a. Disk capacity: Entre 8GB and Select Allocate all disk space now.
  • b. Clique Next

clip_image014

15. Specify Disk File:

  • a. Disk file: Entre localdisk
  • b. Clique en Finish.

clip_image015

clip_image016

16. Ahora vamos a crear los restantes discos compartidos:

  • a. VMware Server Console: Clique en Edit virtual machine settings.

clip_image017

17. Add Hardware Wizard: Clique en Next.

clip_image018

18. En Hardware Type:

  • a. Hardware types: Seleccione Hard Disk
  • b. Clique en Next

clip_image019

19. Select a Disk:

  • a. Disk: Seleccione Create a new virtual disk.
  • b. Clique Next

clip_image020

20. Select a Disk Type:

  • a. Virtual Disk Type: Seleccione SCSI (Recommended).
  • b. Mode: Seleccione Independent
  • c. Mode: Seleccione Persistent
  • d. Clique Next

clip_image021

21. Specify Disk File:

  • a. Disk file: Entre “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\ocfs2.vmdk”
  • b. Clique Next

clip_image022

22. Specify Disk Capacity:

  • a. Disk capacity: Entre “1.0GB”
  • b. Seleccione Allocate all disk space now.
  • c. Clique Finish

clip_image023

clip_image024

clip_image025

Repita los pasos 16 all 22 para crear los siguientes discos faltantes ( virtual SCSI hard disks):

  • asm1.vmdk, C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm1.vmdk (3GB),
  • asm2.vmdk, C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm2.vmdk (3GB),
  • asm3.vmdk, C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm3.vmdk (3GB).

Cuando listo, tendras algo como esto:

clip_image026

Ahora hay que agregar una tarjeta de red virtual mas para el interconnect privado:

  • a. VMware Server Console: Clique en Edit virtual machine settings.
  • b. Hardware types: Ethernet Adapter.
  • c. Clique Next

clip_image027

En Network Type:

  • a. En Network Connection Seleccione Bridget: Connect directly to the physical network
  • b. Clique en Finish.

clip_image028

Despues Seleccione Floppy then:

  • a. clique en Remove
  • b. Y clique OK.

clip_image029

clip_image030

Como podras ver los discos lucen de la siguiente manera:

  • Hard Disk (SCSI 0:0) 8 GB
  • Hard Disk (SCSI 0:1) 1 GB
  • Hard Disk (SCSI 0:2) 3 GB
  • Hard Disk (SCSI 0:3) 3 GB
  • Hard Disk (SCSI 0:4) 3 GB

Ahora necesitamos configurar estos para que luzcan asi:

  • Hard Disk (SCSI 0:0) 8 GB
  • Hard Disk (SCSI 1:0) 1 GB
  • Hard Disk (SCSI 1:1) 3 GB
  • Hard Disk (SCSI 1:2) 3 GB
  • Hard Disk (SCSI 1:3) 3 GB

Para poder hacer esto, vamos a hacer un doble-clique sobre el disco llamado SCSI 0:1

  • a. Clique en  Advanced

clip_image031

Cambie el Virtual Device node

  • a. De SCSI 0:1 Hard Disk (SCSI 0:1)
  • b Para SCSI 1:0
  • c. Clique OK
  • d. Y clique OK una vez mas

clip_image032

clip_image033

Repita los mismos pasos para cambiar:

  • Hard Disk (SCSI 0:2) 3 GB para SCSI 1:1
  • Hard Disk (SCSI 0:3) 3 GB para SCSI 1:2
  • Hard Disk (SCSI 0:4) 3 GB para SCSI 1:3

clip_image034

Ahora para terminar esta maquina, edite el archivo C:\Users\francisco\Documents\labs-virtual-machines\RAC\Red Hat Enterprise Linux 4.vmx.

               a. Incluya las lineas abajo igual que el ejemplo b.

disk.locking = “FALSE”
diskLib.dataCacheMaxSize = “0″
scsi1.sharedBus = “virtual”

b.

config.version = “8″

virtualHW.version = “6″

numvcpus = “2″

scsi0.present = “TRUE”

scsi0.virtualDev = “lsilogic”

memsize = “860″

scsi0:0.present = “TRUE”

scsi0:0.fileName = “localdisk.vmdk”

ide1:0.present = “TRUE”

ide1:0.fileName = “auto detect”

ide1:0.deviceType = “cdrom-raw”

floppy0.autodetect = “TRUE”

ethernet0.present = “TRUE”

ethernet0.wakeOnPcktRcv = “FALSE”

usb.present = “TRUE”

ehci.present = “TRUE”

sound.present = “TRUE”

sound.fileName = “-1″

sound.autodetect = “TRUE”

svga.autodetect = “TRUE”

pciBridge0.present = “TRUE”

mks.keyboardFilter = “allow”

displayName = “rac1″

guestOS = “rhel5″

nvram = “Red Hat Enterprise Linux 4.nvram”

deploymentPlatform = “windows”

virtualHW.productCompatibility = “hosted”

tools.upgrade.policy = “useGlobal”

disk.locking = “FALSE”

diskLib.dataCacheMaxSize = “0″

scsi1.sharedBus = “virtual”

ide1:0.autodetect = “TRUE”

floppy0.fileName = “A:”

extendedConfigFile = “Red Hat Enterprise Linux 4.vmxf”

scsi0:1.present = “FALSE”

scsi0:1.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\ocfs2″

scsi0:1.mode = “independent-persistent”

scsi0:2.present = “FALSE”

scsi0:2.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm1.vmdk”

scsi0:2.mode = “independent-persistent”

scsi0:3.present = “FALSE”

scsi0:3.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm2.vmdk”

scsi0:3.mode = “independent-persistent”

scsi0:4.present = “FALSE”

scsi0:4.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm3.vmdk”

scsi0:4.mode = “independent-persistent”

floppy0.present = “FALSE”

ethernet1.present = “TRUE”

ethernet1.wakeOnPcktRcv = “FALSE”

scsi1.present = “TRUE”

scsi1.virtualDev = “lsilogic”

scsi1:0.present = “TRUE”

scsi1:0.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\ocfs2″

scsi1:0.mode = “independent-persistent”

scsi1:1.present = “TRUE”

scsi1:1.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm1.vmdk”

scsi1:1.mode = “independent-persistent”

scsi1:2.present = “TRUE”

scsi1:2.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm2.vmdk”

scsi1:2.mode = “independent-persistent”

scsi1:3.present = “TRUE”

scsi1:3.fileName = “C:\Users\francisco\Documents\labs-virtual-machines\RAC\shared_storage\asm3.vmdk”

scsi1:3.mode = “independent-persistent”

 

Hoy terminare este tema por aqui.  Pronto voy a seguir con la creacion del Segundo nodo y la instalacion del Oracle Enterprise Linux 5

Saludos,

Francisco Munoz Alvarez 

LOGGING o NOLOGGING, he ahi el dilema - Parte I

Introducción

La pregunta medular sobre NOLOGGING que escucho todo el tiempo es: ¿Crear una tabla con la opción NOLOGGING significa que “jamás habrá generación de redo”, o solo la operación inicial de creación no tiene generación de redo. Otras interrogantes como: ¿Que sentencias DML generan redo? ¿Cómo y cuando se puede emplear la opción NOLOGGING?

La generación de redo es una parte vital del mecanismo de recuperación de Oracle. Sin él, una instancia no podría recuperarse en caso de caída y tampoco podría iniciar en un estado consistente. La generación excesiva de redo, es el resultado del trabajo excesivo en la base de datos.

Este documento aborda el tema de la reducción en la generación de redo, utilizando las opciones LOGGING y NOLOGGING, las diferencias entre ellas, sus mecanismos, como reducirla y cuando usarlas.

Adicionalmente, encontrará ejemplos y tips sobre el uso de cada una de ellas.

Los beneficios principales de la opción NOLOGGING sugeridos en la Guía de Administración de Base de Datos Oracle®, son:

  • Ahorro de espacio en los archivos de redo log
  • El tiempo que toma crear la tabla o índice disminuye
  • Mejora el desempeño en la creación en paralelo de tablas grandes

“Una regla importante respecto los datos, es nunca colocarte a ti mismo en una situación no recuperable. La importancia de este lineamiento no puede tener más énfasis, sin embargo no significa que jamás puedas utilizar alternativas que ahorren tiempo o mejoren el desempeño”.

¿Que es el Redo?

Sumariemos brevemente el proceso de redo. Cuando los bloques en Oracle son modificados, incluyendo los bloques de undo, Oracle registra los cambios en forma de vectores de cambio, los cuales son conocidos como entradas de redo o registros de redo. Las modificaciones son escritas por el proceso de servidor al buffer de redo log en la SGA. Posteriormente el buffer de redo log es vaciado a los archivos en-línea de redo log, casi en tiempo real por el proceso de escritura de logs (LGWR). (Ver la figura 1)

 

fig01

Los redo logs son escritos por el LGWR cuando:

  • Cuando un usuario envía un commit.
  • Cuando el Buffer de Logs esta a 1/3 de su capacidad.
  • Cuando la cantidad de entradas de redo es 1MB.
  • Cada tres segundos
  • Cuando sucede en la base de datos un punto de control (checkpoint). Las entradas de redo son escritas antes del checkpoint para asegurar recuperabilidad.

“Si el buffer de logs es muy reducido, entonces observaremos esperas por espacio en buffer de logs (buffer log space waits) durante la generación de redo. Es posible que el proceso LGWR no comience a escribir redo hasta alcanzar el umbral definido por _log_io_size (el valor por defecto es 1/3 del buffer de logs o 1M, lo que sea menor) ha sido excedido, y el remanente del buffer de logs pueda ser llenado antes de que el LGWR pueda completar la escritura y liberar espacio en el buffer de logs.

En el caso ideal, el buffer de logs debería ser lo suficientemente grande para hacer frente a todas las ráfagas de generación de redo, sin que se observen esperas por espacio del buffer de logs.

Comúnmente, las ráfagas mas severas de generación de redo ocurren inmediatamente después de un cambio de log, cuando la generación de redo ha sido deshabilitada por un tiempo, y existe una lista de espera de demanda por espacio en el buffer de logs” por Steve Adams. 

Los archivos de redo log registran cambios a la base de datos como resultado de transacciones (Una transacción es una unidad lógica de trabajo, consistente de una o mas sentencias SQL ejecutadas por un usuario) o acciones internas del servidor Oracle. Los archivos de redo log protegen a la base de datos de la perdida de integridad en casos de fallos causados por perdidas de suministro eléctrico, errores en discos duros y así algunas otras causas. Los archivos de redo log deben ser multiplexados para asegurar que la información almacenada en ellos no se pierda en caso de un fallo en disco. Consiste en grupos de archivos de redo log y cada grupo esta integrado por un archivo de redo log y sus copias multiplexadas. Se dice que cada copia idéntica es miembro de un grupo, y cada grupo es identificado por un número. El proceso de escritura en logs (LGWR) escribe los registros de redo del buffer de redo log a todos los miembros del grupo actual de redo logs, hasta que el archivo se llena o se solicita una operación de cambio de archivo de log. Entonces, cambia el grupo activo y comienza a escribir en los archivos del siguiente grupo. Los grupos de redo log son usados de una forma circular (ver la figura 2).

 

fig2

Recomendación de Mejor Práctica:

Oracle recomienda que los grupos de archivos de redo logs posean al menos dos archivos por grupo, con los archivos distribuidos en discos o controladoras separadas para que de esta forma en caso fallos en el hardware no se destruya el grupo completo.

La perdida de un grupo entero de redo logs es una de las posibles fallas de medios mas serias ya que puede resultar en perdida de datos. La perdida de uno de los miembros de un grupo de redo logs, considerando un grupo con múltiples miembros, es trivial y no afecta la operación de la base de datos más allá de provocar la publicación de un mensaje de alerta en el alert log.

Hay que recordar que los redo logs influencian fuertemente el desempeño de una base de datos, ya que un commit no puede darse por realizado hasta que la información de la transacción ha sido escrita a los redo logs. Los archivos de redo log se deberán ubicar en los discos mas rápidos disponibles, atendidos por las controladoras mas rápidas. Si es posible, no compartir con ningún otro archivo de la base de datos los discos destinados a los archivos de redo log. Esto es porque solo un grupo es accesado para escritura en un momento dado; no hay implicaciones en tener miembros de distintos grupos en el mismo disco.

Para evitar la perdida de información que podría ser requerida al recuperar la base de datos a un punto especifico, Oracle posee un proceso de archivado que trabaja en segundo plano (ARCn), el cual archiva los redo logs cuando estos se llenan. Sin embargo, es importante notar que no todas las bases de datos Oracle tienen habilitado el proceso de archivado. Una instancia con el archivado habilitado, se dice que opera en modo ARCHIVELOG y una instancia con el archivado desactivado se dice que opera en modo NOARCHIVELOG.

Para determinar en que modo esta o si el archivado esta siendo usado en una instancia tenemos las siguientes alternativas: se puede verificar el valor del parámetro LOG_ARCHIVE_START que se encuentra en el archivo de parámetros de inicio (pfile o spfile - este parametro se derogo a partir de la versión 10g), ejecutar un query SQL a la vista v$database (”ARCHIVELOG” indica que el archivado esta activado, y “NOARCHIVELOG” indica que el archivado esta deshabilitado) o ejecutando el comando ARCHIVE LOG LIST.

SQL> Select log_mode from v$database;
 
LOG_MODE
——————-
ARCHIVELOG
 
SQL> archive log list
 
Database log mode		Archive Mode
Automatic archival		Enabled
Archive destination		USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence	8
Next log sequence to archive	10
Current log sequence		10
 

Estén pendientes de la siguiente parte, donde hablare sobre Generación de Redo y Recuperabilidad: como, cuando y porqué. 

Muchos saludos, 

Francisco Munoz Alvarez

Presentacion MOF - Version 1.2 (En Ingles)

Presentacion MOF - Version 1.2

 Estimados,

Esta es la presentacion MOF en que estoy trabajando para cambiar la metodologia de Servicio aqui en Datacom en este momento. Estoy habierto a comentarios sobre el tema y sugerencias.

Gracias por la participacion de todos,

Saludos,

Francisco Munoz Alvarez

|