Re: [pgsql-es-ayuda] Rescatar BD no respaldada

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Guillermo Garviso Aubá <tiotushi(at)hotmail(dot)com>
Cc: "arpug(at)postgresql(dot)org" <arpug(at)postgresql(dot)org>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>, "pgsql-es-fomento(at)postgresql(dot)org" <pgsql-es-fomento(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Rescatar BD no respaldada
Date: 2015-04-23 19:45:03
Message-ID: 20150423194503.GM4369@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: arpug pgsql-es-ayuda pgsql-es-fomento

Guillermo Garviso Aubá escribió:
> Buenos Dias, Soy Guillermo y tengo el presente problema "heredado", tenemos un servidor que trabaja con CentOS y PostGreSQL 8.3, el cual se quemo y por motivos que desconozco, el administrador de la base de datos nunca pudo generar los backups de las mismas, para lo cual ahora me encuentro yo con el problema de como rescatar la BD.
> Lo que actualmente hice es montar el disco mediante USB a mi PC con Windows mediante Ext2Fsd, en el cual busco extraer el archivo directamente de la carpeta de Postgres, pero es acá donde no manejo el sistema, para lo cual les solicito su ayuda con este tema.
> Lo que busco es extraer el archivo de la BD de Postgres del Disco Externo con Linux en Windows y poder transformarlo a un formato exportable/importable en otro servidor con Postgres, nose si esto sera técnicamente posible, de lo contrario agradecería me indique algún modo de solución al problema para poder extraer la BD de un Linux que no esta operativo, Muchas Gracias.

Paso número cero: crea un respaldo físico del disco que sacaste del
servidor quemado. No te ahorres este paso, a menos que valores poco los
datos. Si "es que no tengo espacio en disco", compra uno nuevo.

Paso uno: encontrar el PGDATA (directorio de datos). Necesitas todos
los archivos que están dentro del directorio de datos, y además todos
los archivos que estén en directorios de tablespaces. Para encontrar el
directorio de datos puedes buscar un directorio llamado "pg_global"; el
directorio que lo contiene es el directorio de datos. A continuación,
mira el subdirectorio pg_tblspc: cada tablespace tiene un symlink (o en
Windows, un junction) ahí dentro. Si está vacío, entonces eureka ya
tienes todo.

Paso dos: necesitas un Postgres compilado igual que el que tenía el
servidor quemado, y levantar el servicio haciendo que su pgdata apunte
al directorio de datos. No te sirve correr Postgres en Linux, porque el
directorio de datos no es compatible. [No se te ocurra hacer initdb]

Paso tres: ya que el servicio está corriendo con los datos antiguos, haz
un respaldo completo con pg_dump/pg_dumpall y restaura en un servidor
que hayas forrado previamente en kevlar.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Browse arpug by date

  From Date Subject
Next Message Enrique Escobar 2015-04-23 19:49:02 Re: [pgsql-es-ayuda] Rescatar BD no respaldada
Previous Message Guillermo Garviso Aubá 2015-04-23 15:04:23 Rescatar BD no respaldada

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Enrique Escobar 2015-04-23 19:49:02 Re: [pgsql-es-ayuda] Rescatar BD no respaldada
Previous Message Enrique Escobar 2015-04-23 16:20:43 RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Validación de sesiones.

Browse pgsql-es-fomento by date

  From Date Subject
Next Message Enrique Escobar 2015-04-23 19:49:02 Re: [pgsql-es-ayuda] Rescatar BD no respaldada
Previous Message Guillermo Garviso Aubá 2015-04-23 15:04:23 Rescatar BD no respaldada