05-08-2011, 08:54 PM
Код:
Все права на данный материал принадлежат BrainFair и форуму EmuDev.
Исходный текст:
Цитата
В кратце:
Недавно получил в наследство сервачек ПВ, тыкаясь с новой игрушкой, как-то коряво тормознул и радостно принялся ковырять сервачек, покавырял полез запускать, оп вижу какие-то ошибки аля ругаюсь на такую то базу пум пум пум и как следствие err : gdelivery:: connect GameDB failed
Много матов от начальства, 3и часа с дрожащими руками и помощью товарища мастера (огромное ему спасибка за попытку помочь) ни к чему не привели. Расстроенный я откатил базы на последний дамп (как раз когда отдали сервачек я его себе дампнул) и запустил сервер, игроки недовольны, начальство подзатыльником пригрозило и усе.
Но как ум любопытный я не мог простить себе данной огрешности и решил порыскать, часик эксперементов и подозрения по поводу утилки dbtool лежащей в папке с базами подтвердились.
Натравив утилку с параметром -r на интересующую базу (на которую ругается) она что-то похимичила и исправила нашу базу =D
Есть пара подводных камней, например натравливая утилку на базу с параметром -r [Вход] [Выход] при вход=выход база неведомыми силами может испортится.
Натравливая утилку на нормальную базу, она тоже может что нить испортить
Для удобства написал скриптик прогоняющий по всем базам, репейря их в базу[2] и заменяя базу[2] на базу[1].
Похожих темок не увидел, поэтому разместил в раздел для опытных.
Если тема стара и все это фигня, то перекидывайте новичкам.
Но кроме как вайпа или отката на бекапы я вроде ничего не увидел
Добавлю немного от себя, чтоб не было глупых вопросов:
1) создаем файл любого названия в /home/gamedbd
nano /home/gamedbd/recover.sh
2) вставляем в содержимое этот текст:
обновитьСкрытый текст
Необходимо выполнить следующие условия:
текст доступен только пользователям, поставившим автору плюс в репутацию за данное сообщение;
3) Сохраняем и закрываем файл (Ctrl+O -> Ctrl+X)
4) Выдаем права файлу
chmod 755 /home/gamedbd/recover.sh
5) Запускаем скрипт
cd /home/gamedbd
./recover.sh