Ir al contenido principal

Sybase y ODBC conexciones y nociones en Linux


Soporte ODBC Sybase/SAPIQ en linux

En linux hay 3 tipos de software ODBC para conectarse a sybase:
proveedorusa odbcinsttodo en odbc.iniDBMS soportadasdetalles
SAP sybaseNONECESARIOanywehere, IQ, SAPViene incluido en el instalador del engine ( libdbodbc )
FreeDTSSISOPORTADOSQL Server, Adaptive Server/EnterpriseOpensourse, solo 1.X para mas caracteristicas
EasySoftSISOPORTADOanywhere, IQ, SAP,
SqlServer/Adaptive
trial 14dias, SOPORTA TODO LAS CARACTERISTICAS incluyendo codificacion

Limitaciones linux ODBC sybase

  1. FREEDTS no soporta tipos de datos como nvarchar y ntext faltan
  2. FREEDTS solo "pasa" las sentencias, no las interpreta como el de easy soft
  3. SAPODBC solo "pasa" las sentencias, ya que asume se conecta a un engine Sybase
  4. SAPODBC aunque solo usa el odbc.ini el engine no interpreta, requiere la forma DSN-less
  5. EasySoft es mejor opcion pero es caro y a medida avanza no soporta versiones sybase viejas

fuentes de software y delimitantes

  1. Sybase anywhere se compro por SAP en 2010/2012 desde sybase 17 todo su software no viene en la forma "todo en uno", sino separado
  2. librerias ODBC desde sybase anywhere o IQ 12 a 16 vienen incluidas tanto el propio software ODBC como su conector, 17 solo el conector
  3. modulo ct sybase para php como compilar:https://sourceforge.net/p/asemon/wiki/recompile%20sybase_ct%20module%20on%20Linux/
  4. modulo ct sybae viene precompilado para linux php 5.2.X y 5.3.X en sybase anywhare 12 y 16, pero en 17 ya no y necesita SDK.

Problemas de conversion y conectividad ANSI/UTF8

Sybase soporta el "mapear" tablas de otras bases de datos como si fueran suyas, esto se le llama tablas proxy en base de datos remotas pero tienen un problema, dependen del soporte ODBC de la base de datos origen.
  1. UNICODE: Por ejemplo en el caso Postgres, el ODBC provee dos tipos de conecion el ansi y el unicode, pero en el caso de mysql no esta muy claro, sino el la version liberada en 2015 que ya provee dos modulso bien definidos tal cual lo hace el de postgres. Mismo problema sucede con Oracle. Por ende si se pretende usar Sybase por medio de ODBC hay que tener en cuenta el mapeo de datos, ademas de el soporte (FreeDTS es el mas limitado de los odbc), ya que por medio de ODBC no "pasan" todas las caracteristicas y entre unicode y UTF8 el odbc utiliza 2bytes en vez de 4bytes, esto mapea mal los dato con errores como "cannot map datatype nchar" en el odbc o el php o donde se consulte.
  2. DSN-less: el sybase, el central y el dbisql no leen completamente un archivo odbc.ini, por ende si se realiza conecciones odbc desde sybase, estas deben ser de la forma DSN-less, un ejemplo claro es tratando de conectarse a Mysql, siempre apuntara a localhost si se pretente usar toda la configuracion desde un DSN de un archivo odbd con el error "Can't connect to local MySQL server through socket ", se evita usando la forma DSN-less de myodbc en el string de coneccion de sybase.

Trabajar ODBC con Sybase/SQL (freeDTS)

Esto es documentación técnica para la tarea #412 que requiere crear en dinámico el conector odbc

Software requerido y preparación ODBC

En una consola instalar freedts de venenux (recomendado 0.95 en adelante, debian aun no los tiene) y odbcunix asi:
apt-get install unixodbc tdsodbc libsybdb5 libct4
Esto creará un archivo de sistema en /etc/ que tendrá los parámetros de conectividad para DBMS en sybase (solo en venenux) de no ser asi deben leer: http://qgqlochekone.blogspot.com/2010/10/setup-odbc-using-postgresql-and-access.html. y adaptarlo segun freedts (tdsodbc en share).

Conexiones ODBC Sybase:

