martes, 23 de diciembre de 2014

Oracle Data Guard

Es la funcionalidad de la base de datos Oracle que brinda la mayor y más efectiva disponibilidad, protección y recuperación ante desastres de los datos, ya que provee la administración, el monitoreo y la automatización de una o más bases de datos standby para proteger a los datos ante fallas, desastres, errores o corrupción. 

Tanto sea que las bases standby estén ubicadas en un sitio de recuperación ante desastres a varios kms del sitio de producción o en el mismo edificio, esta funcionalidad asegura que si la base de datos de producción sale de servicio, sea de manera planeada como imprevistamente, Data Guard switchea automáticamente la base standby al rol de base de producción, minimizando el tiempo de la caída y previniendo la pérdida de datos.

Data Guard brinda confiabilidad, ya que el administrador siempre conoce el estado de las bases standby que pueden, en solo segundos, asumir el rol primario.
Propiedades de una Base de Datos Oracle

Definir una base de datos consiste de especificar los tipos de datos, estructuras y restricciones para los datos que serán almacenados en la base de datos. Construir la base de datos es el proceso de almacenar los datos propiamente dichos en un medio de almacenamiento controlado por el DBMS.

Manipular una base de datos incluye funciones tales como: consultar la base de datos para recuperar datos específicos, actualizar la base de datos para reflejar cambios ocurridos en el mundo real, y generar reportes a partir de los datos.

Un DBMS proporciona un entorno conveniente y eficiente para ser utilizado al extraer y almacenar información en la base de datos.

Atomicidad

La atomicidad (Atomicity) de una transacción garantía que todas sus acciones sean realizadas o ninguna sea ejecutada, en el caso de q la transacción binaria o se ejecuta tanto el “deposito-deducción” o ninguna acción será realizada.

Consistencia

La consistencia (Consistency) garantiza que las reglas que hayan sido declaradas para una transacción sean cumplidas.

Aislamiento

Aislamiento (Isolation) garantiza que las transacciones que se estén realizando en el sistema sean invisibles a todos los usuarios hasta que estas hayan sido declaradas finales. En la transacción bancaria es posible que el sistema este programado para intentar en 5 o 10 ocasiones más antes de abortar una transacción por completo. A pesar que este último paso no ha sido finalizado ya existen otras modificaciones en el sistema. Este aislamiento (Isolation) garantiza que los usuarios del sistema no observen estos cambios intermedios hasta que sea finalizada la última acción de actualización.

Durabilidad

La durabilidad (Durability) de una transacción garantiza que al instante en el que se finaliza la transacción esta perdure a pesar de otras consecuencias, esto es, es el disco duro falla, el sistema aún capaz de recordar todas las transacciones que han sido realizadas en el sistema.
Conceptos Oracle

