MEMO TÉCNICO MT010


Como Arreglar u Optimizar una Base de Datos de Interbase para XpertMart®.


COMPROBACIÓN:

El primer paso es establecer cual es la condición actual de nuestra base de datos y comprobar si ésta requiere de mantenimiento y/o si efectivamente existe algún daño en su estructura. Esta evaluación la podemos hacer fácilmente de tres maneras:


1. El tamaño de la base: Si revisamos el tamaño de la base y este es inusualmente grande o pequeño o esta ha crecido exageradamente de un día para otro, es una señal casi inequívoca de que algo le ha sucedido, pero esto no necesariamente quiere decir que sea inutilizable.

2. XpertMart® lento o no se puede abrir: Cuando XpertMart® toma demasiado tiempo para abrir incluso después de haber reiniciado la maquina, es otro síntoma de que algo anda mal. Si XpertMart® definitivamente no abre o nos envía un mensaje de que “no se puede establecer conexión con la base de datos” es casi un hecho que la base de datos este dañada, sin embargo no hay dejar de revisar que la base este físicamente en el subdirectorio correcto y que esta no haya sido renombrada, en cuyo caso el comportamiento del sistema será el mismo que si estuviera dañada.

3. Intentar conectarse por IB Console: Establecer conexión a la base y abrir sus tablas a través del manejador IB Console. Si esto no es posible queda entonces confirmado que hay un daño sustancial en la base.


En segundo lugar hay analizar las causas que originaron el problema para prevenir que esto no se vuelva a presentar. Existen muchos factores internos y externos al programa que pueden intervenir en una situación así, pero dentro de las causas mas probables tenemos:

Un corte o fluctuación muy marcada de corriente mientras el programa se encuentra abierto haciendo algún proceso o elaborando algún documento. La solución a este punto es instalar una unidad de suministro de corriente regulada e ininterrumpida (UPS).

Apagar la maquina abruptamente mientras se estaba trabajando dentro de XpertMart®. La solución aquí es la capacitación del personal.

Interrumpir algún proceso de XpertMart® con CNTRL+ALT+DEL. Nuevamente la capacitación es la solución. Hay que remarcar con el personal de tiendas que cuando tengan un problema que no sepan resolver apropiadamente, primero acudan a la gente especializada en soporte de su compañía en vez de tomar decisiones equivocadas.

Cerrar la sesión del usuario mientras existe una conexión activa a la base de datos. Este hecho es el causante de que el tamaño de la base se incremente desproporcionalmente sin razón aparente. Esta situación se presenta cuando la gente siente el sistema un tanto lento y quiere interrumpir todo para acelerar el proceso. Evidentemente el sistema se alentará mientras este haciendo una consulta a la base de datos y en estos casos debemos instruir al personal, en que es necesario esperar a que el sistema termine la tarea antes de poder obtener mas rendimiento y velocidad de este.

Daño permanente del disco duro de la máquina. No existe hasta la fecha un hardware o software infalible. Las fallas de este tipo se pueden presentar en cualquier momento incluso si el equipo es de reciente adquisición.

Manipulación indebida de la base mediante IB Console u otro manejador de base de datos. La gente que tenga acceso a esta herramientas debe estar consciente y segura de lo que esta haciendo, de lo contrario las consecuencias pueden ser desastrosas.


RESPALDOS:

En realidad la mejor forma de estar protegido contra estas contingencias, es estableciendo una política completa de respaldos.

La justificación económica de los respaldos se debe hacer pensando ¿cuánto nos costaría recuperar la información perdida si no se tienen copias de resguardo?. Seguramente en todos o la gran mayoría de los casos la respuesta a esta pregunta, será mucho mayor que lo que nos pueda costar el sistema mas completo de respaldos de información.

Por eso es indispensable contar tanto en las tiendas como en la central con por lo menos un método que nos garantice que nuestros datos estarán seguros y protegidos contra su pérdida.

Existen diversos dispositivos externos de respaldo que pueden ser en cinta, CD-R, zipdrive, Jazz, etc. los cuales son muy convenientes y de bajo costo. Sin embargo en ocasiones es difícil para las empresas colocar un dispositivo de estos en cada estación, por lo que se utiliza sólo en la estación central y en tiendas se respalda en el mismo disco duro de la PC. Esta técnica es muy usada y es relativamente confiable aunque estamos sujetos a que el disco duro no falle. Si el disco duro colapsa o si la máquina se pierde por completo (por robo por ejemplo), ni los datos serán recuperables ni los respaldo estarán disponibles.

