Ankündigung

Einklappen
Keine Ankündigung bisher.

postgresql Datenbank wiederherstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • postgresql Datenbank wiederherstellen

    Hi,

    habe unter Linux(Debian) wie folgt eine Datensicherung, die per cron aufgerufen wird:
    Code:
    #!/bin/sh
    su postgres -c pg_dump erste > ~picky/backups/psql/$(date +%Y-%m-%d)' 'erste.sql
    su postgres -c pg_dumpall > ~picky/backups/psql/$(date +%Y-%m-%d)' 'allDB.sql
    Leider enthält die Sicherung "erste.sql" nur die Struktur und keine Daten bzw. jenen Inhalt:
    Code:
    --
    -- PostgreSQL database dump
    --
    
    SET client_encoding = 'UTF8';
    SET standard_conforming_strings = off;
    SET check_function_bodies = false;
    SET client_min_messages = warning;
    SET escape_string_warning = off;
    
    --
    -- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: postgres
    --
    
    CREATE PROCEDURAL LANGUAGE plpgsql;
    
    
    ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO postgres;
    
    --
    -- Name: public; Type: ACL; Schema: -; Owner: postgres
    --
    
    REVOKE ALL ON SCHEMA public FROM PUBLIC;
    REVOKE ALL ON SCHEMA public FROM postgres;
    GRANT ALL ON SCHEMA public TO postgres;
    GRANT ALL ON SCHEMA public TO PUBLIC;
    
    
    --
    -- PostgreSQL database dump complete
    --
    Wieso auch immer?

    Die Sicherung "allDB.sql enthält alle Datenbanken und die benötigten Daten, jedoch wird hier nur die Datenbank "erste.sql" und zweite.sql" benötigt. Wie kann ich aus dieser Sicherung die 2 Datenbanken wiederherstellen?

    Weitere Frage: Mit der Zeit füllt sich das Sicherungs-Verzeichnis (nach oben genannten Datensicherung-Methode), geht dies auch in gepackter Form, wie würdet hier dies machen?

    Gruß picky


  • #2
    Zitat von picky Beitrag anzeigen
    Wieso auch immer?
    erste Vermutung: weil nicht mehr drin war in der DB. Zumindest zum Zeitpunkt der Erstellung des Dumps.

    Die Sicherung "allDB.sql enthält alle Datenbanken und die benötigten Daten, jedoch wird hier nur die Datenbank "erste.sql" und zweite.sql" benötigt. Wie kann ich aus dieser Sicherung die 2 Datenbanken wiederherstellen?
    Wenn Du, wie Du es machst, im Plain-ASCII-Format dumpst, geht das einfach: mit einem Editor.

    Noch einfacher ginge es, wenn Du Dir die Doku zu pg_dump durchliest und auf -Fc achtest. Dann mußt Du zwar je DB einen Dump machen (was aber kein Problem ist), kannst dann aber einzelne Objekte rücksichern, und zwar mit pg_restore. In dem Falle solltest Du Dir aber auch pg_dumpall und die Option -g ansehen.

    Weitere Frage: Mit der Zeit füllt sich das Sicherungs-Verzeichnis (nach oben genannten Datensicherung-Methode), geht dies auch in gepackter Form, wie würdet hier dies machen?

    Gruß picky
    Die Doku zu pg_dump zeigt Dir auch die Optionen zur Kompression bzw. beachte -Fc. Handling der angefallenen Dumps (löschen nach N tagen) ist nicht Aufgabe der DB, sondern des Admins.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Hi, danke. Hoffte zwar auf "mach das so" um mir Frischling schnell zu helfen.

      Dann suche ich mal eine gutes HowTo bzw. die Doku zu pg_dump, evtl. finde ich dies Dank der Angabe der Optionen -g und -Fc. Was ich noch nicht verstehe:
      mit dem Editor
      .

      erste Vermutung: weil nicht mehr drin war in der DB. Zumindest zum Zeitpunkt der Erstellung des Dumps.
      nee kann nicht sein wurde relativ zeitgleich wie pg_dumpall gemacht.

      Gruß picky

      Kommentar


      • #4
        Zitat von picky Beitrag anzeigen
        Hi, danke. Hoffte zwar auf "mach das so" um mir Frischling schnell zu helfen.
        Der Dump ist einfacher Text. Du kannst Teile davon ausschneiden & Speichern. Dazu kann man einen Editor nehmen. Oder Tools wie sed, awk, ...
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Ok, habe nun etwas Zeit, bin auf der suche nach einer Deutschen Doku zu dem oben angesprochenem, google listet jede Menge, kannst du mir eine Empfehlung senden?

          Kommentar


          • #6
            Zitat von picky Beitrag anzeigen
            Ok, habe nun etwas Zeit, bin auf der suche nach einer Deutschen Doku zu dem oben angesprochenem, google listet jede Menge, kannst du mir eine Empfehlung senden?
            Google mit "postgresql deutsche dokumentation"?

            Es gibt eine mehr oder weniger aktuelle Bücher, an einem hab ich auch mitgewirkt. Aber die originale Doku finde ich auch gut.

            Was als Dump-Verfahren IMHO gut geht: jede DB einzeln mit pg_dump und -Fc sowie extra ein pg_dumpall, aber nur die globalen Objekte (User). Durch das -Fc kann man beim Restore dann z.B. einzelne Objekte includen oder excluden oder den restore auf N Prozesse verteilen, was die Restorezeit deutlich verkürzen kann.
            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

            Kommentar

            Lädt...
            X