1

Temat: Archiwizacja rekordów z tabeli do tabeli

Witam,

Mam tabelę, nazwijmy ją tab1 oraz tab1_archive, obie posiadają identyczne kolumny. Co jakiś czas (np. raz dziennie) chciałbym, aby wszystkie rekordy z tab1 starsze niż np. 3 tygodnie były kopiowane do tab1_archive, a następnie usuwane z tab1.

W jaki, najprostszy sposób mógłbym to zrealizować?

2

Odp: Archiwizacja rekordów z tabeli do tabeli

Jeśli masz linuksa to napisz sobie skrypt który będzie przenosił dane z jednej tabeli do drugiej

#!/bin/bash

psql -c "insert into tab1_archive select * from tab1 where <warunek na rekordy starsze niz 3.>; delete from tab1 where <warunek na rekordy starsze niz 3.>" <nazwa bazy> -U <nazwa uzytkownika na którego prawach podłączasz się do bazy>

I zdefiniuj jego wywołanie w cron'ie.

Jesli masz windows to tez taki skrypt mozesz napisac i wywołac okresowo (samo polecenie "psql ...." będzie identyczne tylko #!/bin/bash musisz usunąć)

3

Odp: Archiwizacja rekordów z tabeli do tabeli

Dzięki za pomysł. A nie ma żadnego sposobu, żeby zrobić to z poziomu bazy?

4

Odp: Archiwizacja rekordów z tabeli do tabeli

5

Odp: Archiwizacja rekordów z tabeli do tabeli

Wiem o maintenance_work_mem ale to niczego nie zmieni gdy już brak miejsca na dysku prawda? Pozostaje chyba najpierw wymiana twardziela