KB4053439 - Улучшение. Перемещение базы данных и файла журнала master другое место в SQL Server 2017 в Linux

Применяется к
SQL Server 2017 Developer Linux SQL Server 2017 Enterprise on Linux SQL Server 2017 Enterprise Core on Linux SQL Server 2017 Standard on Linux

Проблема

Предположим, что вы используете 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

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.