Objawy
Załóżmy, że używasz programu SQL Server 2017 w systemie Linux. Domyślnie, główna baza danych znajduje się w lokalizacji /var/opt/mssql/data. Teraz chcesz zmienić lokalizację głównego pliku bazy danych i pliku dziennika błędów na inną lokalizację.
Rozwiązanie
Ta aktualizacja jest częścią następującej aktualizacji zbiorczej dla programu SQL Server:
Aktualizacja zbiorcza 4 dla programu SQL Server 2017
Po zainstalowaniu programu SQL Server 2017 CU4 będzie można zmienić lokalizację głównego pliku bazy danych oraz lokalizację pliku dziennika błędów.
Informacje o aktualizacjach zbiorczych programu SQL Server:
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017
Więcej informacji
Skonfiguruj lokalizację pliku Errorlogfile:
Użyj następującego polecenia, aby ustawić nową lokalizację dziennika błędów. Upewnij się, że struktura folderów została wstępnie utworzona, a konto "mssql" ma uprawnienia do tworzenia pliku.
- ./mssql-conf set filelocation.errorlogfile /home/user/sqlserver/log/errorlog
- Zmienna środowiskowa dziennika błędów jest MSSQL_ERROR_LOG_FILE.
Poniżej przedstawiono scenariusz i kroki konfigurowania lokalizacji podstawowych plików bazy danych:
UWAGA: Przed wprowadzeniem jakichkolwiek zmian upewnij się, że wykonano pełną kopię zapasową wszystkich baz danych, w tym głównej bazy danych.
SCENARIUSZ 1: zmień lokalizację głównego pliku bazy danych w istniejącej instalacji SQL.
- Nowe opcje są dostępne w narzędziu mssql-conf, aby zapewnić lokalizację master.mdf, mastlog.ldf i dziennika błędów.
- Poniżej przedstawiono polecenia służące do ustawiania lokalizacji.
- ./mssql-conf set filelocation.masterdatafile /home/user/sqlserver/data/master.mdf
- ./mssql-conf set filelocation.masterlogfile /home/user/sqlserver/data/mastlog.ldf
- Przed rozpoczęciem konfigurowania ustawień upewnij się, że podana ścieżka już istnieje, a użytkownik "mssql" ma pełne uprawnienia do tego folderu.
- Po skonfigurowaniu ustawienia zatrzymaj mssql-server (systemctl, zatrzymaj mssql-server) i przenieś master.mdf oraz mastlog.ldf do skonfigurowanej lokalizacji i uruchom ponownie serwer sql (systemctl, uruchom mssql-server).
SCENARIUSZ 2: Wstępne skonfigurowanie lokalizacji głównego pliku bazy danych przed instalacją.
- Po zainstalowaniu mssql-server (np. apt-get zainstaluj mssql-server).
- Zmienną środowiskową można skonfigurować w następujący sposób:
- export MSSQL_MASTER_DATA_FILE=/home/user/sqlservr/data/master.mdf
- export MSSQL_MASTER_LOG_FILE=/home/user/sqlservr/data/mastlog.ldf
- Możesz też wykonać kroki wymienione w SCENARIUSZU 1, aby ustawić konfigurację, a następnie zmienić uprawnienia folderu /var/opt/mssql/ , który jest własnością konta mssql. Jeśli ustawisz zmienną środowiskową i ustawienia mssql-conf, zmienna środowiskowa będzie miała pierwszeństwo.
UWAGA: Podczas instalacji nazwa pliku głównej bazy danych powinna brzmieć "master.mdf", a głównym dziennikiem powinien być "mastlog.ldf". Nazwa pliku może zostać później zmieniona.
Jeśli struktura folderów nie została utworzona lub konto mssql nie ma odpowiednich uprawnień, podczas instalacji pojawi się następujący błąd.
Uwaga
- BŁĄD: Błąd BootstrapSystemDataDirectories() (HRESULT 0x80070002)
- Początkowa konfiguracja SQL Server firmy Microsoft nie powiodła się. Zapoznaj się z DZIENNIKIEM BŁĘDÓW
SCENARIUSZ 3: zmienianie nazw plików głównej bazy danych
- Zatrzymaj polecenie mssql-server.
- Ustaw nazwy plików za pomocą mssql-conf
- Zmień nazwy plików głównej bazy danych na skonfigurowane nazwy plików.
- Uruchom mssql-server
Poniżej przedstawiono polecenia służące do zmieniania nazw plików głównych baz danych.
Uwaga
- 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
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.