powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Просмотр удаленных записей таблицы
22 сообщений из 22, страница 1 из 1
Просмотр удаленных записей таблицы
    #34586984
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как просмотреть удаленные записи в таблице. Или может можно как то вернуть состояние базы на определенное время назад (до выполнения операции удаления). По теории то вроде все можно, но я в Postgres новичек и не знаю как это сделать практически.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587138
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удаленные записи - удалены. Это вам не dbf...

Интересно было бы увидеть эту теорию, по которой можно, может я чего не знаю....
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587141
GreyCardinal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант только делать поле состояния записи и им рулить
я так буду делать ;)
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587145
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pamirудаленные записи - удалены. Это вам не dbf...

Интересно было бы увидеть эту теорию, по которой можно, может я чего не знаю....

mojet avtor imel v vidu ROLLBACK?
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587186
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейК pamirудаленные записи - удалены. Это вам не dbf...

Интересно было бы увидеть эту теорию, по которой можно, может я чего не знаю....

mojet avtor imel v vidu ROLLBACK?ну, если он это имел ввиду, надо было конкретизировать.... Ждем автора.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587208
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Транзакция точно заврешилась. Но я читал на форумах что можно 1) вернуть базу в состояние на какой то момент времени если есть файлы в data\pg_xlog и не выполнялся VACUUM 2)Логично предположить что это как том можно выгрести запросом (я полагаю через системные колонки), но знаний не хватает что бы сделать это практически
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587247
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первый вывод я сделал и стандартного халпа 23.3.3. Recovering with an On-line Backup (у меня релиз 8.1.5). Но я делаю вроде как написано, но почуму то восстановление на определенный момент времени не происходит.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587424
Nikolay Samokhvalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Судя по всему, то, о чём идёт речь, близко по смыслу фиче "time travel", родная поддержка которой была давным-давно удалена из Постгреса (обсуждения легко найти в архивах рассылки -hackers).

Сейчас можно рекомендовать реализовывать подобные штуки на уровне приложения: см., например, статью на Varlena: http://www.varlena.com/GeneralBits/122.php . Другой способ -- воспользоваться модулем hstore (решение нигде не описано, но извернуться можно).
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34587427
Nikolay Samokhvalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vovaspec2000Первый вывод я сделал и стандартного халпа 23.3.3. Recovering with an On-line Backup (у меня релиз 8.1.5). Но я делаю вроде как написано, но почуму то восстановление на определенный момент времени не происходит.

А, о :-)
Теперь ясно, о чём идёт речь -- о PITR. Если есть возможность, советую перейти к использованию ветки 8.2, т.к. в 8.1 эта функциональность была сыровата.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34588133
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nikolay Samokhvalov
Сейчас можно рекомендовать реализовывать подобные штуки на уровне приложения: см., например, статью на Varlena: http://www.varlena.com/GeneralBits/122.php . Другой способ -- воспользоваться модулем hstore (решение нигде не описано, но извернуться можно).
Нужно ли заранее что то готовить для реализации этой штуки? Если да то у меня ситуация похуже, я заранее ничего непоготовил и у меня пропало 10000 записей. Из бекапа я смогу востановить часть, но не все и эта часть, которая потеряна очень важная информация.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34588136
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nikolay Samokhvalov
Теперь ясно, о чём идёт речь -- о PITR. Если есть возможность, советую перейти к использованию ветки 8.2, т.к. в 8.1 эта функциональность была сыровата.
Я это делать практически в стандартном хелпе не очень понятно что куда ложить. У меня есть все транзакционные блоки за день в котором пропала инфа. И я обязятельно перейду на 8.2, но к сожалению у меня эта ситуация возникла в версии 8.1.5. Может все таки есть какой то шанс что оно не очень плохо работает.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34588514
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
Для того, чтобы использовать PITR, нужно иметь base backup и серию архивных WAL-файлов, синхронизированную с ним, чего вы не имеете, насколько я понимаю. Поэтому о PITR-е в данном случае можно забыть.

