Tratamiento para Base de Datos dañada

Tratamiento para Base de Datos dañada

Antes de empezar con este tema, cabe aclarar que siempre la opción más segura ante una base de datos dañada es recuperar un respaldo sano y completar la información a la fecha, sin embargo, esto no siempre es posible ya sea por la cantidad de información o porque no hay respaldos. Los pasos para arreglar una base de datos son los siguientes:

1.       Correr el diagnóstico y al terminar se corre la opción de “Reparar”. Es necesario correr varias veces la opción de “Reparar”, hasta que el reporte indique que está arreglada o que el reporte del error no varíe después de 3 ocasiones que se corra esta opción, en dicho caso habría que pasar a la siguiente opción.

2.       Se usaría la opción comentada en el apartado Respaldos: se hace un respaldo, se elimina la base de datos original y se crea de nuevo para recuperar el respaldo, se hace un diagnóstico nuevamente para ver si ya está todo correcto. No hay que olvidar guardar una copia de la base de datos original por si fallara la recuperación del respaldo.

3.       Si no se arregló con lo anterior, en el siguiente paso hay que echar mano de las utilerías GFIX GBAK de firebird, utilizando a la herramienta IBExpert para su uso:

El primer paso, es registrar la base de datos, para lo cuál se utiliza la siguiente pantalla donde se deberá establecer un Alias, el usuario y la contraseña para su conexión:

 

Una vez registrada la base de datos, utilizaremos las herramientas para verificar la base de datos, la cual encontramos en el menú “Servicies” y seleccionando la opción “Database Validation”, seleccionamos la base de datos que queremos revisar y habilitamos solo las ociones “Validate Database” y “ValidateFull”, como se muestra en la imagen:

Si la base de datos está correcta,  se mostrará que no se encuentran errores. En caso de que se presente algún error, para arreglar la base de datos se corre nuevamente la herramienta “Database Validation”, esta vez, seleccionando las opciones “Ignore Checksum”, “Mend Database” y “Validate Full”:


Hay que seguir ejecutando hasta que el diagnóstico no marque error o ya no cambie después de unas 3 veces de ejecutarlo, en este caso ya se debe de pasar a la siguiente opción. 

4.       En esta opción se hace un respaldo especial usando las utilerías antes descritas. El respaldo se crea con las siguientes opciones, utilizando la opción “Backup database”, del menú “Services”:


 

Este respaldo se recupera en una base de datos nueva con el siguiente comando:

  

Se diagnostica nuevamente la base de datos con el GFIXcomo se describió en la opción anterior para ver si ya está correcta o no.

5.       Si todo lo demás falla lo único que queda es tratar de arreglar la base de datos manualmente, para esto se usa un respaldo normal o el mencionado en la opción anterior, siguiendo los pasos que se enumeran:

a)      Se recupera en una base de datos nueva con los índices sin activar con el siguiente comando:

 

b)     A continuación se activan los índices, para ello se usa el programa IndexActivate. Se le indica la trayectoria y nombre de la base de datos y se ejecuta, en las ventanas irán apareciendo los índices que no se pueden activar por tener errores y el error por el que no se pudieron activar. 

c)      Del paso anterior se obtienen las tablas con problemas, por deducción se debe de inferir ahora el siguiente paso. Por ejemplo: Si resulta que las tablas Doctos_Ve y Doctos_Ve_Det son las que tienen el problema sabemos que hay una relación en la que los registros de Doctos_Ve_det depende de los encabezados de Doctos_Ve, por lo que hay que investigar qué registros de detalle están huérfanos, los cuales podríamos detectar con el siguiente query:

Select * From Doctos_Ve_Det Where Docto_Ve_Id Not In (Select Docto_Ve_Id From Doctos_Ve)

 

d)     Este query arroja una lista de los movimientos de detalle que no tienen encabezado registrado. La acción más sencilla en este caso es eliminarlos con este otro query:

Delete from Doctos_Ve_Det Where Docto_Ve_Id Not In (Select Docto_Ve_Id From Doctos_Ve)

 

e)      Los pasos anteriores se realizan para cada índice con problemas, una vez que se procesaron todos, se regresa al IndexActivate y se activan los índices pendientes de la lista.

En este último caso sólo se puede presentar un ejemplo, ya que las acciones van a depender de las tablas involucradas y el problema en sí que presenten, por lo que va a ser muy variable y en ocasiones en lugar de eliminar algunos será mejor dar de alta algún elemento. Es indispensable en este punto aplicar la experiencia y la pericia de cada quien para encontrar el mejor camino para arreglar este tipo de problemas.

 

    • Related Articles

    • Cambiar periodo de captura

      Cambiar periodo de captura. Es el período habilitado para capturar documentos. El período de trabajo puede comprender un día, una semana, un mes, etc., aunque es recomendable que coincida con el mes calendario. Para capturar documentos de otro ...
    • Importar Estados de cuenta

      El proceso para realizar la importación de Estados de cuenta en Bancos Microsip es el siguiente: 1. Preparar LayOut (Se adjunto archivo) 2. Entrar al Módulo de bancos. 3. Ir a Documentos / Estados de Cuenta 4. Nuevo estado de cuenta * Seleccionas la ...
    • Herramienta para validar datos fiscales en el SAT.

      Video caso practico Descarga la herramienta Levanta tu ticket de soporte para apoyarte con la configuración   → Nuevo ticket de soporte
    • Alta de impuesto Retención

      Registre en esta carpeta los diferentes impuestos y retenciones que se aplican a los productos y servicios al venderlos y al comprarlos.   Datos de un impuesto   Nombre (obligatorio) Escriba el nombre que describe al impuesto. Tipo de impuesto ...
    • Guía para primer Nómina 2025.

      Actualizar Salarios Minimos Actualización UMA Valores de la Unidad de Medida y Actualización a partir del 1 de febrero de 2025 (pesos mexicanos) % de Integración Esta herramienta actualiza el porcentaje de integración de los empleados para el Seguro ...