Ahora bien, en el caso de tener una base dañada y que se desea reparar, tendríamos que usar la herramienta IB Console de Interbase para llevar a cabo dos procesos que mejorarán notablemente su condición y por consiguiente el funcionamiento de XpertMart®: primero validar la base de datos lo cual arregla cualquier error interno que esta pueda tener y luego hacer un Backup/Restore para eliminar de la base espacio vacío y registros que ya no son útiles.


VALIDACIÓN:

1. Con XpertMart® cerrado ir a INICIO > PROGRAMAS > INTERBASE > IBCONSOLE

2. Señalamos con el mouse "Local Server" Darle doble click en LOCAL SERVER e introducimos usuario y password para conectarnos. El usuario es SYSDBA y la clave es masterkey. Si no hemos registrado el "Local Server" seleccionamos del menú SERVER la opción REGISTER y en la ventana que aparece introducimos el usuario y el password correspondientes.

3. Debajo de “Local Server” debe aparecer Main como base de datos. Si no es así bajo el menú DATABASE debemos registrar la base de datos. Para hacer esto tomamos la opción REGISTER. En la siguiente ventana en el campo FILE NAME buscamos donde esta main.gdb. Básicamente es decirle donde se encuentra el archivo en y asignarle un "alias" o sobrenombre para el que normalmente usamos "main". El username y password son los mismos que para hacer “Login al servidor, SYSDBA y masterkey“.

4. Señalamos la base de datos main con el mouse y con el botón derecho aparece el menú emergente del cual seleccionamos DISCONNECT.

5. En el menú DATABASE esta la opción MAINTENANCE y a su vez dentro esta la opción VALIDATION.

6. Al seleccionar la opción Validation aparece la ventana del proceso de validación en donde existen tres opciones que deben quedar como sigue:

   1. Validate Record Fragments = true.

   2. Read only validation = false.

   3. Ignore checksum errors = false.


7. Este proceso valida y repara la base de datos por si encuentra algo mal lo trata de arreglar. Si al final encuentra errores, se desplegará el mensaje de error y un botón que dice "REPAIR" estará activado. Damos click en "Repair" y esperamos a que termine el proceso. Si la base no tenia errores, aparecerá el mensaje “no database erros were found” y el botón “Repair” estará desactivado.


BACKUP/RESTORE:

Una vez hecha la validación podemos proceder a la operación Backup/Restore que como ya se dijo nos sirve además de para hacer respaldos dentro del IB Console, para volver a la base de datos a su tamaño mas reducido, eliminando espacio vacío no utilizado.

1. Dentro de IB Console y con el procedimiento de conexión al local server arriba explicado y con la base de datos “Main” desconectada, seleccionamos del menú DATABASE > MAINTENANCE > BACKUP/RESTORE > BACKUP.

2. En la ventana de Backup especificamos el “Alias” de nuestra base que es MAIN el “Server” que es LOCAL SERVER, después el alias del Backup que puede ser MAINBUP y por ultimo en el campo FILE NAME tenemos que especificar la ruta donde se grabara nuestro Backup y nombre del archivo, por ejemplo C:\MAIN\RESPALDO y presionamos OK para iniciar el proceso. Al terminar aparecerá en la ventana el mensaje “Database backup completed” presionamos OK y cerramos la ventana del proceso.

3. Después vamos al menú DATABASE > MAINTENANCE > BACKUP/RESTORE > RESTORE. En el campo “Alias” seleccionamos el sobrenombre que le dimos a nuestro respaldo MAINBUP y automáticamente aparecerán los datos del nombre del archivo en el campo “file name”, el alias a donde se va a restaurar el respaldo y la ruta y el archivo donde quedará la restauración. Por omisión será la misma MAIN.GDB de donde sacamos el respaldo, pero si lo deseamos podemos cambiarlo. Si queremos que la restauración sobreescriba el anterior MAIN.GDB, debemos cambiar la opción “Overwrite” a TRUE.

4. Presionamos OK y esperamos a que se termine el proceso. Cuando aparezca en la ventana en mensaje “finishing, closing and going home” habrá terminado. Cerramos IB Console y entonces podemos proceder a abrir XpertMart® para comprobar que todo funciona correctamente.


Empresas en México, Guatemala, El Salvador, Panama, Honduras, Paraguay, Colombia y USA diariamente usan nuestro software XpertMart (mr) para sus operaciones de venta al detalle. Atendemos todos los países de Latino América y el Caribe. Disponible en Chile, Venezuela, Uruguay, Argentina y Costa Rica.