Feeds, issues, packages and code source about emulation and pograming, of VENENUX proyects, Debian related distros and massenkoh!

Setup ODBC using PostGreSQL and access

|



ODBC creating conections and pools by PostGreSQL : PostgreSQL ODBC Driver setup on Debian

ODBC creando conecciones y granjas por PostGreSQL : PostgreSQL ODBC Driver configuracion en Debian|

Este paquete contiene el controlador ODBC de PostgreSQL. Aplicaciones que deseen hacer uso de ella deben usarlo través de un gestor de controladores ODBC. En Debian, esto normalmente significa que tienen una dependencia en el paquete "libiodbc2" o "unixodbc".

This package contains the PostgreSQL ODBC driver. Applications wishingto make use of it need to go through an ODBC driver manager. On Debian, this normally means that they have a dependency on the package "libiodbc2" or "unixodbc".

Este ejemplo sale de la necesidad no de programar con ODBC, sin o mas sencillo, usar una coneccion que ya este disponible en ODBC pero la informacion que se encuentra relacionada aparte de estar des actualizada es pobre y no relacionada en absoluto a debian.

This example came from the need not to programing with ODBC, easier, use it a connection that's already available in ODBC but the information in network related are currenly out of date and very poor also not related at all to debian.

Debian pgsql ODBC package : odbc-postgresql and ANSI vs UNICODE

El paquete Debian (odbc-postgresql) contiene actualmente dos pilotos, una variante de ANSI (psqlodbca) y una variante de Unicode (psqlodbcw). La variante de Unicode trabaja con clientes Unicode y ASCII, la variante de ANSI deberia funcionar con cualquier cliente, siempre que la codificacion sean iguales. Los detalles dependen de la aplicación y el gestor de controladores, la experimentación puede ser necesario en algunos casos.

Debian package (odbc-postgresql) actually contains two drivers, one ANSI variant (psqlodbca) and one Unicode variant (psqlodbcw). The Unicode variant works with Unicode and ASCII clients, the ANSI variant should work with any client encoding provided that the database encoding matches. The specifics depend on the application and the driver manager; experimentation may be necessary in some cases


Instalando soporte ODBC en Debian con PostGreSQL


Install ODBC support on Debian with PostGreSQL

Sencillo, asumiendo se configuro el servicio de postgres como indica massenkoh, simplemente se realiza el comando como superusuario:

Easyl asuming postgres are configured as indicated on massenkoh pdf documentation, simply run install comand as super user on console:

svrindrave02:~# apt-get install odbc-postgresql


Configurando el driver en Debian para la instancia a usar


Configuring the registered instances on Debian.

1) Registrar el driver

1) Registrered driver

Primero se debe registrar el ODBC driver de PostGreSQL en /etc/odbcinst.ini, con lo siguiente en root:

First must register the PostGreSQL ODBC drivers in /etc/odbcinst.ini, run the following command as root:

svrmassenkoh02:# odbcinst -i -d -f /usr/share/psqlodbc/odbcinst.ini.template

odbcinst: Driver installed. Usage count increased to 1.

Target directory is /etc

odbcinst: Driver installed. Usage count increased to 1.

Target directory is /etc

svrmassenkoh02:#

cat /usr/share/doc/odbc-postgresql/examples/odbc.ini.template >> ~/.odbc.ini

Esto instancia y registra un ODBC para el postgresql, dos realmente, uno ANSI y uno UNICODE.

This instance and registrered a ODBC for postgresql, realy tow, one ANSI and other UNICODE.

2) Creando la Fuente de Datos

2) Creating Data Sources

Para poder tener acceso a una base de datos en particular a través de ODBC tiene que registrarse como una fuente de datos ODBC. Las fuentes de datos son registrados a nivel global en /etc/odbc.ini o para cada usuario en un archivo del home ~/.odbc.ini respectivamente.

To be able to access a particular database via ODBC you need to register it as an ODBC data source. Data sources are registered globally in /etc/odbc.ini or for each user in private home file as ~/.odbc.ini respectively.


Para ejabberd como ejemplo se creo el archivo global /etc/odbc.ini con este contenido:


For ejabberd by example this contents are created in global /etc/odbc.ini file:

[PSQLejabberdb]

Description = PostgreSQL ejabberdb conection

Driver = PostgreSQL Unicode

Trace = No

TraceFile = /var/log/jabberd/psqlodbc.log

Database = ejabberdb

Servername = localhost

UserName = ejabberdb

Password =

Port = 5432

ReadOnly = No

RowVersioning = No

ShowSystemTables = No

ShowOidColumn = No

FakeOidIndex = No

ConnSettings =


La conexión ODBC debe ser global para ejabberd en Debian, pero en otros ftp / clientes de acogida debe ser por or usuario del proceso de ejabberd

The ODBC conection must be global for ejabberd on Debian, but on others ftp/host clients must be by user ower of ejabberd process.


Probando conectividad


Testing Connectivity

Usando el cliente isql de ODBC asi:

Using the isql client as it:

