Averiguando cual es la arquitectura que tienes instalada

2 comentarios

¿Cómo saber si el Servidor del Firebird es SuperServer, Classic, o SuperClassic?

Realmente sería interesante que mediante un SELECT pudiéramos tener esa información, lamentablemente no es así pero de todas maneras podemos averiguarlo fácilmente. Hay dos métodos que podemos usar:

Método 1.

  1. Abrir como Administrador la ventana “Símbolo del sistema
  2. Ubicarse en la subcarpeta \BIN de la carpeta donde está instalado el Firebird
  3. Escribir el comando INSTSVC Q

Firebird puede ser instalado muchas veces en una computadora, para diferenciar a cada una de esas instalaciones de las demás a cada una hay que darle un nombre. El nombre por defecto, o sea el que le asigna el instalador es “DefaultInstance”.

Si tenemos más de una instalación del Firebird en una computadora, las demás instalaciones deberán tener otros nombres.

ARQUITECTURA1Captura 1. Si haces clic en la imagen la verás más grande

(1). La ventanita se abrió como Administrador. Para abrir un programa como Administrador debes colocar el mouse sobre su nombre, presionar el botón derecho y en el menú contextual que aparece elegir la opción: “Ejecutar como Administrador”

(2). El nombre de esta instalación es “DefaultInstance”, que es el nombre por defecto. Si hay más de una instalación del Firebird entonces podría aparecer otro nombre aquí.

(3). Los nombres de los archivos ejecutables pueden ser:

fbserver.exe —> significa que se está ejecutando SuperServer

fb_inet_server.exe —> significa que se está ejecutando Classic o SuperClassic. Para saber cual de ellos hay que mirar cual es el parámetro que viene a continuación: -c o ningún parámetro, es Classic. -s o -m es SuperClassic.

Método 2

  1.  Iniciar el Administrador de Tareas del Windows
  2. Hacer clic en la pestaña Procesos
  3. Hacer clic en el botón Mostrar procesos de todos los usuarios
  4. Si aparece una ventanita de diálogo preguntando: ¿Desea permitir que este programa realice cambios en el equipo? responderle que sí
  5. En la lista de procesos verás a fbserver.exe o a fb_inet_server.exe.

Por defecto Firebird se instala en SYSTEM.

Conclusión:

Aunque lamentablemente no disponemos de un SELECT que nos pueda decir la arquitectura del Servidor, es muy fácil obtener esa información y tenemos dos métodos para obtenerla.

Mediante el método 1 abrimos como Administrador una ventanita de comandos, nos ubicamos en la subcarpeta \BIN de nuestra instalación del Firebird y escribimos el comando INSTSVC Q

Mediante el método 2 iniciamos el Administrador de tareas del Windows, le pedimos que nos muestre todos los procesos y listo.

En ambos casos, fbserver.exe significa SuperServer y fb_inet_server.exe significa Classic o SuperClassic, para saber cual de ellos hay que fijarse en el parámetro que aparece a continuación: -c o nada, Classic, -s o -m, SuperClassic.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

 

Usando dos servidores para aumentar la velocidad de las operaciones

2 comentarios

Generalmente los usuarios quieren velocidad, quieren que las operaciones que realizan en la Base de Datos (SELECT, INSERT, UPDATE, DELETE) sean muy rápidas.

Una técnica que podemos emplear para aumentar la velocidad (además de la optimización de las consultas, que ya hemos visto en otros artículos de este blog) es tener en la misma computadora dos (o más) servidores instalados.

Como seguramente sabes, Firebird viene en tres arquitecturas: Classic, SuperClassic y SuperServer.

El problema con SuperServer es que mantiene un caché para todas las conexiones. O sea que si una Base de Datos tiene 40 conexiones, hay un solo caché para las 40 conexiones. Y si alguien está ejecutando una transacción o una consulta muy larga eso crea un “cuello de botella” para todos los demás usuarios, haciendo que sus operaciones se vuelvan muy lentas. Pero la gran ventaja de usar un solo caché es que si el usuario 2 quiere hacer la misma consulta que ya hizo el usuario 1 los datos de esa consulta ya muy probablemente se encuentran en el caché y por lo tanto no deben ser leídos del disco duro, proporcionando una gran velocidad (la memoria RAM es miles de veces más rápida que la memoria secundaria).

Como ves, usar SuperServer o usar Classic tiene sus ventajas y sus desventajas.

Entonces, ¿cuál es la mejor solución?

Usar dos servidores.

Un Servidor con la arquitectura SuperServer se usará para el mantenimiento de los datos de la Base de Datos y para las consultas rápidas. Un Servidor con arquitectura Classic se usará para las consultas lentas (que son lentas porque deben procesar muchos datos, no porque están mal diseñadas que ese es otro tema).

