ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Нужно дописать запрос в pg_dump.exe
  #1  
Старый 11.11.2008, 11:03
Аватар для prescott
prescott
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме:
728470

Репутация: 115
По умолчанию Нужно дописать запрос в pg_dump.exe

В реверсинге я ноль, поэтому прошу помощи.

Есть консольная утилита pg_dump.exe (поставляется вместе с PostgreSQL сервером). Она создает архив базы данных. Нужно дописать туда запрос для удаления архивированных записей. Смысл в том, что база увеличивается на 5 гигов в день, нужно чтобы утилита делала архив, и все заархивированные записи удаляла из базы.

Думаю дело пяти минут, особенно для тех, кто работал с постгрес. Кто сделает с меня много плюсафф.
 
Ответить с цитированием

  #2  
Старый 11.11.2008, 11:09
Аватар для prescott
prescott
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме:
728470

Репутация: 115
По умолчанию

_http://depositfiles.com/files/zsvtlhmg1

Собственно сама прога у кого нет
 
Ответить с цитированием

  #3  
Старый 11.11.2008, 11:26
Аватар для [Raz0r]
[Raz0r]
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме:
3244717

Репутация: 1980
Отправить сообщение для [Raz0r] с помощью ICQ
По умолчанию

Зачем все так усложнять? Ты ведь pg_dump по крону выполняешь? Хотя если ты и вручную делаешь бэкап, то гораздо легче после завершения создания архива выполнять SQL-команды для удаления ненужных записей, т.е. сначала выполняешь pg_dump, а потом команду:
echo "truncate table tablename;" | psql database -q -t
http://www.postgresql.org/docs/7.4/static/app-psql.html

Последний раз редактировалось [Raz0r]; 11.11.2008 в 11:43..
 
Ответить с цитированием

  #4  
Старый 11.11.2008, 12:08
Аватар для prescott
prescott
Участник форума
Регистрация: 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 команду по вставке строки в дамп - строку удалила и т.д.
 
Ответить с цитированием

  #5  
Старый 11.11.2008, 12:19
Аватар для [Raz0r]
[Raz0r]
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме:
3244717

Репутация: 1980
Отправить сообщение для [Raz0r] с помощью ICQ
По умолчанию

Цитата:
То есть если сделать как ты предлагаешь, на момент запуска pg_dump.exe база будет содержать например 1000000 записей - 1000000 заархивируется, а когда после завершения работы я буду чистить таблицы, они будут содержать 1000253 записи => 253 записи будут утеряны.
тогда делай так: перед созданием архива получай количество записей в каждой таблице, затем выполняй pg_dump и по его завершении удаляй именно то число записей, которые имелось в таблице перед архивированием. Имхо задача решается небольшим sh-скриптом, где в массиве указаны все таблицы и в цикле для каждой выполняются три шага, описанных выше.
Примерно так:
Код:
count = $(echo "select count(*) from tablename;" | psql database -q -t);
# тут pg_dump
echo "delete from tablename limit $count;" | psql database -q -t;

Последний раз редактировалось [Raz0r]; 11.11.2008 в 12:23..
 
Ответить с цитированием

  #6  
Старый 11.11.2008, 12:23
Аватар для prescott
prescott
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме:
728470

Репутация: 115
По умолчанию

Видимо придется так и делать. Просто думал что дописать в экзешник команду будет быстрее...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно дописать скрипт Интеграции Dle+vBulletin zl0byte Разное - Покупка, продажа, обмен 1 20.04.2008 14:51
Нужно составить правильный запрос, для веб-формы (https) geograph Разное - Покупка, продажа, обмен 0 31.12.2007 13:09
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