Восстановление удаленной или поврежденной таблицы

Предположим, что некая таблица удалена или повреждена. Причи­ной могли послужить повреждение диска или некорректные удале­ния и изменения с потерей важных данных. Обычно проблема решается путем восстановления из резервной копии. В версии 9.1 планировалось добавить возможность приостанавливать и возобновлять или прекращать восстановление, а также менять цель восстановления динамически при работающем сервере. Это позволит с большим удобством определять нужную точку завершения восста­новления с помощью режима горячего резервирования. Иногда полезно с помощью режима горячего резервирования до­биться остановки восстановления. Читайте раздел, описывающий управление режимом горячего резервирования.
Есть разные способы действий — выбор зависит от того, какого типа резервные копии есть в наличии. Если существуют резервные копии разных типов, возможны варианты. Логическое.
Если вы выполнили логическое резервное копирование с помо­щью утилиты Pg_dump В файл произвольного формата, можно просто извлечь нужную таблицу из файла дампа следующим образом: Pg_restore — t mydroppedtable dumpfile I psql Или соединиться с базой данных напрямую, используя опцию — а. Приведенная команда пытается создать заново таблицу и запол­нить ее данными. Заметьте, что pg_restore с опцией -t не извлекает из дампа индексы для таблицы. Это значит, что понадобится немного более сложная процедура, которая зависит от того, восстанавливаем ли мы поврежденную или удаленную таблицу. Чтобы исправить поврежденную таблицу, надо заместить данные в ней в течение одной транзакции. Специальной опции для этой цели нет, поэтому надо выполнить следующее: Теперь воссоздайте таблицу на целевом сервере. Это можно сделать удаленно, не копируя дамп между серверами: Pg.Restore — d mydatabase — j 2 dumpfile
Единственный способ извлечь единственную таблицу из скрип­тового файла без восстановления всего остального содержимого — написать программу, извлекающую из скрипта только нужные нам части. Этими частями могут быть команды set где-нибудь в начале файла, данные могут быть в середине, а индексы и ограничения для таблицы — в конце скрипта. Такой способ сложен, в то время как пред­ложенный выше вполне безопасен.



Рубрика: Женский интерес

27.08.2016