Archives for: April 2011
Gunzip y el mensaje File too long
Problemas de instalación en Oracle con AIX

Estaba realizando una instalación de motor Oracle , en un ambiente AIX , una vez descargados los archivos , obviamente comienza el período de descompresión y he aquí el problema
[/ruta/instaladores_oracle]$ gunzip 10gr2_aix5l64_companion.cpio.gz
gunzip: 10gr2_aix5l64_companion.cpio: File too large
¿Pero que significa ese mensaje? Bueno, simplemente que el usuario es incapaz de generar un archivo tan grande
¿Cómo se soluciona? Debemos verificar los límites que posea el usuario oracle
[/ruta/instaladores_oracle]$ ulimit -a
time(seconds) unlimited
file(blocks) 2097151
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 32768
coredump(blocks) 2097151
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user) unlimited
Y podemos apreciar que el parámetro file(blocks) está limitado a 2.097.151 bloques de sistema operativo.
Por ende lo debemos modificar , de la siguiente forma
Editamos el archivo /etc/security/limits con root y agregamos o modificamos la siguiente línea
oracle:
fsize = -1
Obs : El valor -1 indica unlimited
Nos volvemos a loguear con el usuario oracle y verificamos sus límites
[/ruta/instaladores_oracle]$ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 32768
coredump(blocks) 2097151
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user) unlimited
[/ruta/instaladores_oracle]$
Y ahora sí podemos realizar una descompresión del archivo
[/ruta/instaladores_oracle]$ gunzip 10gr2_aix5l64_companion.cpio.gz
[/ruta/instaladores_oracle]$
[/ruta/instaladores_oracle]$
[/ruta/instaladores_oracle]$ ls -ltr
total 6580488
-rw-r----- 1 oracle oinstall 1365463552 Apr 04 12:30 10gr2_aix5l64_companion.cpio
-rw-r----- 1 oracle oinstall 804445893 Apr 05 23:29 p8202632_10205_AIX64-5L_2of2.zip
-rw-r----- 1 oracle oinstall 1199278107 Apr 05 23:36 p8202632_10205_AIX64-5L_1of2.zip
[/ruta/instaladores_oracle]$
07.04.11. 11:22:35. 276 words, 2030 views. Categories: Base de datos, Instalación , 1 comment » • Send a trackback »
Como borrar archives por el lado del servidor de StandBy
Me imagino que debe ser una pregunta muy común... ¿Cómo eliminar los archives que se trasladan hacía mi nodo StandBy?

Este es el esquema
1.- Tengo una instancia primaria que genera archive los cuales son envíados mediante DataGuard a mi instancia StandBy en otro nodo.
2.- Los archives que son generados en la instancia primaria son generados a disco y no están bajo arquitectura ASM ni Flash Recovery Area
3.- Los archives que son copiados en la instancia StandBy caen sólo a una ruta, es una base de datos en FileSystems comunes y no posee Flash Recovery Area
Entonces la pregunta de cajón es ¿Cómo genero algo que me vaya borrando los archives desde la StandBy?
En mi ambiente productivo tengo controlado esto a raíz de los respaldos que se producen mediante RMAN.
Pues he acá algunos códigos que se pueden colocar en práctica
Borrado de archivelogs catalogandolos con RMAN
Esto se debe llevar a cabo en la instancia StandBy (borra_archivelog.sh)
#!/bin/bash
ORACLE_BASE=/export/home/dba/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0; export ORACLE_HOME
ORACLE_SID=LSECORA; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
NLS_DATE_FORMAT='dd/mm/yyyy hh24:mi'; export NLS_DATE_FORMATecho "Inicio proceso de borrado archivelogs"
rman <connect target
run{
catalog start with '/ruta_donde_quedan_los_archivelogs_en_nodo_standby';
delete noprompt archivelog all completed before 'SYSDATE -1/24';
}
quit;
Como se puede apreciar se catalogan los respaldos y se proceden a eliminar aquellos que se han generado hace más de 1 hora
Borrado de archivelogs mediante shell script
find /ruta_donde_quedan_los_archivelogs_en_nodo_standby/* -type f -mtime +1 -exec rm -rf {} \;
En el fondo se borran los archivelogs que sean mayores a 1 día y a esa búsqueda le aplica la ejecución del comando rm -rf , o sea, los elimina
Borrado de archivelogs mediante configuración de RMAN , siempre y cuando usemos FRA ![]()
Si se respaldan los archivelogs en la instancia StandBy , situación que es bastante óptima, se puede ejecutar este comando en RMAN
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
Incluso si se respaldan en la instancia primaria, se puede ejecutar este comando (también en la primaria)
Con lo cual , cada vez que se respalden los archivelogs y estos hayan sido aplicados, serán eliminados de la faz de la tierra
Actualización :
Para eliminar archives , desde una base de datos Standby 9i
, he acá la shell
#!/bin/ksh
# Quien
# Hector Ulloa Ligarius# Cuando
# 03 de Enero del 2012# Que
# Eliminar archive ya aplicados en la Standby# Cron
# 00 * * * * /home/oracle/hp/scripts/BorrarArchivelog.sh > /home/oracle/hp/scripts/BorrarArchivelog.log 2>&1ORACLE_HOME=/home/oracle/app/product/9.2.0
PATH=$PATH:$ORACLE_HOME/bin
ORACLE_SID=XX
export ORACLE_HOME
export ORACLE_SIDrman target / << EOF
delete archivelog until time "sysdate -1/24";
YES
exit
EOF
Con la instrucción "delete archivelog until time" , borramos los archives que tengan más de una hora de antigüedad, se puede usar el noprompt para que no tengamos que colocar el YES , como respuesta al comando delete archivelog ![]()
02.04.11. 14:03:43. 286 words, 1250 views. Categories: Base de datos, StandBy - Data Guard , Leave a comment » • Send a trackback »