Cuando comencé, usé pg_dump
con el formato plano predeterminado. Yo no estaba iluminado.PostgreSQL: mejorando pg_dump, pg_restore performance
La investigación me reveló mejoras de tamaño de archivo y tiempo con pg_dump -Fc | gzip -9 -c > dumpfile.gz
. Estaba iluminado.
Cuando llegó el momento de crear la base de datos de nuevo,
# create tablespace dbname location '/SAN/dbname';
# create database dbname tablespace dbname;
# alter database dbname set temp_tablespaces = dbname;
% gunzip dumpfile.gz # to evaluate restore time without a piped uncompression
% pg_restore -d dbname dumpfile # into a new, empty database defined above
me sentí no iluminada: la restauración se tomó 12 horas para crear la base de datos que es sólo una fracción de lo que se convertirá en:
# select pg_size_pretty(pg_database_size('dbname'));
47 GB
Como hay predicciones de que esta base de datos será de unos pocos terabytes, necesito ver ahora cómo mejorar el rendimiento.
Por favor, ilumíname.
Si tiene un esclavo conectado, y la carga en el maestro ya es considerable, entonces quizás quiera hacer la copia de seguridad en el esclavo. Especialmente dado que el esclavo es de solo lectura, imagino que también puede ayudar en cierto grado. En un clúster grande, puede ser útil tener uno o más esclavos dedicados a copias de seguridad escalonadas si las copias de seguridad tardan mucho tiempo. Para que no te pierdas nada, querrás que estos recursos en espera estén conectados a través de la replicación de transmisión para que se escriban desde el WAL en el maestro. –
'shared_buffers debería estar configurado correctamente' ¿qué significa eso? –