Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что делать если таблица умера физически? / 8 сообщений из 8, страница 1 из 1
26.12.2006, 17:28
    #34225887
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
Представим ситуацию (на самом деле вот только что и произошла :( )
Есть база, живая и здоровая. И тут на винте появляется bad-sector.
Постгрес на это дело реагирует просто, сообщает весело о ошибке чтения какого-то отношения с
веселым коментарием "Input/output error."
"Поднять" базу из "вчерашнего" дампа - не всегда выход. Во первых умера всего одна таблица, а во вторых "вчерашний" может быть слишком давно.
Соответсвенно стоит вопрос "Что делать?".

ЗЫ Я сделал просто - "fsck -Cc /dev/hdc1" после чего файла с таблицей не оказалаось в живых, затем "DROP TABLE / CREATE TABLE". Благо данные были неважные. Но, что делать если данные для пользователя важны?
...
Рейтинг: 0 / 0
26.12.2006, 17:36
    #34225907
mozheyko_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
А что Вы делаете если на bad block'е оказался важный файл Excel?
...
Рейтинг: 0 / 0
26.12.2006, 18:37
    #34226066
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
mozheyko_dА что Вы делаете если на bad block'е оказался важный файл Excel?
У меня таких нет, они лежат в репозитории. :)
Но вопрос не является претензией к СУБД, и тем более к конкретной СУБД.
Для битых файлов/сидуков и т.д. есть утилиты которые вытаскивают максимально возможное количество информации на основе оставшихся данных, с естественным предупреждение что "ой, все плохо". Может быть есть похожие методологии для юниха/постгреса?
...
Рейтинг: 0 / 0
26.12.2006, 18:50
    #34226092
ездун
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
Для умирающих дисков обычно делают dd -if... -of... на какой-нить диск. Дальше монтируют имидж и смотрят - что осталось. Наверно, что-то в этом роде. У Постгреса таблицы - файлы.
...
Рейтинг: 0 / 0
26.12.2006, 19:03
    #34226116
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
дампится чаще, репликации и т.д.
в восьмерке куча всяких вкусностей на эту тему(дампы всякие).
...
Рейтинг: 0 / 0
26.12.2006, 22:12
    #34226406
mozheyko_d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
Я и имел ввиду что методы стандартные, как для любой файловой системы.
Насчет "предохранения" от такой ситуации: зеркало, если винт один Solaris ZFS.
...
Рейтинг: 0 / 0
27.12.2006, 08:07
    #34226669
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
Andrey Daeron"Поднять" базу из "вчерашнего" дампа - не всегда выход. Во первых умера всего одна таблица, а во вторых "вчерашний" может быть слишком давно.
Соответсвенно стоит вопрос "Что делать?".
Но, что делать если данные для пользователя важны?

Постгрес какой версии? Взять во-первых не ниже 8-ки
Во-вторых, это стандартная задача для всех БД. Решается обычно 'правильным' размещением структур БД на дисках.
Файлы с данными БД - на отдельном диске(ах), журналы транзакций(WAL в постгрес) - тоже на отдельном диске, не совпадающем с файлами данных, ну и ежедневный бэкап(тоже на отдельный диск). Т е как минимум нужны 3 диска. В *х такое размещение не проблема для постгрес(linkи), а вот в форточках WAL вынести на отдельный диск наверное не такая уж простая задача.
читать тут как накатывать по журналам БД на момент возникновения проблем с таблицей
...
Рейтинг: 0 / 0
27.12.2006, 19:26
    #34228962
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что делать если таблица умера физически?
Что-то большинство советов дают ответ "нужно было предохраняться", что является ответом на несколько другой вопрос.
И так. Есть бекапы, есть WAL, есть еще куча всего. Это все хорошо. Если настроено заранее.
Но вопрос на "Что делать, если посыпалась таблица?" они не отвечают.

Попробую просуммировать топик:
1. Если есть настроенный Continuous Archiving , то все просто все данные есть в WAL и следуя инструкции все восстановится.
2. Если его нет - то токмо восстановление БД из последнего бекапа, и все новые данные - в топку.

Из своих предложений - попробовать вытащить новые записи из таблицы с помощью SELECT ... LIMIT OFFSET в другую таблицу, ну а проблемы ссылочной или другой целостности - это уж от структуры БД зависит.

Ну и естественно "для избежания... настоятельно... крайне необходимо... " и т.д.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что делать если таблица умера физически? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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