svrindrave02:~# isql PSQLejabberdb ejabberdb

+---------------------------------------+

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

+---------------------------------------+

SQL> quit

svrindrave02:~#

NOTA: shemas

NOTE: shemas

Al final del archivo hay que definir los esquemas extras aparte de public!

At the end of setion config must be defined the extra default shemas around public!

ConnSettings = SET search_path TO prod, public



lopp management / manejo de loops

|



Loop manage


Que son los dispositivos loop?


What is the loop devices?

La funcion del modulo loop es presentar los contenidos de un archivo ordinario como un dispositivo de bloques. Su uso más habitual es para montar imagenes de disco (notablemente archivos .iso).

The loop module funtion ist present contents from ordinary files as common block devices. Its commonly used for mount image disk (as .iso files commonly).

En la practica: limites y cantidad

In practice: limitations and amounts

En linux existe 8 dispositivos inicialmente, estos pueden configurarse para mas, hasta un maximo de 256, tambien pueden crearse en caliente sin reiniciar la maquina.

In Linux exist a maximun of 8 devices initialy, they can be configured for more, until maximun of 256 loop devices, also can be created in hot plug wihtout reboot.


Configurandolos


Configuring loop devices

En debian esto se realiza gracias a la gestion de modulos en modprobe.d, en el directorio de configuraciones, para ello se tiene que crear un archivo de configuracion para este modulo llamado loop, el procedimiento es este:

In Debian this are manage throught module in modprobe.d, in configurations directory, means that must be created a config file for the loop module, the procedure are:

1 - Verificar o crear el archivo de configuracion para el modulo:

1 - Verify or create the config file for the module:


touch /etc/modprobe.d/loop


2 - Editar el contenido y agregar lo siguiente asi:

2 - Edit content and added as its that:

echo “options loop max_loop=48” >> /etc/modprobe.d/loop


3 - reiniciar.

3 - reboot.

El parametro 48 determina o dice al kernel al momento de cargar el modulo que cree 48 dispositivos loop en ve de los 8 iniciales.

The parameter 48 indicates o said to kernel that at loading module time makes 48 loop devices even the 8 initialy.


Creandolos en caliente sin reinicio.


Creating in hot wihtout rebooting

Se puede crear mas dispositivos loop usando la utilidad mknod asi:

Can be create more loop devices using mknod utility , as is:


mknod /dev/loop9 b 7 9



Cabe destacar que el numero 9 es determinante, en este caso se creo el dispositivo loop 9 , al crear el siguiente debera ser 10 y asi, el numero 7 no cambia.

Must observer that the number 9 are important, in this case lopp device 9 are created, went create the next device must be 10 an so, the number 7 must not change.


Monitoreo de los dispositivos loop


Managing loop devices

Para averiguar información de estos dispositivos se emplea la utilidad losetup. El siguiente comando muestra información de SOLO los dispositivos loop en uso:

For managing information about the loop devices the losetup utility ist the program. The following command shows ONLY information about the loop devices in use:


losetup -a


La siguientes lineas muestran la salida en el servidor de repositorios configurado para massenkoh:

The following lines shows output about mounted iso files acting aobut debs repositories:


svrmassenkoh02:# losetup -a

/dev/loop0: [0803]:5269512 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-5*)

/dev/loop1: [0803]:5269509 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-5*)

/dev/loop2: [0803]:5269511 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-5*)

/dev/loop3: [0803]:5269513 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-5*)

/dev/loop4: [0803]:5269510 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-5*)

/dev/loop5: [0803]:5269516 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-5*)

/dev/loop6: [0803]:5269515 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-5*)

/dev/loop7: [0803]:5269514 (/media/system/DEBIANFILES/DEBIANISOS/debian-lenny-505/debian-u*)

/dev/loop8: [0803]:6979586 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

/dev/loop9: [0803]:6980280 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

/dev/loop10: [0803]:12656641 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

/dev/loop11: [0803]:12656642 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

/dev/loop12: [0803]:12656643 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

/dev/loop13: [0803]:12656644 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

/dev/loop14: [0803]:12656645 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

/dev/loop15: [0803]:12656646 (/media/system/DEBIANFILES/DEBIANISOS/debian-squeeze-ago2010/de*)

svrmassenkoh02:#


Para encontrar un dispositivo loop (ordenado ascendente) sin uso del total creado (mas no todos los sin uso del total creado):

For find a loop device unused (ordened ascending) from total devices created (but not a total of loop devices unused):

losetup –find



Conclusiones


Conclusions

Los dispositivos loop son utiles, son únicos en sistemas Linux unicamente, otros sistemas precarios requieren de utilidades extras, este tipo de software esta en todas las distros linux existente, pues es parte del sistema base y no tiene nada que ver con cosas GNU ya que debe su gestion al propio kernel.

The loop devices are useful, are unique to Linux systems only, other precary operating systems require tirhd party utilities, this type of software exist on all Linux distros, it is part of their base and has nothing to do with things GNU as owes its management to the kernel.