lunes, 20 de septiembre de 2010

Cambiar ubicacion de LOG_ARCHIVE_DEST_n

Para cambiar la ubicación de almacenamiento de los archive redo log files , ejecuta el siguiente comando:

SQL> ALTER SYSTEM SET log_archive_dest_1='location=/bk_archive_1/' scope=spfile;

LOCATION me indica que es una ubicación local dentro del mismo servidor, si quisiera configurar los archives en otro servidor o pc , debermos registrar un servicio :

SQL> ALTER SYSTEM SET log_archive_dest_2='SERVICE=orcl_service' scope=spfile;

Una vez reinicies la bd estos cambios deberían tomar efecto , siempre y cuando no hayas fallado al escribir la ruta de ubicación de tus archivos, si oracle no encuentra  la ruta especificada tu bd no podrá ser iniciada y te saldrá el siguiente error.

ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translat

Para darle solución a este pequeño problemita que a cualquiera le puede pasar xD

sql > create pfile from spfile;

en la ruta $ORACLE_HOME/dbs, ubica el archivo initORCLSID.ORA

editas el archivo y en el parametro configurado log_archive_dest_1, corriges la ruta ...

*.log_archive_dest_1='location=/bk_archive_u01/'

accedes una vez mas al sql*plus

sql> create spfile from pfile:

sql> startup

y debe subir la bd sin ningún inconveniente.

Nota:
Para indicar la cantidad mínima de destinos en los cuales el proceso ARCn debe haber copiado satisfactoriamente los archives, se debe configurar el parámetro log_archive_min_succeed_dest, que evitará se reutilicen los redo log files no archiveados.

Habilitar Modo archive

Debes colocar tu base de datos en modo Archive,por que te permitirá realizar backups de los archivos físicos de tu base de datos sin tener que bajar los servicios, el tener habilitada tu bd en modo archive, permite que puedas recuperar tu base de datos ante cualquier tipo de falla hasta la ultima transacción comiteada.

Habilitar el modo archive consiste en que a través del Background process ARCn se realiza una copia del contenido de los redo log files cada vez que uno de estos se llena en una ubicación especificada por el parametro LOG_ARCHIVE_DEST_n(n :1 al 10), como mínimo debes tener seteado una ubicación.

Antes de configurar tu bd en modo archive debes setear la ubicación del FLASH_RECOVERY_AREA, a través del parametro DB_RECOVERY_FILE_DEST, este será la ubicación donde se almacenarán tus backups realizadas de ahora en adelante.


* PASOS PARA CONFIGURAR TU BASE DE DATOS A MODO ARCHIVE:

[oracle@pc dbs]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;

Si habilitamos el modo archive y no hemos especificado ninguna ubicación para los archives estos se almacenarán en la ruta $ORACLE_HOME/dbs

Debes tener en cuenta que la base de datos siempre tratará de almacenar los archives, por lo cual debes tener mucho cuidado con el espacio que requieras para almacenarlos, si este lograra llenarse la base de datos parará hasta que tu liberes espacio en disco y solo así podrás realizar mas transaccio nes.

Si estás utilizando el FLASH_RECOVERY_AREA para almacenar tus archive redo log files, la bd te da un warning a través del EM(Enterprise manager) o via email si tu espacio es menor al 15% y te da una alerta crítica si es menor que el 3% .

domingo, 25 de julio de 2010

Aprendiendo PL/SQL

PL/SQL (Procedural Language extension to SQL) - Introducción

Beneficios de PL/SQL

-PL/SQL permite la integración de procedimientos construidos con SQL.Permite especificar no sólo que hacer con un comando SQL , sino como hacerlo, dando un mejor control para su ejecución.

-Mejora la peformance, ya que a través de PLSQL podemos unir varias sentencias SQl en un solo programa, por lo tanto se envía un solo bloque a la BD en lugar de enviar una sentencia SQL a la vez.

-Modularized programa development: la unidad basica en un programa PL/SQL es el bloque.Los Bloques se pueden hallar secuencialmente o se pueden encontrar anidados.

Modularizar consiste en utilizar procedimientos, funciones, paquetes.

-Integración con herramientas, PL/SQL se encuentra integradoi con herramientas como Oracle Forms, Oracle Reports, otros.

-Portable: PLSQL corre en cualquiere servidor Oracle.

-Manejo de Excepciones, permite manejar eficientemente las excepeciones.

Estructura de un Bloque PL/SQL

Tiene 3 secciones :

1.DECLARATIVE
DECLARE (opcional)

-Permite declarar variables, crusores y excepciones

2.EXECUTABLE(inicia con begin y finaliza con end) esta sección necesariamente debe contener al menos una sentencia.

BEGIN(mandatorio)

- SQL y PL/SQL sentencias

EXCEPTION(opcional)

- Acciones a desarrollar cuando ocurren errores.

END;(mandatorio)

3.EXCEPTION HANDLE(Manejo de excepciones) esta sección se encuentra anidada dentro de la sección ejecutable e inicia con la palabra EXCEPTION

TIPOS DE BLOQUES

Existen 3 tipos de bloques que comprenden un Programa PL/SQL

1.Anónimos
No tienen nombre y son compilados cada vez que la aplicación es ejecutada ya que estos bloques nose almacenan en la bd.

2.Subprogramas(Procedimientos & Funciones)
Tienen un nombre especifico y son almacenados en la BD, por ello podemos invocarlos cuando lo necesitemos. Los tipos son : procedimientos y funciones, los primeros desarrollan una acción y las funciones calculan y DEBEN retornan un valor.


Ejemplos de un bloque anónimo

1. Habilitar la salida de mensajes en SQL* PLUS
set server output on

2. Utilizaremos el paquete de oracle para mostrar los mensajes:
DBMS_OUTPUT.PUT_LINE();

3. detallamos un bloque anónimo :

Finalizamos el bloque con el "/" para proceder a su ejecución.