Проблема
Предположим, что вы используете SQL Server 2017 в Linux. По умолчанию база данных master находится в каталоге /var/opt/mssql/data. Теперь необходимо изменить расположение файла базы данных MASTER и файла журнала ошибок на другое место.
Решение
Это обновление входит в следующий накопительный пакет обновления для SQL Server:
Накопительный пакет обновления 4 для SQL Server 2017
После установки SQL Server 2017 CU4 вы сможете изменить расположение файла базы данных MASTER и файла журнала ошибок.
Сведения о накопительных обновлениях для SQL Server:
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
Последний накопительный пакет обновления для SQL Server 2017
Дополнительные сведения
Настройка расположения Errorlogfile:
Используйте следующую команду, чтобы установить новое расположение журнала ошибок. Убедитесь, что структура папок предварительно создана и что учетная запись mssql имеет разрешения на создание файла.
- ./mssql-conf set filelocation.errorlogfile /home/user/sqlserver/log/errorlog
- Переменная среды для журнала ошибок — MSSQL_ERROR_LOG_FILE.
Ниже приведены сценарии и шаги по настройке расположения файлов баз данных master:
ПРИМЕЧАНИЕ. Перед внесением каких-либо изменений убедитесь, что вы сделали полную резервную копию всех баз данных, включая master базу данных.
СЦЕНАРИЙ 1. Изменение расположения файла базы данных master в существующей установке SQL.
- В служебной программе mssql-conf доступны новые возможности для предоставления местоположения master.mdf, mastlog.ldf и errorlog.
- Ниже приведены команды для настройки расположения.
- ./mssql-conf set filelocation.masterdatafile /home/user/sqlserver/data/master.mdf
- ./mssql-conf set filelocation.masterlogfile /home/user/sqlserver/data/mastlog.ldf
- Перед настройкой параметров убедитесь, что указанный путь уже существует, а пользователь mssql имеет полный доступ к папке.
- После настройки остановите mssql-server (systemctl stop mssql-server) и переместите master.mdf и mastlog.ldf в настроенное расположение и перезапустите sql server (systemctl start mssql-server).
СЦЕНАРИЙ 2. Предварительная настройка расположения файла базы данных master перед установкой.
- После установки mssql-server (например: apt-get install mssql-server).
- Переменную окружения можно настроить следующим образом:
- export MSSQL_MASTER_DATA_FILE=/home/user/sqlservr/data/master.mdf
- export MSSQL_MASTER_LOG_FILE=/home/user/sqlservr/data/mastlog.ldf
- Или вы можете использовать шаги, описанные в СЦЕНАРИИ 1, чтобы настроить конфигурацию, а затем изменить разрешение папки /var/opt/mssql /, принадлежащей учетной записи mssql. Если вы установите переменную окружения и параметры mssql-conf, переменная окружения будет иметь приоритет.
ПРИМЕЧАНИЕ. Во время установки файл базы данных master должен быть назван "master.mdf", а master журнал должен быть "mastlog.ldf". Имя файла может быть изменено позже.
Если структура папок не создана или у учетной записи mssql нет соответствующих разрешений, то во время установки вы получите следующую ошибку.
Примечание
- ОШИБКА: сбой BootstrapSystemDataDirectories() (HRESULT 0x80070002)
- Не удалось выполнить начальную настройку Microsoft SQL Server. Пожалуйста, ознакомьтесь с ERRORLOG
СЦЕНАРИЙ 3. Изменение имени файлов баз данных Master
- Остановите mssql-server.
- Задание имен файлов с помощью mssql-conf
- Переименование файлов баз данных master в настроенные имена файлов.
- Запустите mssql-server
Ниже приведены команды для изменения имени файлов баз данных master.
Примечание
- systemctl stop mssql-server
- ./mssql-conf set filelocation.masterdatafile /home/sqlservr/data/testmaster.mdf
- ./mssql-conf set filelocation.masterlogfile /home/sqlservr/data/testmastlog.ldf
- mv /home/sqlservr/data/master.mdf /home/sqlservr/data/testmaster.mdf
- mv /home/sqlservr/data/mastlog.ldf /home/sqlservr/data/testmastlog.ldf
- systemctl start mssql-server
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.