Сука, бля, пришёл на работу, думал, разовью ща свой бизнес. Ага, щас! Короче, у нас нескоко программ, которые черпают данные из другой хуйни, которой управляем не мы. Ваще этими прогами больше мой сменщик занимается, а он в отпуск ушёл на две недели с сегодняшнего дня. Ну и вот знач, подходят ко мне часов в 10-11 камрады и грят, мол, прога, того, не фунциклирует, даже войти не даёт. Ну мы полезли выяснять, давай сменщику звонить, он давай нам грить, чо делать. Грит, это наверное ДНС или сеть, проверьте доступность того сервака. Ну знач, ковырялись, проверили, всё доступно, создали ещё одно соединение с тем серваком, но создавали невнимательно и неправильно фильтр настроили, забирающий данные. В итоге оно синхронизиновалось и засрало нам нашу прогу. Вторую прогу мы засрать не успели - выяснилось, что какой-то пидарас поменял на том серваке название таблиц или схемы или типа таво и через это нам нужно отредактировать и свой фильтр. Ну знач, мы это сделали на остальных прогах и всё заработало, а с первой стали думать чо делать.
читать дальше
Было найдено решение - поднять ночной бэкап базы и из него несколько таблиц вытащить и вкачать на основную базу. Я это поручил нашему новому админу, ему надо пмаешь осваивать, а мне зато делать ничего не надо, токо руководить подгавкивать из-за плеча. Дык этот кадр (несмотря на то, что я за ним смотрел), умудрился забэкапить текущую базу (это я ему сказал), а потом в новую базу восстановить её же вместо ночной версии базы. Потом наступило шесть вечера, он свалил домой, а я продолжил геморроицца. Нужно было написать запрос, который выдёргивает нужные таблицы в csv-файл, а потом всё это дело специальной утилитой (кстати, платной - но там 5 раз можно использовать триальную версию) закачивается в прогу, а уж она закачивает в базу. Ну и пишу я этот запрос, он конечно выдаёт ашыбки, потому что там надо было писать не строки, а id из таблицы. Полез смотреть id и думаю - а чо это у нас и старое и новое соединение в ночной версии базы? Откуда оно там взялось? А время уже восемь. Башка не варит. Сменщик предложил не выёбывацца и загрузить полную версию ночной базы. Потому что часть базы может оказацца несогласованной с остальной базой, а всплыть всё это может через полгода и будет гемор. Я подумал - в чём-то он прав. А там нескоко баз у нас на mysql.
Я всё забэкапил. Ёбнул текущую базу, пересоздал её пустой и закачал ночной бэкап. Это ещё не всё. Там есть какие-то bin-логи и их можно применить. Сохраняются каждые четыре часа. Целая инструкцыя есть - надо найти в файле .sql позицию и имя файла, которые будут последующими bin-логами. Нашёл grep-ом. Потом надо найти время до которого восстанавливать. Это последнее время в этих bin-логах. Логи в bin-форме, поэтому их надо перевести сначала в sql, потом посмотреть конец файла, запомнить время и вставить его в команду, которая уже применит эти логи на базу. Это всё я сделал, но есть нюанс.
Бэкап общий для всех баз и бин-логи тоже. В бэкапе при восстановление одной базы надо писать --one-database dbname, а в бин-логах database=dbname
Я вот чо хочу сказать - шо в разных прогах все эти ёбаные параметры пишуцца немножко по-разному. Бывает так, что перед многобуквенной опцией два дефиса. Реже бывает один. Бывает так, что после опции идёт параметр, и между надо поставить пробел, а бывает надо знак = или кавычки.
То есть, может быть вот такое написание
--bla-bla xxx
-blabla xxx
blabla xxx
blabla=xxx
blabla='xxx'
Всю эту многообразную хуйню невозможно запомнить где в каких случаях как пишецца. При этом, если ты написал неправильно (среди кучи других параметров) программа может реагировать по-разному. Она может написать "ашыбка, неизвестный параметр" - и это хорошо, потому что в другом случае она может проигнорировать непонятный параметр и молча сделать всё без него. Я не знаю, как mysqlbinlog & mysql реагируют на ошибочные параметры. То есть, могло быть, что оно пишет ашыбку и тогда если ты ошибся в написанипи имени БД, ты исправишь. А может и сделать вид, что параметр не продиктован, поэтому молча применяем на все базы. Ты думаешь, что восстанавливаешь токо одну, а на самом деле хз. Какой, блядь, сумрачный гений эту хуйню проектировал я не знаю, но я щитаю, что такое токо мудаки могли сотворить.
То есть, тебе для гарантии надо или заранее переименовывать все другие базы (а я не знаю даже - можно ли это делать в mysql) или ты никогда не уверен, что при восстановлении этой в другие базы ничо не записалось. Проблема ищезает, если всего одна база.
В общем, начинает меня чо-то подбешивать этот ебучий Линукс и это ибаное бесплатное говно, которое кто-то смеет называть "ПО". Ну это ж пиздец, камрады! 2019й год, ёпта! Я сижу и какие-то ибаные файлики ковыряю ((
В общем, восстановил и свалил домой. Прога вроде заработала. Завтра бум ещё смотреть, проверять, чо как.
Из-за какой-то хуйни - шо мудак не предупредил, поменял, мы потеряли целый рабочий день. А могли бы в ютубе сидеть или в Дневничках.