Вопрос по SQL.
Столкнулся с проблемой - нужно "достать" персонажа из бэкапа.
Сначала думал, чем бы это сделать - на ум пришёл только Excel. С мелкими sql-файлами - без проблем. "Данные"-->"Сортировка" и Ctrl+C все данные с нужным гуидом. 1я проблема - "Размеры листа Excel ограничены 65536 строками и 256 столбцами данных" 2я проблема - не все таблицы содержат первым параметром гуид (обычная сортировка по алфавиту помогала во всех кроме этого случаях):mda: Может есть более простой и менее манульный способ вытягивания персонажа из бэкапа? Или, может, более удобные программы? :) |
Ексель? да вы просто извращенец.
Чем вам не подходит сама база данных, вливаете в нее бекап, и от туда вытягиваете. Гуи интерфейс и запросы вам в помощь. |
Konctantin, кажется, человек пытается систематизировать "вытаскивание" персонажей и бэкапов. Если эти самые бэкапы делаются раз в сутки и каждый день нужно вытащить какого-то персонажа, не будешь же ты каждый раз заливать в базу бэкап и вытаскивать из сотен тысяч строк пару десятков. Во-первых: время. Во-вторых: ресурсы.
Если бэкап небольшой (!), то могу предложить написать функцию на php. Если бэкап большой - пишем на c++ (например) программу, которая будет циклом пробегаться по бэкапу и вытаскивать нужную инфу. Написать такую программулину - дело одного часа, да и автоматизировано всё будет, из бэкапа на 500 мб нужная инфа будет вытащена за несколько секунд. |
Бред... Влить бэкап в другую таблицу и запросом в полстрочки все скопировать.
|
Цитата:
|
Цитата:
Да и не важно, а вы хотите сказать что с 2 гигами Ексель справится? Да бред все это, вместо, того, чтобы расписывать, как это делается экселем, лучше б написали, что у вас есть, какой бекап и т.д. и т.п Я считаю, что намного быстрее, все сделать именно в базе данных, нежели колупаться в самом дампе. ИМХО быстрее и удобнее не будет. |
Цитата:
Не представляю, как должен выглядеть подобный запрос :( Вероятно что-то похожее на это: Dump WHERE 'guid' '8769'.. как-то так 2 Hantet. Бэкап на самом деле небольшой, 450мб, но со временем будет толще. А столкнулся с этим я в первый раз. Вот и спросил :) С языками программирования к сожалению не дружу, но никого ни к чему не обязываю. Ценю как своё, так и чужое время. 2 Konstantin. Самая большая таблица пока 128мб (character_achievement_progress) |
Цитата:
Просто, раз тема про "ручное колупание в бэкапах" - написал _не_про_GUI_ |
Когда понадобилось восстановить удаленного персонажа из бекапа,то просто залил бекап в другую базу, потом удалил данные по всем остальным персонажам и сделал обычный бекап для одного персонажа по всем необходимым таблицам.
После этого спокойно залил данные в игровую базу. |
|
|
вытаскивать перса из бакапа (по ИМХО) админу необходимо только в двух случаях:
1. игрок (или лицо добравшееся до персонажа) что-то натворил с ним плохое (Выкинул ценный шмот, разучил таланты, разучил не ту профу...) 2. Игрок (или...) удалил персонажа. Для 1-го самое быстрое это то, что написал virusav в посте №9 Для 2-го есть способ попроще. В конфиге мангоса включаешь логирование исходников в логе персонажей (characters.log). Тогда при удалении персонажа бакап этого персонажа будет сгенерирован и записан в логе самим сервером. ;) |
3. накосячила бд, вырубился свет и тп и персонаж не пускает в игру из-за битых данных...
имхо 9 пост самый верный |
|
Цитата:
|
Цитата:
Иннодб спасает от вылетаний пробок?! Не верю! Год мучился, потом решился купить UPS. :) Гады, раньше не могли сказать? :):) |
Цитата:
Цитати с вики: Цитата:
|
Если во время транзакции вылетит свет, можно будет восстановить все данные, связанные с транзакцией, на момент непосредственно до транзакции.
|
Цитата:
тем более есть mysql 4...где такое не канает :pardon: |
Цитата:
А во-вторых, если у вас жесткий диск остался в живых после внезапного отключения света, то у InnoDB есть autorecovery, которое при запуске пофиксит поломанные данные. Почему это в MySQL 4 не канает? InnoDB в MySQL 4 поддерживается. И, кстати, какого черта вы используете MySQL 4 ? Если это из-за хостинга, то вам следует сменить хостинг. Это IE6 в области СУБД, "вы же не пьете прокисшее молоко?". |
|
Цитата:
Всё же от такого персонажи не пропадали. Таблицы гильдий, скиллов ломались, это было. Цитата:
2 virusav: спасибо) это оптимальный вариант для меня. |
По-моему нужно устранять проблему в самом сервере (ОС хотя бы сменить что ли с домашней на более подходящую), а не ежедневно что-то делать с бекапами в 2 гига и доставать оттуда персонажей.
|
1 гб чарактерс.
"вырубило свет во время бек апа" - нуууу... хостер гарантирует 23:59/24:00 аптайма - бек-апа базы ежедневный занимает... ну не мне вам говорить как много... проблемы еще ни разу не видел с тем что бы в момент бек - апа отвалился свет - ребутнулось железо или чтото. учитуя теорвер... думаю сего и не случится(надеюсь). ну а собственно если вдруг так сказать, все-таки "повезло" 1. беремсь и грузим (под масдаем) старый добрый билдер. Настраиваем много веселых штучек, копаем в сторону:- "а не скажи ка мне гугля что да как в билдере с MySQL" если используется мускуль (так и не сказано что юзается) ну а дале курим в сторону компонентов SQLquery (иль чего вам там гугля посоветует, есть много условно бессплатных, и парочка бессплатных для делфи - которые нормально ставятся на билдер (Zкомпонентс, иль как то они там так зовутся, юзал лет 5 назад)) ну после всего проделоного и насстроеного через 15 мин рождается софтина. но все таки просьба - скажи что именно подрозумевается в "нужно "достать" персонажа из бэкапа." ? а то немного не андестенд... с сями могу подсобить в этом варианте есл народ подскажет точно в каких базах инфа валяется. сие не сложно. 1 раз зато на века. |
Цитата:
до этого использовалась тестовая платформа с урезаным мускулем 4 и тп... зы как то после падения запустил мангос....показал кривые данные о плеере...удалил остатки от него, пришлось ковырятся с бэкапами =))) все это конечно было в старых ревизиях с 8ххх ) ...в общем двано это было, вот и написал что возможно и такое :thank_you: |
Текущее время: 15:12. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS