Коллеги, в предыдущих статьях мы разобрали документацию по МИС «САМСОН» — от системных требований до учета обращений. Теперь переходим к самой ответственной части: настройке сервера.
В этой инструкции я покажу, как развернуть сервер БД на операционной системе Альт 8 СП Сервер, оптимизировать его под нагрузку и подготовить к работе с «САМСОН».
📋 Что нам потребуется
| Компонент | Требование |
|---|---|
| ОС | Альт 8 СП Сервер (или CentOS 7 — но лучше Альт) |
| СУБД | MariaDB (аналог MySQL, используется в «САМСОН») |
| ОЗУ | от 32 ГБ (сервер БД) |
| Диски | RAID 1 или 10, от 250 ГБ |
| Пользователь | root или sudo |
🚀 Шаг 1: Подготовка операционной системы
Перед установкой СУБД нужно привести систему в актуальное состояние.
1.1 Обновляем систему
apt-get update
apt-get dist-upgrade
update-kernel
1.2 Перезагружаем сервер
reboot
1.3 Отключаем firewall (временно)
На этапе настройки firewall лучше отключить, чтобы он не мешал:
systemctl stop iptables
systemctl disable iptables
⚠️ Важно: В боевой среде firewall обязательно нужно будет настроить заново, открыв только необходимые порты (для MariaDB — порт
3306).
1.4 Устанавливаем полезные утилиты
apt-get install -y mc wget
mc (Midnight Commander) — удобный файловый менеджер в консоли. wget — для скачивания файлов.
🗄️ Шаг 2: Установка MariaDB
В репозиториях Альт 8 СП Сервер есть готовый пакет MariaDB:
apt-get install mariadb-server
MariaDB — это форк MySQL, полностью совместимый с ним. Именно эта СУБД используется в МИС «САМСОН» по умолчанию.
⚙️ Шаг 3: Настройка конфигурации (самый важный этап)
Это ключевой момент, от которого зависит производительность всей системы. Редактировать будем файл /etc/my.cnf.d/server.cnf.
3.1 Открываем файл для редактирования
Через Midnight Commander:
mc
Найдите файл по пути /etc/my.cnf.d/server.cnf и откройте его (F4).
3.2 Прописываем параметры производительности
В секции [mysqld] добавьте следующие параметры:
[mysqld]
# Самый важный параметр — кэш InnoDB
# Рекомендация: 60-80% от оперативной памяти сервера
innodb_buffer_pool_size = 24G
# Размер логов — примерно 25% от buffer_pool_size
innodb_log_file_size = 6G
# Параметры сортировки (не переоценивайте!)
sort_buffer_size = 2M
read_buffer_size = 1M
join_buffer_size = 2M
# Максимальное количество подключений
max_connections = 300
3.3 Золотая формула баланса памяти
Опытные администраторы используют такое правило:
RAM — (Размер_БД * 1.25 + 0.1 * RAM) = temp_ram * N_подключений
Где:
temp_ram— сумма параметровsort_buffer_size + read_buffer_size + join_buffer_sizeN_подключений— типичное количество одновременных подключений к БД
💡 Важно: Если выставить
sort_buffer_sizeслишком большим, при множестве подключений сервер быстро исчерпает память. Если слишком маленьким — запросы будут тормозить.
3.4 Эмпирическое правило для buffer_pool
«innodb_buffer_pool_size должен быть примерно в 1.25 раза больше суммарного размера ваших баз»
Пример расчета:
- Размер баз данных: 10 ГБ
- Рекомендуемый buffer_pool: 12-13 ГБ
- При RAM 32 ГБ это около 40% — нормально
🔐 Шаг 4: Запуск и безопасность
4.1 Запускаем службу
systemctl start mariadb
systemctl enable mariadb
4.2 Запускаем скрипт безопасности
mysql_secure_installation
Скрипт спросит:
- Текущий пароль root — так как мы его ещё не задавали, просто нажмите
Enter - Установить пароль root — ДА
- Удалить анонимных пользователей — ДА
- Запретить удаленный вход root — ДА (или НЕТ, если администрируете удаленно)
- Удалить тестовую базу — ДА
- Перезагрузить таблицы привилегий — ДА
💾 Шаг 5: Подготовка базы для МИС «САМСОН»
Для подключения «САМСОН» к БД потребуется создать базу данных и пользователей. Обычно разработчики дают готовый скрипт (например, set_mysql_for_samson).
5.1 Копируем скрипт на сервер
Скрипт обычно кладут в /root/. Удобно это сделать через mc:
mc
5.2 Делаем скрипт исполняемым и запускаем
chmod +x /root/set_mysql_for_samson
/root/set_mysql_for_samson
В процессе скрипт запросит пароли для пользователей:
root— администратор БДservicedesk— для сервисной службыdbuser— для подключения самой МИС
5.3 Проверяем создание БД
mysql -u root -p
В консоли MySQL:
SHOW DATABASES;
-- должна появиться база данных samson (или аналогичное название)
SELECT User, Host FROM mysql.user;
-- проверяем созданных пользователей
EXIT;
✅ Шаг 6: Финальная проверка и запуск
6.1 Проверяем статус службы
systemctl status mariadb
Должно быть active (running).
6.2 Проверяем, что порт слушается
netstat -tlnp | grep 3306
Должна появиться строка с 0.0.0.0:3306 или 127.0.0.1:3306.
6.3 Настраиваем firewall (если отключали)
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
systemctl start iptables
📊 Чек-лист администратора
Перед тем как запустить систему в эксплуатацию, проверьте:
- [ ] Установлены последние обновления ОС
- [ ] Настроен RAID (аппаратный или программный)
- [ ]
innodb_buffer_pool_sizeрассчитан под объем БД и RAM - [ ] Установлен пароль root для MariaDB
- [ ] Созданы пользователи для МИС
- [ ] Настроено резервное копирование (обязательно!)
- [ ] Firewall открывает только порт 3306 (и SSH)
- [ ] Записан куда-то пароли от БД (в безопасное место)
🐞 Типовые ошибки и их решение
| Ошибка | Вероятная причина | Решение |
|---|---|---|
Can't connect to MySQL server on 'localhost' | Служба не запущена | systemctl start mariadb |
Access denied for user 'samson'@'localhost' | Неправильный пароль | Сбросить пароль через root |
Connection refused | Firewall блокирует порт | Открыть порт 3306 |
| Сервер тормозит при 50+ пользователях | buffer_pool слишком мал | Увеличить innodb_buffer_pool_size |
Too many connections | Превышен лимит | Увеличить max_connections |
📌 Что дальше?
После настройки сервера нужно:
- Установить клиентские рабочие станции
- Настроить графики работы врачей (инструкция [ссылка])
- Настроить права пользователей
- Настроить резервное копирование (готовлю отдельную статью)
💬 Вопрос к сообществу:
На какой ОС вы разворачиваете сервер МИС «САМСОН»? CentOS 7 (несмотря на EOL), Альт Linux или что-то другое? Какие у вас значения innodb_buffer_pool_size при каком объеме RAM? Делитесь опытом!
P.S. Если нужна помощь с расчетом параметров под ваше железо — пишите в комментариях, поможем подобрать оптимальные настройки.
P.P.S. В следующей статье разберу настройку PACS-сервера для хранения медицинских изображений. Подписывайтесь на обновления!


