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