Документация / Обслуживание

Перенос и несколько серверов

Новый компьютер, пользователь Windows, смена адреса и независимые экземпляры.

Перенос существующего сервера

Переезд должен сохранить идентичность сервера и согласованное состояние игроков. Новая карточка не требуется только из-за смены компьютера; она создаёт другой ID и не переносит автоматически ключи, модерацию и связанные данные.

Подготовьте новый Windows x64-хост, ASCII-путь, сетевые правила, место для копии и совместимую СУБД. Проверьте доступность нового публичного адреса заранее. Если у провайдера CGNAT, перенос файлов не решит входящие соединения — сначала обеспечьте подходящую сеть.

Последовательность переезда

  1. Составьте перечень файлов и внешних зависимостей по инструкции резервирования.
  2. Запланируйте простой и остановите старый игровой процесс/монитор.
  3. Сделайте окончательную согласованную копию файлов и БД после остановки записей.
  4. Установите проверенный комплект на новом хосте, восстановите данные и SQL.
  5. Исправьте dataPath, пути ресурсов, строку БД и ACL для нового пользователя Windows.
  6. Настройте TCP/UDP на новом игровом хосте и NAT на маршрутизаторе.
  7. Если публичный endpoint изменился, обновите карточку, пройдите необходимую повторную модерацию и импортируйте актуальную конфигурацию публикации.
  8. Запустите только новый экземпляр, проверьте локальный ID, heartbeat, шлюз и реальный вход извне.
  9. После приёмки отключите старые задачи автозапуска и правила публикации старого экземпляра.

Смена компьютера не требует безусловного перевыпуска каждого ключа, если секреты перенесены защищённо и не скомпрометированы. Но отозванный ключ из резервной копии не заработает. Проверяйте соответствие ID и пары публикации.

Смена пользователя Windows

NTFS-права привязаны к SID, а не только к видимому имени. Новый пользователь с тем же именем на другом компьютере не обязательно имеет доступ к приватному состоянию. Назначьте права новому владельцу через штатные средства и проверьте запуск от его имени.

Не выдавайте Everyone: Full Control всему комплекту. Отдельно проверьте доступ к txData, секретам, внешнему server-data и приватному SQL-конфигу. Удалите лишний доступ прежних пользователей, если это предусмотрено планом переноса.

Смена домена или внешнего IP

Обновите DNS/адрес карточки, NAT и, если изменился порт, настройки мастера. Дождитесь актуального разрешения DNS и модерации. Старый publisher.json может содержать прежний одобренный endpoint; получите актуальную конфигурацию вместо ручного редактирования случайных полей.

Скрытый endpoint в каталоге всё равно должен быть верным и доступным инфраструктуре. Отключение отображения адреса не позволяет оставить в карточке старый адрес.

Несколько серверов на одном компьютере

Каждому экземпляру нужны собственные комплект/профиль, каталог данных, игровой порт, порт панели, карточка с ID, ключ доступа и пара публикации. Для режима с SQL используйте отдельную БД и пользователя, если режим явно не спроектирован для совместной схемы.

Параметр Пример A Пример B
Папка C:\OpenM-A C:\OpenM-B
Игровой TCP/UDP 30120 30121
Панель 40120 40121
БД openm_a openm_b
ID и ключи От карточки A От карточки B

Примеры портов не разрешают конфликты автоматически: проверьте, что они свободны. Игровые порты не должны попадать в диапазон панели 40120–40150. Для выбранного порта панели используйте документированный помощник запуска с -PanelPort; запуск голого EXE без нужных параметров может использовать стандартный порт.

Клон для тестов

Копия production не должна отправлять heartbeat от его имени или писать в его БД. До запуска отключите публикацию, измените порты и строку БД. Для полноценного внешнего тестирования используйте отдельную карточку и ключи. Для локальной диагностики выбирайте соответствующий режим мастера, учитывая ограничения входа игроков.

Возврат на старый хост

Остановите новый экземпляр, согласуйте возврат данных, endpoint и NAT. Если на новом сервере уже появились изменения игроков, старая копия устарела: переносите финальное состояние либо явно принимайте потерю изменений. Только после этого запускайте старый экземпляр. Одновременный запуск двух издателей с одним ID не является отказоустойчивым кластером.

Введите название, параметр или текст ошибки.

Esc — закрыть · Tab — выбрать результат