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)