SQL Server на Linux. Управление.

Здесь мы рассмотрим вопросы связанные  управлением SQL Server работающим под управлением OC Linux.

1. Подключение к SQL Server

Использование sqlcmd:

sqlcmd -S localhost -U sa -P P@ssw0rd

Также можно подключиться с любого компьютера под управлением Windows при помощи SQL Server Management Studio.

Если SQL Server установлен на нестандартный порт, то увидеть этот порт можно выполнив команду:

sudo cat /var/opt/mssql/mssql.conf

Если в данном файле нет записи о номере порта, значит порт стандартный (1433).

Также для просмотра номера порта, на котором “слушает” SQL Server можно выполнить любую из ниже приведенных команд.

sudo lsof -i -P -n | grep LISTEN

sudo netstat -tulpn | grep LISTEN

Более того эту же информацию можно получить из Error log.

sudo cat /var/opt/mssql/log/errorlog | grep listen

 

2.    Управление SQL Server

2.1. Конфигурирование.

Конфигурирование выполняется при помощи утилиты mssql-conf, устанавливаемой при инсталляции SQL Server.

Получение справки

sudo /opt/mssql/bin/mssql-conf -h

Список параметров

sudo /opt/mssql/bin/mssql-conf list

Установка параметров

sudo /opt/mssql/bin/mssql-conf set

Просмотр параметров, установленных не по умолчанию.

sudo cat /var/opt/mssql/mssql.conf

Утилита сохраняет данные настроек в файл /var/opt/mssql/mssql.conf.

2.2. Старт/Стоп/Рестарт и просмотр текущего статуса

Для выполнения этих задач служит утилита systemctl из состава ОС Linux.

 sudo systemctl start mssql-server

sudo systemctl stop mssql-server

sudo systemctl restart mssql-server

sudo systemctl status mssql-server

 2.3. Просмотр логов

 Для чтения логов можно воспользоваться любым редактором

sudo cat /var/opt/mssql/log/errorlog

Также можно использовать sqlcmd или SSMS, вызвав хранимую процедуру.

EXEC sys.sp_readerrorlog 0, 1, 'error’

Или используя графический интерфейс SSMS (Object Explorer -> Management -> SQL Server Logs)

Автоматически сохраняется 128 файлов. Это количество фиксировано.

 

2.4. Смена пароля для пользователя SA.

 Остановить SQL Server

sudo systemctl stop mssql-server

Выполнить команду:

sudo /opt/mssql/bin/mssql-conf setup

Повторно ввести редакцию сервера и новый пароль для SA. SQL Server автоматически произведет рестарт.

Примечание:

Если пароль содержит специальные символы, то перед ними необходимо использовать “/”. sqlcmd -S myserver -U sa -P Pa\$\$word


2.5. Запуск SQL Server в специальных режимах.

 Вы можете пожелать стартовать SQL Server в однопользовательском режиме для восстановления системных баз или изменения серверной конфигурации. Для этого выполните нижеприведенную команду.

sudo -u mssql /opt/mssql/bin/sqlservrm

Иногда бывает полезно стартовать в режиме минимальной конфигурации.

sudo -u mssql /opt/mssql/bin/sqlservr -f

 

2.6. Перемещение базы master

Для перемещения базы master в новое место необходимо выполнить ряд шагов, описанных ниже.

Предположим, вы решили переместить базу в папку /var/opt/mssql/system.

Для начала надо эту папку создать.

sudo mkdir /var/opt/mssql/system

Измените собственника папки на mssql и дайте ему полные разрешения на эту папку.

sudo chown mssql:mssql /var/opt/mssql/system

Обновите конфигурацию SQL Server, указав новый путь.

./mssql-conf set filelocation.masterdatafile /var/opt/mssql/system/master.mdf

./mssql-conf set filelocation.masterlogfile /var/opt/mssql/system/mastlog.ldf

Остановите SQL Server

sudo systemctl stop mssql-server  

Переместите файлы в созданную папку.

sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/system/

sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/system/

Стартуйте SQL Server

sudo systemctl start mssql-server

Проверьте размещение

sqlcmd -S SQLonLinux1 -U sa -Q "select name, physical_name from sys.database_files" -d master

 

2.7.  Перестройка системных баз

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

sudo opt/mssql/bin/sqlservr -c --setup --force-setup

  

2.8.  Изменение папки для хранения файлов данных и журналов транзакций.

Создайте новую папку для файлов данных и журналов транзакций.

sudo mkdir /var/opt/mssql/tlogs

sudo mkdir /var/opt/mssql/backups

При создании папки ее собственником стал пользователь “root”.

sudo ls -l /var/opt/mssql

1jpg

Поэтому необходимо изменить собственника для этого выполните команды:

sudo chown mssql:mssql /var/opt/mssql/tlogs

sudo chown mssql:mssql /var/opt/mssql/backups

Теперь собственником стал пользователь “mssql”.

sudo ls -l /var/opt/mssql

2jpg

Используя утилиту конфигурации, измените расположение папок по умолчанию, так, чтобы они указывали на новые папки.

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /var/opt/mssql/tlogs

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /var/opt/mssql/backups

Выполните рестарт сервера

sudo systemctl restart mssql-server

Если вы проверите файл mssql.conf, то обнаружите в нем новую секцию, указывающую на новое размещение файла.

sudo cat /var/opt/mssql/mssql.conf

3jpg

 
Alexander Kalenik,
Senior Premier Field Engineer,
Microsoft Support,
PhD