KB4053439 - Verbetering: hoofddatabase en foutenlogboekbestand verplaatsen naar een andere locatie in SQL Server 2017 op Linux

Van toepassing op
SQL Server 2017 Developer Linux SQL Server 2017 Enterprise on Linux SQL Server 2017 Enterprise Core on Linux SQL Server 2017 Standard on Linux

Symptomen

U gebruikt SQL Server 2017 op Linux. De hoofddatabase bevindt zich standaard op de locatie /var/opt/mssql/data. Nu wilt u de locatie van het hoofddatabasebestand en het foutenlogboekbestand op een andere locatie instellen.

Oplossing

Deze update is opgenomen in de volgende cumulatieve update voor SQL Server:

Cumulatieve update 4 voor SQL Server 2017

Na de installatie van SQL Server 2017 CU4 kunt u de locatie van het hoofddatabasebestand en de locatie van het foutenlogboekbestand wijzigen.

Over cumulatieve updates voor SQL Server:

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:

Meest recente cumulatieve update voor SQL Server 2017

Meer informatie

Locatie van Errorlogfile configureren:

  • Gebruik de volgende opdracht om een nieuwe locatie voor het foutenlogboek in te stellen. Zorg ervoor dat de mapstructuur vooraf is gemaakt en dat het 'mssql'-account machtigingen heeft om een bestand te maken.

    • ./mssql-conf set filelocation.errorlogfile /home/user/sqlserver/log/errorlog
    • De omgevingsvariabele voor foutenlogboeken is MSSQL_ERROR_LOG_FILE.

Hieronder volgen de scenario's en stappen voor het configureren van de locatie van basisdatabasebestanden:

OPMERKING: Zorg ervoor dat u een volledige back-up maakt van al uw databases, inclusief de hoofddatabase, voordat u wijzigingen aanbrengt.

SCENARIO 1: de locatie van een hoofddatabasebestand op een bestaande SQL-installatie wijzigen.

  • Er zijn nieuwe opties beschikbaar in het hulpprogramma mssql-conf om de locatie van master.mdf, mastlog.ldf en errorlog op te geven.
  • Hieronder volgen de opdrachten voor het instellen van de locatie.
  • ./mssql-conf set filelocation.masterdatafile /home/user/sqlserver/data/master.mdf
  • ./mssql-conf set filelocation.masterlogfile /home/user/sqlserver/data/mastlog.ldf
  • Voordat u de instellingen configureert, moet u ervoor zorgen dat het opgegeven pad al bestaat en of de gebruiker van 'mssql' volledige machtigingen voor de map heeft.
  • Na het configureren van de instelling stopt u mssql-server (systemctl stop mssql-server) en verplaatst u master.mdf en mastlog.ldf naar de geconfigureerde locatie en start u sql server opnieuw op (systemctl start mssql-server).

SCENARIO 2: De locatie van het hoofddatabasebestand vooraf configureren vóór de installatie.

  • Nadat u mssql-server hebt geïnstalleerd (bijv. apt-get install mssql-server).
  • U kunt de omgevingsvariabele als volgt instellen:
  • exporteren MSSQL_MASTER_DATA_FILE=/home/user/sqlservr/data/master.mdf
  • exporteren MSSQL_MASTER_LOG_FILE=/home/user/sqlservr/data/mastlog.ldf
  • U kunt ook de stappen in SCENARIO 1 gebruiken om de configuratie in te stellen en vervolgens de machtiging wijzigen voor de map /var/opt/mssql/ die eigendom is van het mssql-account. Als u instellingen voor de omgevingsvariabele en mssql-conf instelt, heeft de omgevingsvariabele voorrang.

OPMERKING: De bestandsnaam van de stamdatabase moet 'master.mdf' zijn en het stamlogboek moet tijdens de installatie 'mastlog.ldf' zijn. De bestandsnaam kan later worden gewijzigd.

Als de mapstructuur niet wordt gemaakt of als het mssql-account niet over de juiste machtiging beschikt, krijgt u de volgende fout tijdens de installatie.

Opmerking

  • FOUT: BootstrapSystemDataDirectories() fout (HRESULT 0x80070002)
  • De eerste installatie van Microsoft SQL Server is mislukt. Raadpleeg het ERRORLOG

SCENARIO 3: De naam van hoofddatabasebestanden wijzigen

  • Stop mssql-server.
  • De bestandsnamen instellen met behulp van mssql-conf
  • Wijzig de naam van de bestanden van de hoofddatabase in de geconfigureerde bestandsnamen.
  • Start mssql-server

Hieronder vindt u de opdrachten voor het wijzigen van de naam van hoofddatabasebestanden.

Opmerking

  • 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 MSSQL-Server starten

Meer informatie

Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.