Другое дело, что да, в PostgreSQL есть возможность до VACUUM-а (ну и при отключенном автовакууме, разумеется) извлечь все версии всех измененных рядов, поскольку туплы в постгресе не удаляются, а просто метятся xid-ом транзакции, которая их убила. Так что ни в коем случае не делайте сейчас VACUUM и сразу сделайте backup всей директории PGDATA! Для того, чтобы понять, что произошло с данными и попытаться их вытащить можно поиграться с проектом xlogviewer, его можно найти на PgFoundry. Кажется, есть еще другие подобные средства помимо HEX-редактора, если вспомню -- напишу.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34589004
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
izДля того, чтобы понять, что произошло с данными и попытаться их вытащить можно поиграться с проектом xlogviewer, его можно найти на PgFoundry.
Попробую усановить xlogviewer, на другом компе под Линухом (у меня база в PostgreSQL под Виндой).
А если в таблице эти записи метятся версиями транзакций, то почему нельзья простым запросом их вытащить?
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34589124
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izДля того, чтобы использовать PITR, нужно иметь base backup и серию архивных WAL-файлов, синхронизированную с ним, чего вы не имеете, насколько я понимаю. Поэтому о PITR-е в данном случае можно забыть.

Хм. ИМХО не совсем верно, серия архивных WALов нужна только если нужно откатиться дальше чем есть в текущих WAL'ах. На небольшую транзакцию назад можно откатиться и так.
1. Ессно перед любыми действиями - полный физический бекап (копия) директории с данными.
2. Все таки сделать откат.
http://www.postgresql.org/docs/8.1/interactive/backup-online.html
23.3.3.1. Recovery Settings

Вроде у меня получалось на 8.1 такое делать.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34589130
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
vovaspec2000
А если в таблице эти записи метятся версиями транзакций, то почему нельзья простым запросом их вытащить?

потому что это внутреннее представление, а не SQL-представление. то есть в ваших таблицах не появляются дополнительные колонки, чтобы вы могли написать SELECT ... WHERE xid_end < delete_xact_id, вся работа с версиями спрятана внутри.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34589867
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже нужно перенести под Линух, причем на файловом уровне. У кого то есть опыт? Какие есть особенности, если это реально, вообще.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34589930
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovaspec2000Похоже нужно перенести под Линух, причем на файловом уровне. У кого то есть опыт? Какие есть особенности, если это реально, вообще.
Шо? Зачем???

Для PITR - атлично вінь32 падходит!
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34598996
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делаю конфигурационный файл:
restore_command = 'copy d:\temp\%f "%p"' # Windows
#recovery_target_time= '2007-06-07 14:40:00' # Time
В "d:\temp" ложу файлы из папки pg_xlog, a pg_xlog - очищаю.
Запускаю службу, смотрю логи:
2007-06-08 16:16:48 LOG: database system was shut down at 2007-06-08 16:16:47 FLE Daylight Time
2007-06-08 16:16:48 LOG: starting archive recovery
2007-06-08 16:16:48 LOG: restore_command = "copy d:\temp\%f "%p""
2007-06-08 16:16:48 LOG: recovery_target_time = 2007-06-07 14:00:00+03
2007-06-08 16:16:49 LOG: restored log file "00000001000000000000009F" from archive
2007-06-08 16:16:49 LOG: invalid resource manager ID in primary checkpoint record
2007-06-08 16:16:49 LOG: using previous checkpoint record at 0/9FB3E910
2007-06-08 16:16:49 LOG: redo record is at 0/9FB3E910; undo record is at 0/0; shutdown TRUE
2007-06-08 16:16:49 LOG: next transaction ID: 3017927; next OID: 155259
2007-06-08 16:16:49 LOG: next MultiXactId: 1; next MultiXactOffset: 0
2007-06-08 16:16:49 LOG: automatic recovery in progress
2007-06-08 16:16:49 LOG: redo starts at 0/9FB3E958
2007-06-08 16:16:49 LOG: record with zero length at 0/9FB3EA58
2007-06-08 16:16:49 LOG: redo done at 0/9FB3EA10
2007-06-08 16:16:49 LOG: restored log file "00000001000000000000009F" from archive
2007-06-08 16:16:49 LOG: archive recovery complete
2007-06-08 16:16:49 LOG: database system is ready
2007-06-08 16:16:49 LOG: transaction ID wrap limit is 2147484148, limited by database "postgres"
2007-06-08 16:18:44 LOG: received fast shutdown request
2007-06-08 16:18:44 LOG: shutting down
2007-06-08 16:18:44 LOG: database system is shut down
2007-06-08 16:18:44 LOG: logger shutting down

