viernes, 28 de octubre de 2011

Clonar bases de datos Oracle

Este procedimiento te permitirá clonar bases de datos oracle. Por ejemplo, clonar la base de datos en el mismo servidor, o en otro servidor, para ser usada para pruebas, modificaciones, desarrollo, etc.
A continuación resumo los pasos que uso personalmente para realizar una clonación de base de datos.



Información de archivos y espacios usados por los archivos
Con esto obtenemos una lista de que archivos vamos a copiar para clonar nuestra base de datos.
En sqlplus (u otra aplicación cliente oracle), ejecutar:


set lines 100 pages 999
col name format a50

select    name, bytes
from    (select    name, bytes
    from    v$datafile
    union    all
    select    name, bytes
    from     v$tempfile
    union     all
    select     lf.member "name", l.bytes
    from    v$logfile lf
    ,    v$log l
    where    lf.group# = l.group#) used
,    (select sum(bytes) as poo
    from dba_free_space) free;


Crear nuevo pfile:
En sqlplus ejecutar:
create pfile='init.ora' from spfile;

este será el nuevo archivo de inicio para nuestra nueva base de datos.


Crear clon de controlfile desde b.d. origen:
alter database backup controlfile to trace as '/home/oracle/cr_new_sid.sql';

Donde es el nombre de la nueva instancia está representado por new_sid. Desde acá en adelante new_sid lo reemplazas por tu nuevo nombre de instancia. Si no vas a cambiar el nombre a la instancia, entonces simplemente no lo cambies.


Traspaso de archivos:

  1. Bajar base de datos origen
  2. Transferir archivos a nuevo destino / servidor. Para esto ocuparemos la lista de archivos generada en el archivo cr_new_sid.sql:
    • cp origen destino
    • ftp origen - destino
  3. Borrar archivos de control (si se han copiado en este traspaso) en el nuevo ambiente (no en el ambiente original)
  4. cambiar permisos archivos destino para que sean leidos por usuario dueño de base de datos (chown).
  5. Ajustar listener - tnsnames para conectarse a nueva instancia
  6. Traspaso de cr_new_sid.sql a nuevo ambiente (si está en otro servidor) o ruta y del init_new_sid.ora


Edición del cr_new_sid.sql
Este archivo contiene una serie de comentarios y elementos que no usaremos en nuestra tarea, así que eliminaremos componentes y depuraremos este archivo.
  1. Borrar todas las líneas del inicio del archivo, incluyendo la segunda instancia de 'STARTUP MOUNT' (debiese ser más allá de la mitad del archivo)
  2. Borrar todas las líneas que comiencen con --
  3. Borrar todas las líneas que comiencen con #
  4. Borrar todas las líneas en blanco en la sección de 'CREATE CONTROLFILE'
  5. Borrar la linea 'RECOVER DATABASE USING BACKUP CONTROLFILE' (muy importante)
  6. Ir al inicio de 'CREATE CONTROLFILE' y cambiar la palabra REUSE por SET
  7. Cambiar el nombre de la base de datos, en caso de que el nombre de la base de datos vaya a ser cambiado.
  8. Cambiar las rutas por las nuevas rutas que se vayan a usar

Subida de nueva base de datos:
  1. Editar tnsnames.ora y listener.ora
    • Editar estos archivos para registrar la nueva base de datos, su ruta y puerto de acceso
  2. Bajar la base de datos original:
    • Cuando subamos la nueva colisionará con esta base de datos. No subirla hasta que se cambie el nombre a la base de datos nueva. No es necesario bajarla, evidentemente, si la estamos subiendo en otro servidor.
  3. Conectarse a la B.D. (sqlplus) 
  4. Finalmente, iniciamos y ejecutamos nuestro script antes editado:
  5. startup nomount
    Subimos la base de datos pero sin abrirla
    @cr_new_sid.sql
    Ejecutamos el archivo antes editado para :
    • crear el nuevo control file
    • abrir la b.d. y reiniciar logs
    • añadir los tablespaces / datafiles temporales



Pasos posteriores
  • Configurar las variables de ambiente para esta base de datos en el $HOME/.profile del usuario. Incluir ORACLE_HOME, ORACLE_SID, TNS_ADMIN, entre otras
  • Cambiar el database id: (para el caso de uso de RMAN, es requerido cambiar el ID de la B.D.)
    • via sqlplus:
    • shutdown immediate
    • startup mount
    • exit
    • via unix:
nid target=/
solicitará cambiar el id, se acepta y procede el cambio

    • via sqlplus
    • shutdown immediate
    • startup mount
    • alter database open resetlogs

Confirmar funcionamiento de B.D.
Si queremos confirmar los resultados (aunque cualquier error debiese haber aparecido al iniciar la base de datos), podemos:
verificar estatus de B.D.
select status from v$instance;
verificar datafiles
select distinct status from v$datafile;

jueves, 29 de septiembre de 2011

Como obtener información de parches instalados en Oracle

Antes de pasar un ambiente desde (por ejemplo) un área de desarrollo a pruebas, puede que queramos comparar que parches tenemos aplicados en cada ambiente, a modo de igualar dichos ambientes. Para esto tenemos que consultar los parches tanto a nivel de base de datos, como a nivel de aplicación (si procede)

Parches en la base de datos

Esto es muy simple y lo hacemos a través del utilitario opatch. Para eso nos vamos al directorio:
cd $ORACLE_HOME/OPatch
y ejecutamos el utilitario opatch con el parámetro lsinventory:
./opatch lsinventory
Así obtendremos la lista de parches instalados a nivel Oracle bastante preciso y detallado, incluyendo información de fecha en que fue aplicado y el listado de "bugs fixed".

Troubleshooting

Puede que, si tenemos varias bases de datos, no todas estén registradas en nuestro inventario y un problema común es que la ejecución anterior del utilitario opatch nos dará el siguiente error: Inventory load failed.

Para resolver esto, debiesemos editar el archivo inventory.xml ubicado en $ORACLE_BASE/oraInventory/ContentsXML/ En ese archivo deberemos añadir el "HOME NAME" faltante, como en el siguiente ejemplo:

HOME NAME="ORADB11_HOME6" LOC="/u11/oracle/app/oracle/product/database/11.1.0"
TYPE="O" IDX="6"

En donde LOC tiene la ruta del ORACLE_HOME e IDX es un número secuencial de cada HOME en la lista.



Parches a nivel aplicativo

Posteriormente, en el caso que tengamos un aplicativo e-Business Suite, podemos realizar la siguiente consulta en sqlplus o en nuestro cliente sql preferido:

select patch_name, applied_patch_id, patch_type, maint_pack_level, last_update_date
from applsys.ad_applied_patches
order by patch_name;

Con lo que obtendremos el listado de parches instalados a nivel aplicativo. Ojo, que puede que tengamos más de una línea con el mismo patch_name, ya que puede tener distintos applied_patch_id.

Con esta información en la mano, podemos proceder a igualar los ambientes instalando los componentes que falten en nuestro ambiente.

lunes, 12 de septiembre de 2011

Instalación de vmware tools en Linux Centos 6

En esta ocasión revisaremos la instalación, en vmware fusion, de sus herramientas vmware tools para Linux Centos 6.

Cabe mencionar que esta pauta es aplicable también para RedHat y para SuSE Linux.

CentOS lo puedes obtener desde el sitio oficial http://www.centos.org/.

Pre requisitos

Una vez instalado CentOS en vmware y antes de instalar vmware tools, deberás asegurarte de tener instalados:

  • make
  • gcc
  • kernel headers

Para ello, deberás tener instalados los paquetes de gcc y kernel-devel.

Comprobamos entonces que estén instalados, usando los siguientes comandos en el terminal, como usuario root o habiendo ejecutado "su -" en la ventana del terminal como nuestro usuario regular y ejecutamos:
# yum info gcc
# yum info kernel-devel


Si alguno, o ambos de estos paquetes no están instalados, los instalamos usando:

# yum install gcc
# yum install kernel-devel
o, para ambos:
# yum install gcc kernel-devel

A continuación deberemos verificar que el kernel y sus fuentes estén en la misma versión:
# uname -r (retorna el release del kernel compilado)
# rpm -q kernel-devel (retorna el release de los fuentes del kernel instalado)

Si hay alguna diferencia, deberemos actualizar, usando:
# yum -y upgrade kernel kernel-devel

Esto es importante, ya que de lo contrario podremos tener un error mayor en el kernel al compilarlo. Recordemos que la instalación de vmware-tools recompila el kernel (núcleo) del sistema operativo.

El reboot es recomendado si has instalado alguna actualización en este proceso, para que reconozca las variables.


Instalación vmware tools

Luego ya podemos ir a descomprimir el paquete de vmware tools. Si no lo tienes, descárgalo seleccionando desde vmware fusion el menú "Máquina Virtual" la opción "Instalar vmware tools". Luego puedes hacer doble click en el archivo comprimido y descomprimirlo en alguna carpeta, como /tmp

Ahora debemos ir al directorio donde descomprimimos vmware tools y ejecutar, como root (o vía "su -") el comando: 
# ./vmware-install.pl
vmware-config-tools.pl será llamado automáticamente durante este proceso. Es este segundo pl el que recompilará el kernel requiriendo los componentes antes instalados.

Todas las preguntas te entregarán una respuesta sugerida, acéptala a menos que quieras cambiar algún parámetro de instalación.

Finalmente, podremos ejecutar las herramientas de vmware (vmware tools) desde el terminal con el comando:
# /usr/bin/vmware-toolbox

Más información es desplegada por el instalador al terminar el proceso.

Espero les sirva.

miércoles, 25 de mayo de 2011

Openbravo 3: análisis para el mercado de Chile

Este año está disponible la nueva versión de Openbravo: 3, sobre la cual vale la pena detenerse a realizar un pequeño análisis

Ventajas de la nueva versión de Openbravo 3

Módulos Openbravo
Promueve una implementación (deployment) ágil, permitiendo implementar por módulos. La pregunta inmediata es: ¿pero acaso no todos los ERP debiesen poder implementarse de esta forma? La respuesta evidente es SI, pero la realidad es que la estructura modular no es tan flexible y siempre caemos en la necesidad de implementar gran parte de los módulos. Cualquiera que haya implementado Openbravo se dará cuenta que debe activar todos los módulos para que el sistema funcione, sin bien es cierto no es necesario activarlos por completo, debo parametrizarlos al fin y al cabo.
Además del Agil Deployment, incorpora las funcionalidades de BI y CRM desde un punto de vista integral, permitiendo hacer pronósticos de venta (básicos, pero más lejos de lo que cualquier ERP local puede llegar) y reportes del tipo BI.

Desventajas de Openbravo 3

Claramente la desventaja primera es la necesidad de adaptarlo a un mercado local, para lo que necesitaremos la traducción operativa 100%. Si bien es cierto, la traducción a Español - Chile de Openbravo 2.5 podría ser usada, no es una traducción que funcione correctamente, dejando varios términos en inglés. Esto es principalmente a que la estructura ha cambiado.
Otro tema, pero que viene desde la última versión estable de 2.5, es que el plan de cuentas para Chile no puede ser cargado, tal como está y necesita que se le añada una nueva columna a este. De este par de temas, el más complejo es el de traducción, dejando así a esta versión no recomendada aún para el mercado local hasta que se termine dicha traducción.
Finalmente (y tal vez el problema mayor de esta versión) es que la versión comunitaria (community) no incorpora todos los módulos que incorporaba anteriormente en sus versiones 2.x, y estas funcionalidades solo están disponibles en la versión de pago profesional, excluyendo estas funcionalidades de la versión community y de la versión de pago "basic". Lo que queda fuera de esta versión community es una amplia gama de funcionalidades no menores, ya que excluye:

  • Manufactura
  • MRP
  • Proyectos y servicios
  • Gestión de activos
  • Documentos entre compañías


En resumen

Concluyo que es una muy buena versión, aunque la gente de Openbravo no ha sabido promoverla. Actualmente cuenta en Chile con estudios apoyados por la Universidad de Chile y por la SOFOFA, que la definen como uno de los únicos dos ERPs Opensource que pueden ser instalados y usados, sin embargo la falta de esta información por la gente de Openbravo, sumado al poco marketing que han añadido a esta versión, han hecho que pase sin tanta gloria como debiese, pero es un excelente producto que, con las falencias que pueda tener, está a años luz de los productos nacionales, los cuales aún están dando el paso a ser 100% web y/o a usar bases de datos relacionales, porque aunque parezca difícil de creer, muy pocos ERPs locales usan bases de datos relacionales, en el fondo usan archivos planos, los cuales son altamente susceptibles a fallas y vulnerabilidad de seguridad, además que no han dado el paso a ser web. Openbravo nace de un concepto ERP de (a) módulos integrados, (b) uso de bases de datos para almacenar información y (c) capa de presentación 100% web.
La exclusión de funcionalidades en la nueva versión puede no ser relevante para muchas empresas, por lo que si no es de su interés gestionar proyectos o manufactura, perfectamente puede ir por esta versión. Ahora, si su tema involucra esta necesidad, recomiendo ir a la última versión estable 2.x, que aunque es una versión anterior de Openbravo, es ampliamente muy superior a los ERPs locales. De hecho, la versión 2.5 sigue estando adelantada en años a las versiones de ERPs locales.

Actualización de Joomla 1.5 a 1.6

Hace poco tuve que actualizar algunos sitios en Joomla 1.5.x a 1.6, por lo que decidí hacer este mini tutorial de Como actualizar joomla, muy básico pero práctico.

Actualizar a la última versión de 1.5

Antes de actualizar a Joomla 1.6, debes ir a la última versión de 1.5.x, para lo que debes seguir los siguientes simples pasos.

Respaldar

Esta es la premisa primera y obligatoria antes de cualquier actualización. Respalda archivos y base de datos. Recomiendo el uso de cpanel para ambas tareas: www.tusitio.com/cpanel , donde tusitio.com es tu sitio particular, evidentemente.

Comprueba cual es tu versión específica actual de Joomla 1.5.xx

La versión es visible en el panel de administración de joomla, ingresas a www.tusitio.com/administrator y después de ingresar tus credenciales, verás en la esquina superior derecha, la versión de joomla que estés usando. Debes tener una versión 1.5, pero lo importante es saber en detalle cual es para saber que actualización debemos descargar a continuación

Descarga la última versión estable

Desde:
http://joomlacode.org/gf/project/spanish/frs/?action=FrsReleaseView&release_id=14525
Si tienes problemas con el link anterior, ve a través de http://www.joomlaspanish.org/ y busca 1.5, última versión estable. Ahí selecciona tu versión y la descargas.
Al momento de escribir este post, la última versión estable era 1.5.23 y lo más probable es que se mantenga en el tiempo ya que las actualizaciones debiesen ir por 1.6 y no por 1.5

Instala la última versión estable de Joomla 1.5.x

Una vez descargada, la subes a tu sitio (ftp o cpanel) y la descomprimes en el directorio raíz de tu sitio, reemplazando los archivos y directorios originales. Recuerda que antes realizaste un respaldo de todo, para que en caso de fallas lo uses para restaurar tu instalación. Si te saltaste el paso del respaldo, te insto a que lo hagas ahora, ya que la responsabilidad de la actualización está en tus manos.

Comprobación

En este punto ya debes tener la última versión estable de Joomla 1.5.xx instalada y funcionando. Compruébalo entrando en tu sitio como visitante y, por otro lado, al panel de control y confirma que esté todo bien. Deberás ver en el panel de control que figura la última versión (la que acabas de descargar) como versión en uso. En cuanto al sitio web, deberás ver que está

Si todo está bien, puedes seguir al paso siguiente, para actualizar a joomla 1.6

Actualizar a Joomla 1.6 desde 1.5.x

Debes haber instalado la última versión estable (pasos anteriores). Si no lo has hecho aún, hazlo antes de continuar, ya que es un requisito.

Respaldar

Sigue los pasos antes descritos para hacer un respaldo de tu sistema

Revisar requisitos

Revisa que cumples con los requisitos para actualizar tu sistema:
Joomla 1.6: http://docs.joomla.org/Joomla_1.6_technical_requirements
JUpgrade: http://www.matware.com.ar/joomla/jupgrade.html

JUpgrade: Descarga la última versión estable

Para actualizar, usaremos la aplicación JUpgrade.
Desde el siguiente link, descarga la última versión estable de esta aplicación.
http://www.matware.com.ar/downloads/joomla/jupgrade.html

Ejecuta JUpgrade para actualizar a Joomla 1.6

Desde la consola de administración de Joomla, selecciona jUpgrade desde "Componentes" y da click en iniciar upgrade (start upgrade). jUpgrade revisará si están todos los componentes listos para ser instalados y te dará un aviso si falta alguno.
Mantente en esa ventana hasta que termine el proceso.

Problema común con JUpgrade

Si el proceso se detiene en la descarga y no avanza más
Compruebe que en el directorio temporal del servidor esté el archivo de la versión 6 de joomla. Para eso, puedes ver el directorio /public_html/tusitioweb/tmp y debieses tener un archivo llamado joomla16.zip que pesa uno 7.7 MB aproximadamente. Si el archivo está, pero el proceso de actualización no pasa de la descarga, deshabilita la opción de descargar: En "components" --> "jUpgrade" ve a "parameters" y en "Skip Download" selecciona "yes".
Graba y vuelve a intentar la ejecución de JUpgrade.

Revisa los resultados

Revisa el nuevo sitio, tanto la consola de administración como la de usuarios. Esto hazlo a través de los links que se entregan al final del proceso de actualización.

Mueve tu antiguo sitio

Si todo está bien, deberás realizar un par de cambios de archivos y directorios para terminar.
Todo tu antiguo sitio, a excepción del directorio jupgrade, muevelo a un directorio externo, como por ejemplo: /public_html/miantiguositio/

Mueve el directorio de JUpgrade a la raíz de tu sitio oficial

Todas las carpetas dentro del directorio jUpgrade las puedes mover ahora a la raíz de tu sitio web.

Problemas comunes

Aparte del problema en la actualización de JUpgrade, que menciono antes y que se entrega una solución en el mismo punto, el problema más común es que ciertos plugins no funcionen en 1.6 o que el template que usas no funcione. Para eso tendrás que buscar reemplazar el pulgón que estés usando por uno que funcione en 1.6 o, en el caso del templare, será un caso más grave en el cual te recomiendo volver al 1.5.x o tomar el largo camino de instalar otro templare que funcione apropiadamente para tu nueva versión de Joomla.
Información adicional de ayuda, la puedes encontrar en los foros especializados: http://www.joomlaspanish.org/foros/
Suerte y espero te haya servidor este mini-post