NOTA un archivo odbc.ini u/o .odbc.ini puede tener una o mas secciones que definan una conexión
En una consola crear un archivo odbc asi:
touch .odbc.ini
El contenido no usa ni usuario ni clave, tampoco connection settings, entonces de este debera ser asi:
[oasis0]
Description         = TDS sybase SQL
Driver              = FreeTDS
Trace               = Yes
TraceFile           = /tmp/tdsqlodbc.log
Database            = oasis
Server              = 192.168.1.12
Port                = 2638

Probar la conexcion ODBC realizada

Se usa tres parametros, el nombre (la parte entre corchetes) el usuario y la clave de conexión de acceso al a base de datos deseada, el usuario y clave son mandatorios ya que no son nunca asumidos en el odbc.ini asi:
(ejemplo usando la conexión arriba oasis0 pero con usuario y clave ficticio)
isql oasis0 pepe pablo
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

Trabajar con el odbc Sybase Linux (SAP odbc)

Cuando realize la instalacion hagala en /opt/sap/sqlanywhere12 aqui se asumira esta ruta.

Software requerido y preparación ODBC

Requiere nombre en bruto de ODBC lib (libodbc.so en vez de libodbc.so.2), ademas el instalador tiene un script llamado sa_config (hay dos uno para bash y otro para cshell) este ensena hay dos rutas importante que deben estar presentes:
export SQLANY12=/opt/sap/sqlanywhere12
export LD_LIBRARY_PATH="$SQLANY12/lib32:$LD_LIBRARY_PATH" 
apt-get install unixodbc-dev
El software de SAP/Sybase no usa ODBCINST.ini por ende no se registra en /etc/ sin embargo se puede usar de esta manera.
NOTA: tenga en cuenta que aunque registrarlo en odbcinst sirve, el software de SAP/Sybase no usa sino odbc.ini o DSN-less

Conexiones odbc SAP sybase:

NOTA un archivo odbc.ini u/o .odbc.ini puede tener una o mas secciones que definan una conexión
En una consola crear/verificar un archivo odbc asi:
touch .odbc.ini
El contenido depende del archivo libreria provisto, en este caso el nombre varia segun la instalacion, busque en el manual o ayuda de sybase, de este deberia ser SIMILAR asi:
[oasis0]
Description         = TDS sybase SAP
Driver              = /opt/sap/sqlanywhere12/lib32/libdbodbc12_r.so
Server              = 37.10.252.253
Port                = 2638

Probar la conexcion ODBC realizada

Se usa tres parametros, el nombre (la parte entre corchetes) el usuario y la calve de conexión de acceso al a base de datos deseada, asi:
(ejemplo usando la conexión arriba nominaq pero con usuario y clave ficticio)
dbisql -datasource oasis0 -c "dsn=oasis0;DBN=oasis0;UID=pepe;PWD=pablo" -nogui
dbisql> 

Comentarios

Entradas más populares de este blog

Zabbix monitorizacion y admnistracion de redes - introduccion

  Esta herramienta, Zabbix se centra en los hosts: por lo que es la opción correcta para monitorear redes distribuidas (se desarrolló originalmente para monitorear servidores). Zabbix también es administrador , y está listo para ipv6! Con un proxy como hombre en el medio y también con funciones para redes ocultas y con cortafuegos. En los casos en los que no existe la opción de instalar un agente, Zabbix ofrece una supervisión básica sin agentes. Con él, puede verificar la disponibilidad de los servicios de red, así como ejecutar comandos remotos, con esta introducción comenzamos una serie de publicaciones sobre el despliegue de Zabbix en alpine y / o debian linux, también para redes distribuidas. Entonces empezemos a entender a zabbix:

Errores de pam_mysql: símbolo my_make_scrambled_password y dlerror

. el viejo Linux siempre funciona, los más nuevos son una mierda, pero aquí estamos y debemos solucionar.. para que se arregle esa basura: pam_mysql simplemente no se carga en Debian, porque se mueve a "ubicaciones segura"s, además, viene con algunos problemas en Debian 7, Debian 8 y Debian 9 si usas diferentes versiones de Mysql / Mariadb. Aquí las soluciones simples y otras:

