В этом руководстве мы c вами рассмотрим вопрос как установить на Ubuntu 22.04LTS сервер баз данных MS SQL Server 2022 локально, а также научимся писать сценарии и запускать продукт в контейнере с помощью docker compose.
Плюс решения в том, что для версий Standard и Enterprise под Linux активация продукта не требуется, но с точки зрения «легальности» использования необходимо иметь лицензию, в рамках санкций на зло дедушке Байдану используем на халяву.
Содержание статьи
- Подготовка сервера
- Варианты развертывания MSSQL 2022
- 1-й Вариант. Локальная установка
- Резервное копирование и восстановление
- 2-й Вариант. Запуск в Docker.
- Вывод
Подготовка сервера
Повышаем наши права в системе:
sudo -s
Настраиваем сеть:
nano /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens18:
dhcp4: false
addresses:
- 172.29.0.15/24
routes:
- to: default
via: 172.29.0.254
nameservers:
addresses: [172.129.0.254, 8.8.8.8]
version: 2
Сохраняем, выходим:
CTRL+O, CTRL+X
Применяем настройки:
netplan apply
Обновляем систему:
apt update && apt upgrade -y
Перезагружаемся:
reboot
Варианты развертывания MSSQL Server 2022
Существуют три варианта развертывания MSSQL сервера в Ubuntu:
- Скачивание и установка готового deb пакета: Скачать можно тут
- Добавление репозитория Microsoft для дальнейшей установки
- Запуск в Docker контейнере
1-й Вариант. Установка MSSQL Server 2022 локально
Импортируем ключ Microsoft GPG:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Эта команда извлекает ключ GPG с веб-сайта Майкрософт и добавляет его в доверенную связку ключей вашей системы.
Добавим репозиторий Microsoft SQL Server в Ubuntu:
add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)"
Проверяем версию mssql сервера в репозитории:
apt-cache policy mssql-server
Размер пакета: mssql-server amd64 16.0.4095.4-1 [267 MB]
Установим SQL Server:
apt install mssql-server
После установки запускаем пакет конфигурации:
/opt/mssql/bin/mssql-conf setup
Система просит указать необходимую нам редакцию продукта, я выбираю Standard:
Is the product selected covered by Software Assurance? [Yes/No]: Y
Выбираем язык:
Далее система запросит от нас "Введите пароль системного администратора SQL Server:"
Проверяем статус службы:
systemctl status mssql-server
Запускаем Microsoft SQL Server Management Studio и подключаемся:
MSSQL по умолчанию использует следующие директории:
Создадим папки и переназначим каталоги:
Для баз и журналов транзакций:
mkdir /DataBases
Изменим права и добавим группу:
chown mssql /DataBases
chgrp mssql /DataBases
Заодно создадим папку для резервного копирования:
mkdir /Backup
Изменим права и добавим группу:
chown mssql /Backup
chgrp mssql /Backup
Меняем каталог базы данных по умолчанию:
/opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /DataBases
Меняем каталог для резервного копирования по умолчанию:
/opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /Backup
Перезапускаем MSSQL:
systemctl restart mssql-server
Проверяем:
Резервное копирование и восстановление
Блок в статусе редактирования
- Ручной режим резервного копирования можно выполнить в консоли сервера или с помощью Management Studio
- Автоматизированный режим резервного копирования можно выполнять с помощью скрипта и планировщика заданий cron
Ручное резервное копирование в консоли сервера:
sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [имя_базы] TO DISK = N'/Backup/имя_базы.bak' WITH NOFORMAT, NOINIT, NAME = 'имя_базы-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
Ручное резервное копирование в Management Studio:
Автоматизированный режим резервного копирования:
2-й Вариант. Запуск в Docker.
Прежде чем перейдем к процессу написания рабочего сценария развертывания контейнера установим Docker-Compose:
apt install docker-compose
Проверяем статус службы Docker:
systemctl status docker
Создание структуры папок под Docker и MSSQl:
mkdir /Docker_Containers
mkdir /Docker_Containers/MSSQL
mkdir /Docker_Containers/MSSQL/Data
mkdir /Docker_Containers/MSSQL/Backup
Переходим в каталог MSSQL:
cd /Docker_Containers/MSSQL
Создадим файл конфигурации docker-compose.yaml:
nano docker-compose.yaml
version: "3.9"
services:
mssql:
container_name: MSSQL2022
image: mcr.microsoft.com/mssql/server:2022-latest
ports:
- 1433:1433
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=P@ssw0rd
- MSSQL_PID=Standard
-
volumes:
- ./Data:/var/opt/mssql/data
- ./Backup:/var/opt/mssql/backup
volumes:
Data:
Backup:
Сохраняем и выходим:
CTRL+O, CTRL+X
С конфигурационным файлом мы разобрались, пора создать и запустить контейнер с заданными нами параметрами:
docker-compose up -d
Проверяем статус контейнера:
docker-compose ps
Видим статус up - запущен, поздравляю, идем проверять.
Запускаем Microsoft SQL Server Management Studio и подключаемся:
Создаем базу данных:
Переключаемся в терминал и проверяем содержимое папки Data:
ls /Docker_Containers/MSSQL/Data
Если вдруг, что-то пошло не так и вам необходимо остановить контейнер:
docker-compose stop mssql
Удалить контейнер и пересоздать его:
docker-compose rm mssql
docker-compose up -d
Вывод
В этом статье мы с вами рассмотрели вопрос локальной установки MSSQL 2019, а также написали конфигурационный сценарий для Docker- Compose и запустили тот же релиз в контейнере, создали базу данных и проверили работоспособность. Надеюсь статья вам понравилась и вы смогли извлечь для себя полезную информацию.