sybase debian: empaquetar cap 1 hechos

Sybase fue una compañia precursora y fabricante del hoy SQLserver (sep mocosoft jamas en su trayectoria ha fabricado algo), hoy dia, fue absorvida por SAP, pero su motor y software de base de datos es famoso por embeber herramientas geoespaciales asi como acoplarse a distribucion de data, en este articulo abordaremos :
* Que fue y que es hoy sybase y su relacion con mocosoft
* Hechos y realidades de los DBMS de sybase
* Hackeos necesarios para empaquetar ejecutar en linux
* Requerimeintos y limitantes de su ejecucion

* Conociendo que fue/es Sybase y su relacion con SQLserver

Sybase es famosa porque se empleaba para negocios, despues de oracle claro.. umm porque? en aquellos tiempos las coneciones eran muy malas y Sybase era especial en distribucion de data.  (replicacion, espejo, cluster) Claro hoy dia esto es otra voz, y sybase esta muy atras, se regocija solo en su fama, mientras SAP acopla sus DBMS a sus sistemas hoy fabricados.

Sybase se distribuye al igual como lo hacia antes el openoffice/sunoffice, en un binario autoextraible, que altera las rutas o archivos segjun donde se coloquen estos. Hay que tener en cuenta que sybase fue comprada por SAP y esta a su vez son tremendos windoseros..

Una prueba de ello es que haces 4 joins a tablas de mas de 1 millon de registros y se cuelga. Y sea en un hardware poderoso, el mismo query mal hecho ejecuta perfecto hasta en basuras de escuela como mysql!!!! (claro que es un query que falta optimizarlo pero no es el caso)

Sybase tiene una alta dependencia en el acceso a disco, adicional desde su separacion con mocosoft fue reescrito en java gran parte de sus componentes y ramificado en varias versiones y sabores, tanto para equipos pequeños (destronado por sqlite claro) como para grandes bancos de datos (usado hoy dia en SAP).

* Tenemos los siguientes detalles y hechos de sybase:

1) sybase es JNI, es decir tiene uan parte hecha en java y otra hecha en C, pero el punto de partida es siempre java.. la parte hecha en C son librerias de interaccion con el sistema, y es logico esto.. obviamente esto signica una cosa:
1.1) sybase SIEMPRE USA ODBC o JDBC para las conexciones, menos las internas como engine (dbeng)
1.2 los binarios son dos formas, dentro de "binXX" y "binXXs", donde XX es 32 o 64 segun arquitectura, 
1.3) los que estan en binXXs (ejemplo bin32s o bin64s) son scripts que preparan la ruta y ejecutan el programa en "binXX"

2) sybase hay dos versiones de DB grandes y 4 pequeñas, hablare de las grandes porque las otras son basrua, sino comparenlas con sqlite.. sqlite se usa en androit mundialmente..   las dos versioens de DB grandes son anywhere y ASE, 
2.1) en el primer caso anywhere es algo asi como un engine sin ajustes respecto el sistema operativo, 
2.2) anywhere es sin optimizaciones cercanas a la arquitetura, sino generalizadas por sistema operativo
2.3) ASE es un DBMS mas optimizado y estructurado tal cual lo es postgresql, ejecuta igual que mysql y postgres
2.4) ambas versiones son trabajos de donde salio el hoy SQLserver de mocosoft, pero solo en ASE exste el usuario "sa"
2.5) anywhere no es nada parecido a SQLserver, ASE si es muy parecido, pero entre ellos si hay compatibilidad

3) la forma de distribucion es freeware, pero no de libre acceso, cada copia de soft requiere una peticion explicita, hay dos sabores principales, pero varias edicciones, 3.1) los dos sabores son developer y production, 
3.2) developer solo requiere instalar y listo, versiones anteriores usaban una key de developer, 
3.3) la version developer es la misma de la production solo que limita los recursos, 
3.4) lo bueno/malo es que la limitaciones algo asi como balanceada, ejemplo si ajustas a 10 procesadores, reducira numero de conecciones etc

4) sybase BD's ofrece en todos sus sabores un minimo/promedio de 4 productos, con 4 componentes
4.1) el engine/server (no confundir con el engine programa y el server programa)
4.2) las librerias de trabajo (esto es algo que se usa internamente por todo el software
4.3) componentes ODBC incluyendo conectividad java, php, shell (bash/csh)
4.4) interfaz sybasecentral de conectividad y trabajo, algo asi como un IDE de querys, administracion y manejo

5) el ODBC de sybase no emplea UNIXODBC, sybase seimpre en todas susversiones y sabores emplea su propia libreria de ODBC para linux o mac, y no usa la del sistema, esto solo para sus propias librerias de conectividad (recordemos odbc son dos partes, el software en si y la libreria de conectividad de el dbms particular)

Empaquetarlo requeire los sigueintes hackeos:

cambiar o sustituir la JVM embebida, la JVM que incluye el binario no esta optimizada, se puede recompilar un openjdk con ajustes (Que me reservo opbiamente)

separar y colocar en el lugar correcto las librerias, exceptuando las de odbc,

IMPORTANTE1:  lamentablemente sybase en ninguno de sus sabores emplea el unixodbc, esto es un problema grave, que ya gracias a varios reportes mios se soluciona en freetds, ahora freetds es bastante decente para usar con el sybase..

IMPORTANTE2: sybase tiene dos directorios de lanzadores/ejecutables

asegurarse de usar modificados los scripts de creacon y lanzamiento de las aplicaciones

modificar las rutas, lamentablemente el instalador casa la instalacion con la rutas, esto significa que los scripts deben ser alterados y asumir rutas estandares y sera mas facil crear un paquete desde una instalacion que desde el paquete instalador

NOTA: desde sybase 17 los versiones/sabores de produccion o pagos se casan con la maquina, para esto hay que mejor ejecutar cada uno de los activadores en la instalacion ya realizada...

Requerimientos

Sybase requiere pocos dependencias, pero especificas:

* GLIBC, sybase no ejecuta con uglibc, ni musl, ademas de libc6 >> 2.16 debido a algunos detalles en los cambios
* JVM: java JDK, no solo JRE, y depende, puede ser 5 o 6 si el sybase es anywhere << 16, de resto debe ser 7 unicamente
* Libstdc++5 sybase emplea y requiere libreria C estandar del gcc 3, en vez del Gcc 4, esto por portabilidad, sin embargo a partir de la version 17 ya no es necesario 
* Xorg >> 1.0 (xorg >> 7.0) pero menor a Xorg << 1.17 dado algunos problemas de compatibilidad con jni
* libstdc++6 sybase 17 requiere gcc 4.X y sus librerias de ejecucion

en el siguiente articulo, detalles del empaquetamiento y ejecucion, ajustes del sistema y su alta dependencia de acceso a disco.

Comentarios

Entradas populares de este blog

canaimitas: modelos (info mas completa)

Boton parpadeante canaimitas EF10MI2 FALLAS comunes

Destripando el instalador debian para usuarios medios.