Es un sistema de gestión de base de datos objeto-relacional (ORDBMS por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation.

Se considera a Oracle Data base como uno de los sistemas de bases de datos más completos.


 Import

Realiza la carga de un archivo binario en la base de datos, previamente generado con la utilidad EXPORT.


 Export

Es una utilidad que genera un archivo binario con toda la información de estructura y contenido de una base de datos.


 Listener

El Oracle Net listener más conocido como listener, es el servicio que corre en el servidor donde están
las bases de datos Oracle y que se encarga de manejar todas la peticiones remotas de entrada a la
base de datos.


 Parámetro

Son las características de la instancia; Siempre que inicie una instancia de Oracle, Oracle lee sus
parámetros de inicialización desde el archivo init.ora o desde el archivo de parámetros del servidor, spfile.ora.


 Database Link (DBLink)

Es un tipo de objeto que permite realizar una conexión desde una base de datos a otra.


Parche

Consta de cambios que se aplican a un programa, para corregir errores, agregarle funcionalidad,
actualizarlo, etcétera.

Si bien los parches suelen ser desarrollados por programadores ajenos a los autores iniciales del
proyecto, esto no siempre es así. Un parche puede ser aplicado tanto a un binario ejecutable como
al código fuente de cualquier tipo de programa, incluso, un sistema operativo.


 Tablespace

Es una unidad lógica de almacenamiento dentro de una base de datos oracle. Es un puente entre el
sistema de ficheros del sistema operativo y la base de datos.

Cada tablespace se compone de, al menos, un datafile y un datafile solo puede pertenecer a un
tablespace. Cada tabla o índice de oracle pertenece a un tablespace, es decir cuando se crea una
tabla o índice se crea en un tablespace determinado.

sábado, 20 de septiembre de 2014

CONFIGURACION DE ORACLE STANDBY DATABASE


En el origen modificamos el archivo tnsnames.ora y agregamos la base de datos destino.  Y en el destino que será standby tambien modificamos el archivo y agregamos la base de datos primaria.


En la base de datos primaria Ejecutamos el siguiente comando para comprobar comunicación
tnsping nombre_dela_base_destino


Nos aseguramos de que los directorios para los datafile existan o los creamos, al igual que las otras rutas necesarias.


En la base de datos Primaria Renombramos el init
cp init.ora init_basededatos.ora


Lo llevamos a la base de datos de standby y una vez que ya esté ahí nos aseguramos de modificarle los siguientes parametros.
pfile o spfile según lo que vayamos a usar y agregamos lo siguiente:


db_unique_name=’baseSTB’
log_archive_format=’nombre_%t_%s.arc
instance_name=’baseSTB’
fal_client      >que exista
fal_server     >que exista
log archive_dest=’ruta de los archives’


y guardamos   


Nos conectamos a la base de datos as sysdba y levantamos la base en nomount
>startup nomount
>exit


Nos conectamos como RMAN
>register database
>exit
Una vez configurado lo anterior, podemos ejecutar los siguientes comandos, en este caso los he puesto en un archivo.sh


rman << EOF
connect target sysusr/usr@dborigen
connect catalog rman/rmanusr@base
connect auxiliary
run{
allocate channel ch1 type ‘sbt_tape’ parms ‘SBT_LIBRARY=/usr/omni/lib/libob2oracle8_64bit.a, ENV=(OB2BARTYPE=Oracle8, OB2APPNAME=baseorigen, OB2BARLIST=hostorigen-ora-baseorige-onl-mar)’;
DUPLICATE TARGET DATABASE FOR STANDBY dorecover NOFILENAMECHECK;
restore archivelog from sequence 54656 until sequence 64778;
release channel ch1;
}
EOF


En dado caso de que falten archvies nos los traemos desde la base de datos primaria.


AHORA, EN LA BASE DE DATOS PRIMARIA
seteamos el siguiente parametro:
Nos conectamos como sysdba
>alter system set los_archive_dest_2=’SERVICE=baseSTB ARCH SYNC NOAFFIRM delay=0 OPTIONAL max_failure=0 register’;


Una vez hecho esto, en el destino hacemos lo siguiente:
SQL> CONNECT / AS SYSDBA
2. Iniciamos la instancia sin montar la base.
SQL> STARTUP NOMOUNT;
3. Montamos la standby database:
SQL> ALTER DATABASE MOUNT STANDBY DATABASE;


Iniciamos la recuperación en managed recovery mode que permitirá la aplicacion automatica de los archived redolog files de la base primaria a la standby. Managed recovery deberá ser iniciado con una sesion disconnect con la siguiente seintaxis:


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;


El siguiente es para un realtime apply, disponible desde versión 10.1
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;


También es posible efectuar un manual recovery (era requerido en 8i standby database)
SQL> RECOVER STANDBY DATABASE;
or
SQL> ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE;


Cancelar el recovery:
En dado caso de querer cancelar el recovery deberemos usar lel siguiente comando:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
O bien para cancelar el recovery manual:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;


LISTO!!! Ya debe estar sincronizada la base de datos y ya debe estar recibiendo los archives que se vayan generando en la base de datos primaria.


Nota importante:
Una situación que a mi se me presentó es que repentinanmente los archives dejaron de generarse en la ruta que especifiqué para los archives, para prevenir esto hacemos lo siguiente:
En nuestra base de datos standby nos conectamos as sysdba
>alter system set standby_archive_dest=’/folder/delos/archive’

viernes, 19 de septiembre de 2014

UPGRADE A 9.2.0.8


Ahora que ya tenemos instalado el software 9.2.0.1 vamos a hacer un upgrade a la versión 9.2.0.8  corriendo el parche 4547809 que se encuentra en  /media/patch/

  • Lo descomprimimos con el usuario oracle
  • Una vez descomprimido nos posicionamos en el directorio generado  
    • Disk1
  • Corremos el runInstaller
    • ./runInstaller.sh
  • Nos preguntará “destination”
    • escribimos el path
    • O el que sea el path de nuestro ORACLE_HOME
    • y damos next
  • Seleccionamos el producto.
    • En este caso el parche.
  • Nos va a pedir correr el archivo root.sh y lo corremos con el usuario root
    • ./root.sh
    • recordemos que se encuentra en la ruta de ORACLE_HOME
  • Damos ok y listo !

OPATCH

Colocamos la carpeta OPatch copiandola desde un servidor que ya la tenga
scp OPatch.tar oracle@ipdestino:/temporal
La colocamos en ORACLE_HOME
Le cambiamos de usuario
chown oracle:oinstall OPatch.tar
La descomprimimos
tar -xvf OPatch.tar
Exportamos lo siguiente
export PATH=$PATH:$ORACLE_HOME/bin
export PATH=$PATH:$ORACLE_HOME/OPatch
POSTPASOS

Instalar los siguientes parches
1) Parche 9119275
2) Parche 9655027
3) Parche 5576565
Se instalarán en ese orden ya que uno es prerequisito del otro.


