madf: (Default)
[personal profile] madf
Вчора, нарешті, начальство відреагувало на мої воплі про те що на сервері БД сиплеться вінт і поставило новий. То ж я сьогодні цілий день займався базою. Точніше займаюсь я нею вже не перший тиждень, але сьогодні присвятив цій благородній справі повний робочий день.

Найгірше було те що биті сектори припадали як раз на величезну таблицю з детальною статистикою і блокували всі запити що їх чіпали. Таким чином для цієї таблиці жодного разу не виконувався ні VACUUM, ні ANALYZE. А тут ще місце почало закінчуватись і частину детальної статистики дозволили викинути. Та от біда - як раз на цю частину і припадали биті сектори. Я обережно, з точністю до місяця обкусав проблемну частину, але що толку - (auto)VACUUM-то не працює.
В першу чергу я знайшов файл і зміщення у ньому відносно початку до цих самих секторів. Дуже допомогло мені у цьому повідомлення із списку розсилки "простгресменів": Database corruption: finding the bad block. Потім, зупинивши базу, я перейменував файл. При цьому його вміст нікуди не копіюється і биті дані без проблем вилучились із бази. Але файл-то їй потрібен!
Тоді я за допомогою dd скомпонував такий самий файл для бази із нулевими даними замість битих (благо вони займали 4 блока підряд). Звісно, дані втрачено, але вони не такі важливі щоб переживати за них.
Потім я на новому вінті створив структуру бази і переніс туди всі дані крім цієї величезної таблиці. Білінг туди лише пише і єдиним ефектом поки що буде відсутність доступу до старих даних детальної статистики для користувачів і операторів. Це вдалося зробити відносно швидко (щось близько 500 Мб raw data), без перерв у наданні послуги. Тепер можна уже спокійно зайнятись детальною статистикою. Індекси я вирішив не перебудовувати - сенсу вже немає. Видалив із таблиці майже 90 млн застарілих записів (разом із тими що зіпсувались) і запустив VACUUM.
Завтра перенесу дані остаточно.

А ще заодно підкрутив параметри (shared_memory, max_fsm_pages і т.д. - матеріали по оптимізації гугляться на раз). Я тепер на роботі крім того що погроміст ще щось на кшталт DBA :)
Тепер, принаймні, у мене не буде боліти голова за цей бідолашний сервер :)

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 7th, 2026 12:25 am
Powered by Dreamwidth Studios