ostiket 1.9.X solucion a STARTTLS failed code: 220, response OK

  ..en osticket 1.12, 1.10 asi como 1.9 si tiene un sistema de corro fuertemente configurado.. y quiere conectarse localmente (es decir no necesitamos alta seguridad) la configuracion es imposible con localhost aun cuando su puertos estan 100% cerrados y es ILOGICO TANTA SEGURIDAD!!! El mas ilogico de sus problemas fue " oticket authentication failure [SMTP: STARTTLS failed (code: 220, response: Ok)] ",...

bandeja de iconos e indicadores desaparecen con ayatana - Linux no es más GNU linux

En Alpine sabemos que todo es la vieja escuela, si intentas instalar en Alpine todo a mano, o en Debian a mano sin las recomendaciones activadas; en ambos casos, notaras que no apareceran los iconos en la barra de tareas! Si! tal cual sospechas, tiene que ver con una mierda windowisada y estandares! Si caiste de la mata con la inclusion de codigo Microsoft en el kernel, si la mierda ya huele con la invasion de shitstemd, te caeras y volveras a caer cuando te enteres que Canonical creo un estandar para el area de notificacion "que unifica todo los indicadores del sistema"! Si .. mas software que intenta tomar control unificado. Winlinux se acerca.. y no hacemos nada para proteger la libertad de diversidad que ofrecia linux! ! .

libretro viene y pronto estara en tu tv o telefono

Libretro es un multisistema como mame, pero enfocado a multimedia, es decir   no se extrañen pronto jugar viejos games o poner roms emuladores de play en su tv o bluray   player! porque libretro esta hasta para televisores!

Actualizando debian (old)stable a debian (new)stable

Debian 11 fue lanzado, ahora le mostraremos cómo actualizar de cualquier Debian a cualquier Debian nuevo. Significa que puede actualizar cualquiera, por ejemplo, Debian 12 futuro a Debian 13 futuro, o inclusive oldoldstable a siguiente oldstable.

Tomando en cuidado optimizaciones para estupidos novatos

En general, los ignorantes y los lammers al compilar algo, en su mal conocimiento, simplemente siguen algunas palabras y obedecen las introducciones a la mala comodidad ... Si le preguntas a StackOverFlow, solo hay noobs que le darán respuestas incorrectas .. Verifiquemos este caso: ...

Diversidad de los Sistemas de Inicio en peligro en Debian afecta a otras distros

Una posible mancha ocupara la libertad de elección de usuarios avanzados para la distro madre: Debian; uno que respete la diversidad y la libertad de elección a nivel de «Sistemas de Inicio (Init), todo debido a la futura Resolución General del Proyecto DEBIAN sobre como la gran Distro Madre debe abordar la Diversidad existente sobre los Sistemas de Inicio. Resumiendo hay 3 resoluciones que eliminan las libertades de diversidad, dejando solo el "systemd", de allí el que mas gente odie a systemd, a todo esto se le denomina "un enfoque sano de PID1" en el argot técnico. Sus consecuencias: muerte/obstrucción al trabajo de otras distros mediante carga de trabajo extra debido a que solo existirá systemd: Devuan y MXLinux entre otras.

virtualbox GURU_MEDITATION y VERR_PGM_PHYS_PAGE_RESERVED, casos y soluciones

Error ocurre cuando se tiene mala configuracino de CPU, RAM o NET, por ejemplo la maquina esta en 32bit y el os es 64, o se configuro mucha ram o casi mas de la mitad respecto la real. Guru Meditation -1618 (VERR_PGM_PHYS_PAGE_RESERVED pero encontrar como arreglarlo es dificil ya que no se sabe la causa real puesto es un probelma de configuracion del xml/vdm y sucede mcuho cuadno se crean VM por linea de comandos, asi que pongo los casos mas comunes que lo pueden solventar: CASO1: memoria mal asignada o no accedible es muy comun si usas varias VM y estas son de usuarios distintos, aqui es facil si tienes 2G de ram y ya tienes uan VM con 1G asignada, si tratas de arrancar otra VM con tambien 1G asignada esta fallara con ese error la solucion es disminuir ambas a 512 ya que no puedes arrancar varias VM y estas abarquen mas de la mitad de la ram del sistema real. Menos si son desde ditintos usuarios en la misma maquina real. CASO 2: mala configuracion de discos/ide...