PostgreSQL 9.1.2-1.1C(x64)
Ошибка СУБД - ERROR : could not read block 4200 in file "base/16400/4506195" : read only 0 of 8192 bytes.
База 1С Зарплата и кадры Бюджетного учреждения. База работает а бэкапить эта ошибка не дает.
Сам я в СУБД не специалист сразу оговорюсь,
стандартными средствами в программе PGAdmin и конфигураторе 1С данную ошибку исправить не можем
бекап последний аж месяц назад делался до отпуска может есть какой нибудь скрипт исправляющий данную ошибку. Пожалуйста помогите в моем вопросе (скриншоты прилагаю)
Вложение | Размер |
---|---|
PGADMIN-ошибка резервной копии.jpg | 66.57 kb |
сохранения базы в конфигураторе.jpg | 37.4 kb |
тестирования.jpg | 52.51 kb |
База посыпалась
У вас база посыпалась, по всей видимости, бэд сектора на жестком. Теперь только выяснять битые записи и восстанавливать их из бякапов или иными методами.
Из таблицы, на которой падает pg_dump, делаете выборку всех полей с лимитом и оффсетом, постепенно сужая выборку, рано или поздно доберетесь до той самой битой записи. Далее можно определить и само битое поле, но если есть бякап с этой записью то и не к чему.
Надеюсь, как мержить живую таблицу с исключением битых записей и бякапа с выборкой этих самих записей не нужно.
Можно подробно что нужно сделать
В PGAdmin возможность выполнять sql запросы к базе объясните подробно как нам нужно сделать выборки и т.д
Наймите специалиста
Мой вам совет, наймите специалиста на эту разовую процедуру, дешевле выйдет. Ведь мало найти битые записи, нужно еще и заменить их записями из бякапов, а вы уже на простых селектах застряли.
Запросами вида:
нужно обойти все записи в проблемной таблице сужая круг поиска при попадании в блок данных с битыми записями. Если база шибко большая, то еще и скриптовые языки задействовать для автоматизации поиска, тот же pgscript, к примеру.