Программы и Дизайн » Linux, Unix и другие ОС » Операционные системы (Linux, Unix)
VM Ubuntu 22 + MS SQL Server 2022 [OVA-Template] (VirtualBox)Год Выпуска: 2022
Версия: 2022 Build 16.0.4085.2
Разработчик: microsoft
Сайт разработчика:
https://learn.microsoft.com/ru-ru/sql/linux/sql-server-linux-release-notes-2022Системные требования: VirtualBox или любой аналогичный гипервизор.
CPU Core 2 Duo и выше, аппаратная виртуализация обязательна.
4 Гб RAM (самый-самый минимум 2)
8 Гб на диске (1,9 Гб OVA --> 5.3 Гб VDI/VMDK на диске), файлы баз и журналов MSSQL могут быть склонны к разрастанию.
Архитектура: x86, amd64
Таблэтка: отсутствует, не требовалась.
SHA256: 301e9ed194737ad0bb362648272adde5a3176a4c75ce63ce530f4005920bc9e1
Язык интерфейса: Английский
Описание: Ubuntu 22.04.4 LTS + MS-SQL Server 2022 RTM-CU9 KB5030731
16.0.4085.1 (x64) Sep 27 2023
[spoiler="Установка и запуск"]
Импортуруйте ova-файл виртуальной машины, если это VirtualBox.
Либо извлеките образы дисков для подключения к другому гипервизору. Корневая ФС и загрузочный том - первый диск, более крупный.
Настройте сетевой мост к вашей сетевой карте (ВМ скорее всего предложит сделать это при первом старте)
Дождитесь первичной настройки, посмотрите историю команд и пароли в файле ~/passwords.txt
С помощью истории команд воспользуйтесь утилитой sqlcmd для проверки доступности сервера
С версией / изданием не совсем понятно - меняется оно командой в консоли, серийник ни разу не просило.
Мануал по импорту в ProxMox (серверный гипервизор):
YouTube: 4lYulcTd5yc[spoiler="Веб-админка на этом же хосте"]
- Установлен apache2 + php8.1 + sqlsrv-4.0 mssql-driver
Теперь есть веб-интерйефс для базовой работы прямо на этой ВМ - пропатченный админер. Вот где-то тут, в районе параметров PDO:

