Hallo, Michelle,

On Tue, 21 Jan 2003 18:17:06 +0200

Michelle Konzack <[EMAIL PROTECTED]> wrote:

[...]
> Die Frage ist, wie soll ich die zusaetzliche Tabelle vernuenftig
> anlegen ? 
> 
> Einfach zwei Spalten (Tabelle + 0|1-Flag) ??? 
> 
[...]

Entschuldige bitte die verz�gerte Antwort: Ich bin ein paar Tage nicht
an meine Mails gekommen.

Zur Tabelle f�r die Tabellennamen:
Du willst f�r eine inkrementelle Datensicherung den �berblick behalten,
welche Tabellen innerhalb eines bestimmten Zeitraums ver�ndert wurden.
Daf�r reicht es aus, die Tabellennamen zu kennen, also gen�gt eine
Tabelle mit einer einzigen Spalte, sagen wir, die heisst _modifiziert_.

Anlegen mit psql:
        CREATE TABLE _modifiziert_ ( tab_name VARCHAR(40) NOT NULL );

Wenn Du willst, kannst Du dir noch einen Zeitstempel eintragen lassen,
ich glaube, das geht mit TIMESTAMP - hab' ich aber noch nicht probiert.

Ein extra Flag ist nicht n�tig, denn in der Tabelle sind nur
modifizierte Tabellen verzeichnet: Bei jeder Aktion, die Inhalte in der
Datenbank ver�ndern, den Tabellennamen speichern mit    INSERT INTO
_modifiziert_ ( tab_name ) VALUES ( $tabellenname ); 
F�r die Sicherung die Namen aus der Tabelle auslesen mit
        SELECT DISTINCT * FROM _modifiziert_;

Das DISTINCT bewirkt, das mehrfache Eintr�ge nur einmal im Ergebnis
erscheinen. Ich w�rde die Ausgabe in eine Datei schreiben und mit dieser
Datei ein Skript f�ttern, dass die Tabellen mit pg_dump (siehe meine
erste Mail) sichert.

Nach dem Backup muss _modifiziert_ wieder leer sein:
        DELETE FROM _modifiziert_;
l�scht alle Eintr�ge.

Tabellen mit OID? Als bin�res Objekt??? Warum? Interessant ist am Ende
doch nur, was in der Tabelle drinsteht und nicht der Verwaltungskram
drumrum, den Du dann mitschleppen musst...

Apropos Verwaltungskram: Der f�llt weg, wenn Du die Datenbank mit
pg_dump sicherst. Es k�nnte sein, dass Dein Backup kleiner ausf�llt als
die 80GB. W�r' vielleicht einen Versuch wert.(Ich habe hier eine
Datenbank, die auf dem Rechner etwas �ber 100MB belegt - keine
Optimierung gemacht, Indizees sind nicht angelegt - die Nutzdaten sind
ungef�hr 15MB gross.)

Zu Deiner anderen Mail:
Die komplette Datenbank solltest Du mit pg_dump bzw. pg_dumpall sichern.
(Vielleicht hast Du ja Gl�ck und alles passt auf eine CD... s.o.)

Mir f�llt noch ein: 
Falls in der Datenbank viel gel�scht wird, musst Du Dir mal VACUUM
ansehen. PostgreSQL l�scht Daten nicht unmittelbar, sondern markiert sie
nur als gel�scht. Mit VACUUM kriegst Du sie wohl los. (Hab' ich aber
auch nur nachgelesen, noch nicht probiert...)

Gruss

Peter


-- 
H�ufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an