Para que esta técnica funcione sin problemas un solo Servidor será el encargado de las operaciones de mantenimiento de los datos (INSERT, UPDATE, DELETE). ¿Por qué? porque si los dos servidores pueden hacerlo podrían ocurrir conflictos y corromperse la Base de Datos. Por lo tanto hay que evitar esa posibilidad.

Entonces:

  • SuperServer se encargará de las operaciones de INSERT, UPDATE, DELETE y SELECTs rápidos
  • Classic se encargará de los SELECTs lentos

Como Classic usa un caché por cada conexión si un usuario está realizando una consulta muy lenta eso no les afectará a los demás usuarios.

¿Entonces, qué conseguimos con esto?

Que todos estén felices.

Los gerentes y los propietarios de las empresas generalmente se conectan a las bases de datos para realizar consultas. Entonces ellos siempre usarán Classic.

Los operadores se encargan de introducir datos y de imprimir informes de comprobación. Para la introducción de datos y para la impresión de informes cortos, usarán SuperServer; para la impresión de los informes que tendrán muchas páginas o que requieren de mucho procesamiento, usarán Classic.

Artículos relacionados:

Modelos de ejecución del Firebird y sus diferencias

Comparando las arquitecturas

Diferencias entre SuperServer, Classic y SuperClassic

El índice del blog Firebird21

Introducción a las tareas de Administración

2 comentarios

Aunque una bien programada Base de Datos de Firebird prácticamente no necesita de mantenimiento y puede usarse 24/7 (o sea: durante las 24 horas, los 7 días de la semana) sin problemas, siempre hay algunas tareas que se deben realizar con ella. A la persona que realiza dichas tareas se la conoce como “Administrador de la Base de Datos” y puede ser una persona distinta del programador o desarrollador porque sus tareas son muy diferentes.

Las tareas del Administrador son las siguientes:

  • Elegir la versión del Firebird que se instalará
  • Instalar el Servidor del Firebird
  • Determinar el alias que tendrá la Base de Datos
  • Parametrizar el archivo FIREBIRD.CONF
  • Analizar las estadísticas de la Base de Datos
  • Realizar los backups y los restores

Por lo tanto, el Administrador debe conocer:

  • Las características de cada versión del Firebird
  • Las diferencias entre esas versiones
  • La arquitectura MGA
  • El significado de las estadísticas de la Base de Datos
  • Las ventajas y desventajas de cada manera de realizar los backups y los restores
  • Que es y como funciona la recolección de basura

Lo ideal es detectar los problemas potenciales que podrían ocurrir antes de que realmente ocurran, para evitar dolores de cabezas. Para eso es de una gran ayuda analizar las estadísticas porque ellas nos dirán que hace el Servidor y cuando.

La arquitectura MGA (multigeneracional) usa varias versiones de cada registro para que los lectores no interfieran con los escritores ni los escritores con los lectores. Gracias a esta arquitectura, si un usuario se arrepiente de lo que estaba haciendo o si se detecta un error, se puede regresar la Base de Datos al estado consistente anterior. Sin embargo, la arquitectura MGA tiene una desventaja: puede ser causa de un bajo rendimiento cuando las transacciones están mal programadas. Analizando las estadísticas se pueden encontrar esas malas transacciones.

Otra ventaja de la arquitectura MGA es que los usuarios pueden continuar trabajando mientras se realiza un backup. O sea que no es necesario realizar los backups durante la hora del almuerzo o a la medianoche, como con otros sistemas.

En el archivo de backup se copian las definiciones de los índices, pero no los índices. Cuando se realiza la restauración esos índices son regenerados y todos los parámetros de las transacciones son reiniciados.

Para obtener un mejor rendimiento, lo aconsejable es que el backup se realice en otra computadora. Para comprobar que se tiene un backup válido hay que verificar que la fecha y la hora de la Base de Datos original sean diferentes a la fecha y la hora del backup y también restaurar el backup en otra computadora. Si la restauración se realizó con éxito, entonces se puede confiar en esa copia.

El backup se puede automatizar, para que se realice todos los días a determinada hora (o inclusive, varias veces cada día). Esto puede hacerse mediante las “tareas programadas” del Windows o con programas especializados.

La recolección de basura depende de un correcto manejo de las transacciones. Lo que se recolecta son datos y páginas de índices y el Firebird puede realizar esa tarea automáticamente. Cuando se recolecta la basura:

  • Se limpia la Base de Datos
  • Se reorganiza el espacio de memoria
  • La limpieza se ejecuta en segundo plano, sin interferir con las operaciones de los usuarios

Si no se recolecta la basura, el rendimiento de la Base de Datos se irá degradando poco a poco, hasta que llegará el momento en que realizar cualquier operación con ella tomará demasiado tiempo.

Resumen de tareas administrativas

  • Ninguna tarea administrativa es requerida si la Base de Datos está bien programada
  • Si el manejo de las transacciones es el correcto, ninguna tarea de mantenimiento se necesita
  • La recolección de basura depende de un manejo correcto de las transacciones
  • La recolección de basura afecta a los datos y a las páginas de índices