PARCHE 9119275

Para ver los parches instalados usamos el comando
opatch lsinventory
Nos colocamos en la ruta /ruta_del_parche/9119275
Para ver si pudiera haber conflictos corremos el comando
opatch apply -report
Comenzamos con la aplicación del parche con el comando
opatch apply

Procedemos con el siguiente parche.

Nota:
ERRORES QUE SE PUEDEN PRESENTAR:
1. $ORACLE_HOME/jdk/bin/jar file is missing
2. $ORACLE_HOME/jdk/bin/jar file fails to execute
3. $ORACLE_HOME/jdk/bin/jar file is an invalid symbolic link

PARA SOLUCIONAR EL ERROR
Primero, localizar el archivo en cuestión para crear el link.
Opción 1:
AIX 5L
 opatch apply -jdk /usr/java14

Opción 2:
AIX 5L
ln -s /usr/java14/bin/jar $ORACLE_HOME/jdk/bin/jar





Remove the following line in $ORACLE_HOME/Apache/Apache/conf/httpd.conf, if it exists:
FastCGIServer fcgi-bin/echo -initial-env ORACLE_HOME -initial-env NLS_LANG

Run the following commands as the root user:
chown root $ORACLE_HOME/bin/dbsnmp
chmod 6750 $ORACLE_HOME/bin/dbsnmp

PARCHE 9655027

Para ver si pudiera haber conflictos corremos el comando
opatch apply -report
Comenzamos con la aplicación del parche con el comando
opatch apply

Run the remove_demo.sh script to remove vulnerable Oracle HTTP Server demos. The demos cannot be restored after you run the script. If you expect to use the demos in the future, then manually backup the files in the $ORACLE_HOME/Apache/Apache/fcgi-bin directory before running the script.

To run remove_demo.sh, go to the directory where you downloaded the patch and enter the following commands:
cd 9655027
sh remove_demo.sh

Remove the following line in $ORACLE_HOME/Apache/Apache/conf/httpd.conf, if it exists:
FastCGIServer fcgi-bin/echo -initial-env ORACLE_HOME -initial-env NLS_LANG

Run the following commands as the root user:
chown root $ORACLE_HOME/bin/dbsnmp
chmod 6750 $ORACLE_HOME/bin/dbsnmp

PARCHE 5576565
Para ver si pudiera haber conflictos corremos el comando
opatch apply -report
Comenzamos con la aplicación del parche con el comando
opatch apply

DESPUÉS DE INSTALAR LOS PARCHES

Después de instalar los parches corremos el script
remove_demo.sh

Remover la siguiente linea en $ORACLE_HOME/Apache/Apache/conf/httpd.conf, en caso de que exista:
FastCGIServer fcgi-bin/echo -initial-env ORACLE_HOME -initial-env NLS_LANG

Correr los siguientes comandos con el usuario root:
chown root $ORACLE_HOME/bin/dbsnmp
chmod 6750 $ORACLE_HOME/bin/dbsnmp

INSTALACIÒN DE SOFTWARE ORACLE 9i


Antes que nada nos aseguramos de lo siguiente

Tenemos que asegurarnos de ver que funcione el ambiente gráfico utilizando el comando
xclock
De no funcionar hacemos lo siguiente y volvemos a intentar el comando
export DISPLAY=ip:0   

Con el usuario oracle revisamos los parámetros que se encuentren en etc/security/limits   
ulimit -a
deben estar en menos uno
unlimited

La instalación del software de Oracle 9.2.0.1 se hará usando los instaladores

1.- Con el usuario Root corremos el archivo rootpre.sh
./rootpre.sh
Nos debe marcar que nos encontramos en modo asincrono.

2.- Con el usuario oracle corremos el archivo runInstaller.sh
./runInstaller.sh    
Nos debe lanzar una ventana para comenzar con la instalación.

  • Cuando nos pregunte el nodo a utilizar seleccionamos el nodo:
  • Cuando nos pregunte la ruta del ORACLE_HOME pondremos:
    • la ruta que queramos que sea nuestro home
  • Cuando lleguemos a la parte de seleccionar Database Configuration:
    • Seleccionamos una de las opciones según lo que se desee instalar.
  • Recordemos que el grupo que pondremos debe ser “oinstall”
  • Nos solicitará la ruta del jdk que normalmente es:
    • /usr/java14/jre
  • Nos pedirá seleccionar los discos de instalación e iremos seleccionándolos.
  • Para finalizar se solicitará correr un archivo con el usuario root
    • ./root.sh    
    • que se encuentra en nuestro ORACLE_HOME