Hola Álvaro, la recomendación que siempre se hace, es que todas tus preguntas (aunque te parezcan simples) las mandes a la lista general y no a usuarios en particular. Esto por si alguien más (ahora o en el futuro) tiene la misma pregunta pueda buscarla en la lista y ya no tener que preguntar de nuevo.

dentro de las opciones de pg_dump está el -C ó --create que genera el comando para crear la base de datos y se conecta a ella.

La parte de los usuarios tendría que ser hecha una vez por cada instalación con pg_dumpall de la forma en que lo describes (con la opción -g).

Una referencia:
http://archives.postgresql.org/pgsql-novice/2005-12/msg00332.php

El 04/09/11 04:03, Alvaro Ramiro Benavides escribió:
Hola René,

Aprovecho para preguntarte una cosa.

Actualmente, a parte de hacer rsyncs a otro servidor de mi directorio de BD de postgres ... hago pg_dumps de cada una de las BD que tengo en el servidor.

He visto que con pg_dumpall y la opción -g puedes solo hacer el backup de los roles y tablesspaces pero no aparecen los creates databases por ningún lado.

Tampoco aparecen en los dumps de las distintas BD que hago con pg_dump.

Como puedo tener un .sql por un lado con los CREATE TABLES de las tablas, los usuarios y los CREATE DATABASES para que simplemente sea hacer un psql -U ... < backup.sql y pueda restaurar la BD con toda la información y metainformación necesaria.

Un saludo,



El 04/09/2011, a las 02:58, Rene Romero Benavides escribió:

Claro, tendrías que cambiar "page_parts" por el nombre de la tabla dónde se está presentando el error =-P.

El 03/09/11 19:55, Rene Romero Benavides escribió:
Hola Alvaro, lo que propone en el foro que encontraste es que primero veas cuantos registros tiene la tabla page_parts.

select count(*) from page_parts

en el caso particular de quien propone la solución son 514 registros (número al que llamaremos numRegs)

Con base a ese número creas un script como este
-----------------------------------

#!/bin/bash

|for ((i=0; i<numRegs; i++ )); do psql -U postgres nombreBaseDatos -c "SELECT * FROM page_parts LIMIT 1 offset $i" >/dev/null || echo $i; done
|

|-------------------------------
|

|en dónde reemplazarás numRegs por el resultado del count.
|

|Cuando lo ejecutes te arrojará algo como lo siguiente:
|

|ERROR: missing chunk number 0 for toast value 43712886 in pg_toast_16418
433
|

|dónde el 433 (en este caso particular) es el número del registro dónde se presentó el error, mismo que deberás eliminar ya que presumiblemente es un registro corrupto.
|



El 03/09/11 12:52, Alvaro Ramiro Benavides escribió:
 missing chunk number




Responder a