
11.11.2008, 12:08
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Сообщение от [Raz0r]
Зачем все так усложнять? Ты ведь pg_dump по крону выполняешь? Хотя если ты и вручную делаешь бэкап, то гораздо легче после завершения создания архива выполнять SQL-команды для удаления ненужных записей, т.е. сначала выполняешь pg_dump, а потом команду:
echo "truncate table tablename;" | psql database -q -t
http://www.postgresql.org/docs/7.4/static/app-psql.html
Этот способ был был хорош в случае с одной таблицей и добавлением 1 записи в минуту. В моей базе около 30 таблиц, и за секунду она увеличивается на несколько сотен записей.
То есть если сделать как ты предлагаешь, на момент запуска pg_dump.exe база будет содержать например 1000000 записей - 1000000 заархивируется, а когда после завершения работы я буду чистить таблицы, они будут содержать 1000253 записи => 253 записи будут утеряны.
Следовательно я вижу такой вариант: программа записала sql команду по вставке строки в дамп - строку удалила и т.д.
|
|
|