Восстановление базы данных Postgresql

Автор: Рудюк С . А.
https://corp2.net

E-Mail: rs@corp2.net

Любая база данных выходит из строя… Пользователи забывают делать бекапы и как результат, программистам приходится возиться с восстановлением данных.
Ранее, я не однократно описывал восстановление баз данных Firebird (Interbase), но уже давно работаю с другими базами данных, поэтому, сталкиваюсь с “новыми задачами” по восстановлению информации.

Сегодня, ко мне обратился один старый клиент, у которого много лет работает база данных на Postgresql со вчерашнего дня у них стали выдаваться ошибки Page Error при входе в систему. Как результат – не возможность работы.
Зашел в PgAdmin, попробывал сделать бекап – вывались ошибки. Начал “передвигаться” по списку баз данных – вываливается огромное количество ошибок Page Error. Решили восстановить из бекапа. Как оказалось, последний бекап – за декабрь 2013 года. Пол-года пропало!
И тут меня осенило! Решил попробывать выполнить select. Проходит успешно, данные показывает без ошибки.
Ура! Подумал я себе.

Итак, как мне удалось восстановить базу без потери информации:
1. Создаю новую базу данных (с другим названием) из найденного бекапа (в данном случае, декабрь 2013г.). Проверяю входить в систему – всё отлично.
2. Сохраняю данные из каждой интересующей меня таблицы, подобными запросами:
copy (select * from zrp_zakaz ) to ‘d:\tmp\zrp_zakaz’;
3. Удаляю данные из необходимых таблиц в базе данных, которую восстановили. Например:
delete from zrp_zakaz;
4. Закачиваю данные из сохраненного файла в другой базе данных. Например:
copy zrp_zakaz from ‘d:\tmp\zrp_zakaz’;

Как результат – база восстановилась полностью, без потери данных.
Клиент счастлив, чего и следовало добиться…

Автор: Рудюк С . А. https://corp2.net

https://corp2.info/razrabotka-i-sozdanie-sajtov-internet-magazinov-veb-proektov-kiev-1038.html

Be the first to comment

Leave a Reply

Your email address will not be published.


*