[/spoiler]
Обновления делаются как обычно :
Код: apt update && apt upgrade && apt dist-upgrade !! MS-SQL стоит из микрософтовского репозитория, будьте внимательны, сервер СУБД будет обновляться вместе с остальными пакетами !
[spoiler="Изменение размеров диска, если большие базы"]
- Выключаем VM
- В настройках VirtualBox - Носители, находим нужный диск. Ubuntu-22-MSSQL-22-disk001.vdi - корень (система), Ubuntu-22-MSSQL-22-disk002.vdi - /var/opt, там базы.
- Передвигаем регулятор размера вправо на нужное значение.
- грузимся Live CD типа Knoppix и делаем ресайз файловой системы с помощью gparted
Файловую систему для баз (не рутовую) можно расширить прямо внутри ВМ, не загружая внешние livecd:
Код:cat ~/passwords.txt - смотрим пароль пользователя
sudo su
apt update && apt install parted
systemctl stop mssql-server
umount /var/opt
parted /dev/sdb
print free
resizepart 1
[вписываем новое значение размера]
exit
e2fsck -y /dev/sdb1
resize2fs /dev/sdb1
mount /var/opt
systemctl start mssql-server
Команда df -h /var/opt должна показать новое значение
[/spoiler]
[spoiler="Изменение редакции SQL Server, если надо"]
Код:cat ~/passwords.txt
sudo su
systemctl stop mssql-server
/opt/mssql/bin/mssql-conf set-edition
systemctl start mssql-server
[/spoiler]
[spoiler="Сброс/изменение пароля sa, если поменяли и забыли =)"]
Код:cat ~/passwords.txt
sudo su
systemctl stop mssql-server
/opt/mssql/bin/mssql-conf set-sa-password
systemctl start mssql-server
[/spoiler]
[spoiler="Запуск на серверном гипервизоре"]
После импорта ВМ конвертируйте диск в RAW-формат.
Код: VBoxManage clonehd .../MSSQL.vdi MSSQL.raw --format raw Залейте RAW-образ диска на сервер и подключите к виртуалке на сервере.
Второй диск не забудьте сделать аналогично.
Залогиньтесь локально, посмотрите сгенерированный пароль в
~/passwords.txt, выполните
sudo su, исправьте файл :
Код: mcedit /etc/netplan/00-installer-config.yaml Измените имя сетевой карты на то, что в выводе
ifconfig, если надо пропишите статику.
Ман по раскурке нетплана:
https://habr.com/ru/articles/448400/Проверьте, что воткнули сетевую карту в нужный мост/влан.
Перезапустите сеть или ВМ целиком.
[/spoiler]
[spoiler="Запуск на физическом хосте"]
После импорта ВМ конвертируйте диск в RAW-формат.
Код: VBoxManage clonehd .../MSSQL.vdi MSSQL.raw --format raw Посекторно скопируйте RAW-образ диска на флешку / диск:
Код: dd if=MSSQL.raw of=/dev/sdm Второй диск не забудьте сделать аналогично.
Перенастройке конфиг сети (netplan) по примеру выше для серверного гипервизора.
[/spoiler]
Некоторые утилиты я забыл поставить. Если вам нужен ping / traceroute / telnet или что-то подобное:
смотрим пароль, su, ставим:
Код:cat ~/passwords.txt
sudo su
apt update && apt install inetutils*
** Из полезного - в оболочке линукса есть история команд. В образе про неё не забыто. Нажимая стрелку вверх, можно сперва вызвать из истории команду
SA_PASSWORD=...cat ... grep ... cut ... export SA_PASSWORD
и потом уже
sqlcmd -C -U sa -P $SA_PASSWORD
В этом случае пароль sa сразу будет прочитан в переменную окружения сеанса vboxuser и можно будет посмотреть БД из консоли, не вводя пароль и не отображая его на экране.
[/spoiler]
[spoiler="Зачем вообще такая хтонь ?"]
* Вы разрабатываете софт, который должен работать с MS SQL, но виндовс вам лишняя.
* У вас импортозамещение, и винду снести надо уже сейчас, тогда как сервер БД просто так заменить куда сложнее.
* Вы хотите упростить виртуализацию/серверную часть, но MSSQL вам по каким-то причинам всё ещё нужен.
* Есть желание получить максимально легковесные ВМ с СУБД, когда база ещё от MS, а ОС - уже нет.
* Есть желание поизучать эту не самую простую СУБД, но нет желания её отдельно ставить на виндовс (тем более на основную систему!!)
* MS SQL - один из самых надёжных серверных продуктов MS (тут без иронии, ну почти ), убирание большой и сложной виндовс-прослойки сильно упрощает жизнь.
[/spoiler]
[spoiler="Особенности"]
- Парольный вход рутом закрыт.
- Локально система автологинится в пользователя vboxuser
- Доп-сервисы типа Integration-Services, Full-Text-Search и прочие - доступны в репозитории, поиск через
apt-cache search mssql Там же всякие доп-компоненты для работы с ним.
- При первом старте генерируются новые пароли для vboxuser (доступен парольный вход по ssh) и для MSSQL-пользователя sa. Сгенерированные пароли лежат в
/home/vboxuser/passwords.txt (есть подсказка)
- Каталог баз данных /var/opt вынесен на отдельный диск (метка VarOptFS), чтобы проще / спокойнее ресайзить, если понадобится.
- установлены утилиты
sqlcmd,
bcp- установлен
PowerShell 7.4.5- установлен веб-гуй
Adminer 4.8.1 @ Apache-2 + PHP 8.1 + MSSQL_PDO- iptables / mc / htop / wget / прочие unix-tools не забыты
- никаких GUI, wine, веб-морд и прочего. MS SQL должен жить отдельно. Для проверки живости sqlcmd достаточно, но веб-морда на этой же ВМ вот прям сильно удобнее, да и работает быстро. Нужен Mgmt Studio / что-то ещё - в отдельную ВМ.
- Сервис БД стартует от отдельного пользователя mssql. Управляется как и все systemd-сервисы, через
systemctl- Для админских задач используйте sudo + пароль пользователя vboxuser
- Для MS SQL можно сбросить sa-пароль или сменить редакцию с помощью утилиты
/opt/mssql/bin/mssql-conf (есть подсказка), но сперва стопнуть командой systemctl stop mssql-server, запустить по завершении
- Апдейт на 23-ю Ubuntu невозможен - сломаются зависимости от libldap. В микрософте не все зависимости ещё проверяются корректно при установке.
- Конфиг файервола есть , грузится из
/root/iptables.rules , фильтрации нет, правила сугубо для примера
- Удалось запихать её на 5 Гб диска и гиг памяти, но это впритык.
[/spoiler]
[spoiler="⚠ Безопасность, ВАЖНО !!! ⚠"]
Микрософт славится своим бережным отношением к безопасности, и активно распространяет своё отношение среди разработчиков .
- Если ВМ вам нужна не разово, для SSH доступа настройте авторизацию по ключам.
- Никогда не ставьте слабые пароли на аккаунты MSSQL или локальные линуксовые учётки
⚠.
- Не запускайте соединения с БД рабочих задач , веб-морд, приложений от mssql-пользователя sa !!! Даже на тесте. Сделайте нового.
- Если ВМ используется часто, настройте правила файервола. Чем меньше светите портом 1433 - тем спокойней сон и отпуск.
Порты SSH и WEB тоже лучше файерволить исходя их принципа минимума достаточных привилегий.
- Никогда не светите портом 1433 в интернеты, на самый-самый крайний случай - белый список. Пример в /root/iptables.rules
- Если у вас есть возможность скачать обновления, очень желательно это сделать с помощью apt.
Например, на 2023-10-31 три команды apt update, apt upgrade и apt dist-upgrade поднимут версию до 2022 RTM-CU9 (KB5030731) - 16.0.4085.2
В разных версиях M$SQL бывают разные сюрпризы, от багофичной работы с датами в запросах до проблем с рестором резервных копий.
За более детальными разъяснениями стоит обратиться на сайт микрософта.
Используйте команды
apt-cache policy mssql-server и например
apt-get install mssql-server=16.0.4080.1-1-preview для установки строго определённой версии из репозитория. Команды
apt-mark hold mssql-server /
apt-mark unhold mssql-server соответственно фиксируют/снимают фиксацию заданной версии. Это позволяет обновлять все пакеты в системе, кроме помеченных как hold.
[/spoiler]
[spoiler="Скриншоты"]

C админки сервер выглядит вот так:

Из веб-интерфейса админера в браузере :


[/spoiler]
IPFS2024-09-07 :: Раздача обновлена. Обновлена ОС / СУБД, добавлен веб-UI Adminer (я его пропатчил). Теперь базовые вещи можно делать из браузера, отдельная виндовс-ВМ с SQL Management Studio становится меньше нужна.