Он при любом параметре времени, обращается к файлу "00000001000000000000009F", хотя их за день 5 шт по 16 метров.
Может я что-то не так далаю
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34599644
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
Вы правильно сделали базовый бэкап командой SELECT pg_start_backup('label') на базе, которая сгенирировала логи, которые вы пытаетесь сейчас восстановить?

Опишите _полную_ последовательность действий, которую вы делаете при попытке сделать point in time recovery, иначе сложно понять ваши проблемы.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34599656
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
izВы правильно сделали базовый бэкап командой SELECT pg_start_backup('label') на базе, которая сгенирировала логи, которые вы пытаетесь сейчас восстановить?
Я логи не делал самостоятельно. Насколько я понял система их делает сама - это содержимое папки pg_xlog. Когда я обнаружил удаление записей таблицы я проверил папку - за текущий день есть 5 файлов по 16 метров.

izОпишите _полную_ последовательность действий, которую вы делаете при попытке сделать point in time recovery, иначе сложно понять ваши проблемы.
1) Беру текущую базу (с удуленными записями)
2) Пишу конфигурационный файлик для восстановления, напр. (recovery_target_time= '2007-06-07 14:40:00' restore_command = 'copy d:\temp\%f "%p"' # Windows)
3) В папку d:\temp\ перемещаю файлы из "\data\pg_xlog"
4)Запускаю службу Постгреса.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34599666
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
vovaspec2000 izВы правильно сделали базовый бэкап командой SELECT pg_start_backup('label') на базе, которая сгенирировала логи, которые вы пытаетесь сейчас восстановить?
Я логи не делал самостоятельно. Насколько я понял система их делает сама - это содержимое папки pg_xlog. Когда я обнаружил удаление записей таблицы я проверил папку - за текущий день есть 5 файлов по 16 метров.

izОпишите _полную_ последовательность действий, которую вы делаете при попытке сделать point in time recovery, иначе сложно понять ваши проблемы.
1) Беру текущую базу (с удуленными записями)
2) Пишу конфигурационный файлик для восстановления, напр. (recovery_target_time= '2007-06-07 14:40:00' restore_command = 'copy d:\temp\%f "%p"' # Windows)
3) В папку d:\temp\ перемещаю файлы из "\data\pg_xlog"
4)Запускаю службу Постгреса.

Вы плохо читаете предыдущие сообщения. То, что вы сейчас делаете -- PITR, point in time recovery, -- может быть сделан _только_ при условии, что у вас существует базовый бекап -- то есть бекап той базы, на которой был сделан злополучный DELETE. Этот бекап нужно было делать предусмотрительно до DELETE с помощью специальной команды pg_start_backup('label'). Вы его не имеете, так что все, что вы сейчас пытаетесь сделать -- бесполезно и ни к какому результату не приведет.

Как я уже говорил выше, вас может спасти только xlogviewer и схожие проекты.
...
Рейтинг: 0 / 0
Просмотр удаленных записей таблицы
    #34602654
vovaspec2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У кого есть опыт перевода базы Постгреса под Линух на файловом уровне, поделитесь.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Просмотр удаленных записей таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]