Re: No se puede acceder a la BD

From: Jairo Graterón <jgrateron(at)gmail(dot)com>
To: Horacio Miranda <hmiranda(at)gmail(dot)com>
Cc: Lucas Luengas <lucasluengas(at)gmail(dot)com>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: No se puede acceder a la BD
Date: 2019-03-27 00:15:45
Message-ID: CALnU-rNNWksf6rJav6rw-qdFKYvT4aA56Uid4TCPoC4-qyWr1A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

¡Gracias! Horacio

Este thread es bueno, dedos cruzados que solo es un indices.
https://grokbase.com/t/postgresql/pgsql-general/12a3rb6p15/postgres-will-not-start-due-to-corrupt-index

Puedes subir la base de datos con la opción -P ( hagas lo que hagas no
toques el respaldo que tienes ).

Logré acceder a la BD con las instrucciones, hice reindex y puedo ver toda
la información.

Compartiré los pasos

1. Paré el servicio de postgres
2. desde la consola inicié el programa postgres.exe
postgres --single -D "C:\Program Files\PostgreSQL\9.2\data" -P mydb
4. reindex database mydb;
5. cerré la consola
6. inicié el servicio y listo ya se puede acceder desde pgadmin.

select * from pg_class where relfilenode = 11760;

Ésta relación ya no existe, seguramente era un índice.

Saludos.

El lun., 25 mar. 2019 a las 18:41, Horacio Miranda (<hmiranda(at)gmail(dot)com>)
escribió:

