Als ich anfing, habe ich pg_dump
mit dem Standard-Plain-Format verwendet. Ich war nicht erleuchtet.PostgreSQL: Verbesserung pg_dump, pg_restore Leistung
Forschung ergab mir Zeit und Dateigröße Verbesserungen mit pg_dump -Fc | gzip -9 -c > dumpfile.gz
. Ich war erleuchtet.
Als es Zeit war erneut die Datenbank zu erstellen,
# 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
Ich fühlte unaufgeklärten: die 12 Stunden dauerte Wiederherstellen der Datenbank zu erstellen, die nur ein Bruchteil dessen, was es werden wird:
# select pg_size_pretty(pg_database_size('dbname'));
47 GB
Da es Vorhersagen gibt, dass diese Datenbank ein paar Terabyte sein wird, muss ich jetzt die Performance verbessern.
Bitte, erleuchte mich.
Wenn Sie einen Slave angeschlossen haben und die Last auf dem Master bereits beträchtlich ist, dann sollten Sie stattdessen nur das Backup auf dem Slave durchführen. Zumal der Slave schreibgeschützt ist, kann ich mir vorstellen, dass das auch in gewissem Maße helfen kann. In einem großen Cluster kann es hilfreich sein, einen oder mehrere Slaves für gestaffelte Backups einzurichten, wenn die Backups sehr lange dauern. Damit Sie nichts verpassen, möchten Sie, dass diese Standby-Geräte über Streaming-Replikation verbunden sind, sodass sie von der WAL auf dem Master beschrieben werden. –
'shared_buffers sollte richtig eingestellt sein' was bedeutet das? –