Kopieren einer postgres-Datenbank von einem server zum anderen

Ich habe eine postgres-Datenbank mit einer Reihe von Schemata und eine Reihe von Tabellen innerhalb des schemas, und die Tabellen haben eine Reihe von Fremdschlüssel-Beziehungen miteinander. Alles was ich will zu tun ist, kopieren Sie alles von einem server auf einen anderen, im wesentlichen erstellen Sie eine Kopie des ersten Servers. An diesem Punkt, ich don ' T Pflege wenn ich habe zu klopfen entweder oder beide Server komplett aus der Kommission während ich dies Tue.

Ich kann nicht herausfinden, ein Weg, um kopieren Sie einfach alles in der ersten Datenbank direkt in die zweite Datenbank. Ich habe versucht pg_dump und pg_restore aber die Wiederherstellung verletzt ein Bündel von außen-Zwänge, und daher nicht richtig wiederhergestellt. Ich habe gelesen, dass Sie nur Daten wiederherstellen, die beseitigt werden alle Daten, deaktivieren Sie die Einschränkungen, während die Daten geladen werden, und dann aktivieren Sie die Einschränkungen, wenn die Daten geladen wurden, aber dies setzt Voraus, die Quell-und die Ziel-Datenbank mit der gleichen Tabellenstruktur, was Sie nicht können. Wenn es einen Weg-dump, nur das schema und die Daten, ich könnte mir vorstellen, dass das funktionieren würde, aber ich habe nicht gefunden, einen Weg, um zu tun, dass entweder.

  • Sie wollen wahrscheinlich verwenden Sie einen binären dump. Wenn das immer noch nicht für Sie arbeiten (sollte), können Sie kopieren die Daten-Dateien mit "hot-standby" - Modus. Finden Sie in den Abschnitten 24.2 und 25 des PostgreSQL Administrator ' s Guide.
  • haben Sie versucht, die Einstellung Einschränkungen zu zurückstellbaren Modus zu vermeiden, die fremden Einschränkungen Verletzung?
  • Das ist nicht ein "binärer dump", btw, ist das nur eine Kopie der gesamten PostgreSQL-Installation. (Ich würde erwarten, dass ein "Binär-dump" zu sein, etwas, das noch getan werden, mit pg_dump schreiben Binär statt text-Datei, die Daten für COPY. Es dauerte eine Weile, um herauszufinden, was du gemeint). Sie müssen auch nicht die Verwendung von hot-standby, das ist ganz getrennt. Sie möchten pg_basebackup -X stream oder wenn Sie bekommen Lust, WAL-Archivierung und -pg_start_backup(), rsync, pg_stop_backup().
  • Insbesondere fehlt aus dieser Frage sind Fehlermeldungen, die genauen Befehle, die Sie lief, die PostgreSQL-version(s) in Verwendung, etc.
  • Sorry, ich hätte klarer - es gibt zwei Dinge, die ich Vorschlage. Die eine ist die binäre pg_dump mit "custom" - format (Option-c), die andere ist die Datei basierte Kopie. Im letzteren Fall, durch die Art und Weise, die Sie nicht kopieren Sie die gesamte installation, nur eine Teilmenge der Daten-Dateien. Das Zitat gab ich details.
  • Wenn Sie nicht kopieren Sie die gesamte Installation mit einem basebackup Ansatz dann bekommst du eine unbrauchbare DB. Können Sie ausschließen pg_xlog nur, wenn Sie haben WAL-achiving aktiviert. Das ist es. Man kann sicherlich nicht nur das kopieren einer Datenbank, zum Beispiel.

InformationsquelleAutor zelinka | 2015-05-05
Schreibe einen Kommentar