>
>
> On 26/03/2019, at 11:10 AM, Jairo Graterón <jgrateron(at)gmail(dot)com> wrote:
>
> Saludos
>
> select * from pg_class where relfilenode = 11760;
> No funciona porque no se puede acceder a la BD
>
>
> Este thread es bueno, dedos cruzados que solo es un indices.
>
> https://grokbase.com/t/postgresql/pgsql-general/12a3rb6p15/postgres-will-not-start-due-to-corrupt-index
>
> Puedes subir la base de datos con la opción -P ( hagas lo que hagas no
> toques el respaldo que tienes ).
>
> Hice el checkdisk y hay fallas en el disco duro, es más la máquina ya no
> arranca.
>
> Logré respaldar la carpeta DATA de postgres y lo copie en otra máquina con
> su misma versión de postgres pero igualmente no se puede acceder a la BD.
>
> usé el programa reindex y da el mismo error, cree un archivo con el mismo
> nombre sin bytes y aparece "Fatal: índice pg_attribute_relid_attnum_index
> contiene páginas vacías no esperadas en el bloque 0"
>
>
> Así que restauraremos la copia que tengo del año pasado y ellos revisaran
> los reportes diarios para recuperar las ventas y cobranzas.
>
>
> *Ojo no soy el administrador de sistemas de la empresa,* sólo instalé el
> sistema hace varios años, en su momento les indiqué que hicieran respaldos
> diarios, comprar discos redundantes y un UPS para ese equipo.
>
> Gracias por sus respuestas.
>
>
>
>
>
> El sáb., 23 mar. 2019 a las 18:24, Horacio Miranda (<hmiranda(at)gmail(dot)com>)
> escribió:
>
>> Algunas cosas que hago cuando hay problemas Comentarios entre lineas.
>> On 24/03/2019 5:29 AM, Jairo Graterón wrote:
>>
>> Hola Lucas
>>
>> Si el servidor Postgres arranca correctamente, no se puede hacer backup
>> ya que da error al acceder a la BD de la empresa
>>
>> Hay varios tipos de respaldos, si no puedes hacer un respaldo lógico,
>> hace un respaldo físico ( copia todo a otra maquina no otro directorio o
>> disco en ese servidor ). ( usa discos remotos montados de forma local ),
>> que tamaño estamos hablando ? Tienes otra maquina similar supongo ?
>>
>>
>> Al igual que pg_admin desde la línea de comandos puedo iniciar sesión
>> desde la BD por default de postgres, pero luego cuando cambio a BD de
>> producción aparece el error.
>>
>> Antes de ver la base de datos asegurate que la maquina este bien ( que
>> maquina es ? sí es una HP/DELL/Cisco, etc ) revisa que el cache de la
>> controladora este online y los discos no esten esperando una acción, sí
>> tienes mala suerte el archivo estaba en el cache a la hora de la falla, sí
>> esto llegara a ser correcto, es un proceso temporal que crea y borra tablas
>> y puede que tengas suerte ).
>>
>> Sí es S.O. Lo que puedes tratar ( sí no has escrito nada en la maquina )
>> recuperar ese archivo con testdisk ( pero debes saber lo que estas haciendo
>> y despues de sacar un respaldo ) la regla es no usar el disco con problemas
>> para asegurarte que no se escriban los bloques ( lo ideal es tener el
>> postgresql en otra particion ).
>> https://www.cgsecurity.org/wiki/TestDisk_Download
>>
>> Paré el servicio postgres e hice un respaldo del directorio BASE,
>>
>> Voy a revisar el visor de logs de postgres a ver si encuentro el porque
>> se borró ese archivo.
>>
>> No creo que pilles el por que... revisa el disco con checkdisk, y carga
>> el respaldo en otra maquina ( se que tienes un respaldo, pero esta probado
>> ? ).
>>
>>
>> *PS: Moraleja, los respaldos se deben sacar de forma automática, no
>> confíes en humanos para hacer tareas de maquinas y debes tener un DR plan (
>> respaldos fuera de la maquina y/o respaldados en dos lugares. En lo
>> personal saco respaldo semanales, mensuales y anuales con retención 4 en
>> cada ítem para bases importantes en un Storage remoto en otro datacenter. (
>> paranoico pero eso me salvo la vida una vez una carga de datos errónea que
>> necesite un respaldo de 2 años atrás ).*
>>
>> El sáb., 23 mar. 2019 a las 11:49, Lucas Luengas (<lucasluengas(at)gmail(dot)com>)
>> escribió:
>>
>>> Hola.
>>>
>>> Lo primero que yo haría sería comprobar si la base de datos arranca y
>>> para correctamente. Aunque quizás no se acceda a todos sus objetos.
>>> Si la base de datos arranca y para correctamente, lo primero que yo
>>> haría sería hacer un backup del estado actual antes de proceder con ninguna
>>> acción (suponiendo que se pueda hacer backup, espero que sí).
>>>
>>> Lo segundo que haría sería revisar los logs postgres y el visor de
>>> sucesos de Windows porque algunos mensajes iniciales de Postgres en entorno
>>> Windows se muestran en el visor de sucesos y quizás puedan ser de interés.
>>> A partir de los logs puedes investigar más a fondo.
>>>
>>> Lo tercero: por la captura de pantalla, el error lo ofrece Pgadmin. ¿Lo
>>> ofrece al acceder a alguna tabla en concreto, a todas las tablas, al
>>> conectar a la base de datos?
>>>
>>> Lo cuarto: comprueba si se puede entrar a la base de datos por línea de
>>> comandos vía psql, y en caso afirmativo si puedes hacer select de las
>>> tablas de la base de datos.
>>>
>>> Lo que he comentado no soluciona el problema, pero ayuda a averiguar
>>> el/los problemas concretos de fondo.
>>>
>>> Saludos.
>>>
>>>
>>>
>>>
>>>
>>> On Sat, Mar 23, 2019 at 3:23 PM Jairo Graterón <jgrateron(at)gmail(dot)com>
>>> wrote:
>>>
>>>> Buen día lista,
>>>>
>>>> Tengo el siguiente problema
>>>>
>>>> <image.png>
>>>>
>>>> Ocurrió al apagarse repentinamente el servidor porque falló el sistema
>>>> eléctrico y su sistema de respaldo.
>>>>
>>>> El administrador de sistema no hizo los respaldos respectivos y no hay
>>>> backup de éste año.
>>>>
>>>> Es una empresa pequeña y tiene un servidor con postgres 9.2. corriendo
>>>> sobre Windows 7.
>>>>
>>>> Ese sistema lo instalé hace como 10 años y la BD nunca había dado
>>>> problemas.
>>>>
>>>> Alguna sugerencia de cómo recuperar la BD?
>>>>
>>>> PD.
>>>>
>>>> Tengo un respaldo del año pasado, no se si sirva para algo.
>>>>
>>>> Gracias
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2019-03-27 02:03:49 Re: No se puede acceder a la BD
Previous Message Horacio Miranda 2019-03-25 22:41:52 Re: No se puede acceder a la BD