Найти тему
Тюнинг Админа

MSSQL Server 2022 на Ubuntu 22.04.3LTS

Оглавление

В этом руководстве мы 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

-2

Размер пакета: mssql-server amd64 16.0.4095.4-1 [267 MB]

Установим SQL Server:

apt install mssql-server

После установки запускаем пакет конфигурации:

/opt/mssql/bin/mssql-conf setup

Система просит указать необходимую нам редакцию продукта, я выбираю Standard:

-3

Is the product selected covered by Software Assurance? [Yes/No]: Y

Выбираем язык:

-4

Далее система запросит от нас "Введите пароль системного администратора SQL Server:"

-5

Проверяем статус службы:

systemctl status mssql-server

-6

Запускаем Microsoft SQL Server Management Studio и подключаемся:

-7
-8
-9

MSSQL по умолчанию использует следующие директории:

-10

Создадим папки и переназначим каталоги:

Для баз и журналов транзакций:

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

Проверяем:

-11

Резервное копирование и восстановление

Блок в статусе редактирования
  • Ручной режим резервного копирования можно выполнить в консоли сервера или с помощью 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

-12

Создание структуры папок под 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

-13

Проверяем статус контейнера:

docker-compose ps

-14

Видим статус up - запущен, поздравляю, идем проверять.

Запускаем Microsoft SQL Server Management Studio и подключаемся:

-15

Создаем базу данных:

-16
-17

Переключаемся в терминал и проверяем содержимое папки Data:

ls /Docker_Containers/MSSQL/Data

-18

Если вдруг, что-то пошло не так и вам необходимо остановить контейнер:

docker-compose stop mssql

Удалить контейнер и пересоздать его:

docker-compose rm mssql

docker-compose up -d

Вывод

В этом статье мы с вами рассмотрели вопрос локальной установки MSSQL 2019, а также написали конфигурационный сценарий для Docker- Compose и запустили тот же релиз в контейнере, создали базу данных и проверили работоспособность. Надеюсь статья вам понравилась и вы смогли извлечь для себя полезную информацию.