[Pgsql-ayuda] Velocidad del restore

Manuel Sugawara masm@fciencias.unam.mx
30 Sep 2003 18:19:33 -0600


"Edwin Quijada" <listas_quijada@hotmail.com> writes:

> La verdad no es q se atora pero casi duro un dia haciendo uno
> Tenia 1.2gb el pg_dumpall que hice

Yo tenia problemas semejantes y lo que hice fue hacer un horrorso
script que basicamente lo que hace es:

 1) vacia el esquema excepto los =EDndices con grep -v, lo cual
desgraciadamente no me sirve para las restricciones de llave primaria
o de valores =FAnicos (unique)

 2) vacia los datos con la opci=F3n --disable-triggers

 3) vacia los =EDndices al final.

El c=F3digo fuente reza m=E1s o menos as=ED:

'----------------------------------------
|#!/bin/zsh -f
|
|echo -n "vaciando esquema ...."
|pg_dump --schema-only --use-set-session-authorization $DB | egrep -v '^CRE=
ATE (UNIQUE )?INDEX' >! ${DB}.txt
|echo "listo"
|
|echo -n "vaciando datos ...."
|pg_dump --data-only --use-set-session-authorization --disable-triggers $DB=
 >> ${DB}.txt
|echo "listo"
|
|echo -n "vaciando inidices ...."
|pg_dump --schema-only --use-set-session-authorization $DB | egrep '^(SET s=
earch_path|CREATE (UNIQUE )?INDEX)' >> ${DB}.txt
|echo "listo"
`----------------------------------------

El dump as=ED generado se puede cargar bastante m=E1s r=E1pido, pero esto en
particular funciona en mi caso ya que tengo muchas llaves for=E1neas e
=EDndices. Intenta usarlo y nos comentas, para una soluci=F3n m=E1s general
habr=EDa que trabajarle un tanto al pg_dump lo cual esta en alguna parte
de mi TODO.

> No hay una forma de sacar un backup como un copy normal y hacer el restore
> de la misma forma. SOlo haciedno copias. El pg_dump no puede hacer algo
> asi??

No creo.

> Que pasa si copia la base de datos con ella en uso?

Mala idea.

Saludos,
Manuel.