Инструкция объединения серверов

Софт для произведения слияния баз данных: HeidiSQL или DataGrip

Местонахождение скрипта: gameserver\sql\maintenance\server_merge.sql

Процесс подготовки:
Предварительно вы должны сделать бекап ваших баз данных - допустим Serverx2019 и Server2020. Для примера мы переносим данные из базы Serverx2019 (src_db) в базу Server2020 (dst_db)
Создаете 2 базы данных - src_db (заливаете данные из Serverx2019 ) и dst_db (заливаете данные из Server2020)
1. src_db - база из которой будут перенесены данные в нужную вам (Serverx2019)
2. dst_db - база в которую вы будете переносить данные (Server2020)

Внимание! Если у вас один логин сервера на обе базы, необходимо залить accounts.sql в обе базы src_db и dst_db для корректного переноса аккаунтов если количество персонажей на аккаунте суммарно станет больше 7 тогда создастся к новому аккаунту префикс. Префикс при переносе _1, допустим был аккаунт test, станет test_1
Если аккаунт превышает допустимые количество символов длинны после конвертации, будут отсечены последние 3 символ и заменены на _1:
Допустим был аккаунт 11dimasik999 > после конвертации он станет 11dimasik_1. Проверить к каким аккаунтам были добавлены префиксы можно в базе scr_db таблица acc_conv.sql

Далее запускаем скрипт как в данном видео:


Все! Процесс переноса завершен! Далее вы просто переносите данные из dst_db в Server2020 и таблицу accounts из dst_db в базу вашего логина.
 
Last edited:
Хорошо, в таком случае, подскажи, пожалуйста, как сделать, чтобы не создавались дубликаты аккаунтов, если нет превышения лимита по персонажам.
У тебя в примере написано "если количество персонажей на аккаунте суммарно станет больше 7 тогда создастся к новому аккаунту префикс. Префикс при переносе _1", а по факту имеем, что даже, если на аккаунте был 1 персонаж, всё одно создался новый акк с префиксом. Или я что-то упускаю из виду?
Префикс добавляется если объект ид есть такой же.
 
Я в будущем думал попробовать реализовать систему переноса персонажа между серверами через телеграмм бота в пару кликов, по логике логин сервер 1 а игровых несколько, пока еще не понимаю какие данные дергать прийдется по мимо characters и items
 
Back
Top