Sintomi
Supponiamo che tu usi SQL Server 2017 su Linux. Per impostazione predefinita, il database master si trova nella posizione /var/opt/MSSQL/data.A questo punto, si vuole modificare la posizione del file del database master e del file di log degli errori in una posizione diversa.
Risoluzione
Questo aggiornamento è incluso nell'aggiornamento cumulativo seguente per SQL Server:
Aggiornamento cumulativo 4 per SQL Server 2017
Dopo l'installazione di SQL Server 2017 CU4, è possibile modificare la posizione del file del database master e della posizione del file di log degli errori.
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Ulteriori informazioni
Configurare la posizione di ErrorLogFile:
-
Usare il comando seguente per impostare la posizione del nuovo log degli errori. Verificare che la struttura della cartella sia precreata e che l'account "MSSQL" disponga delle autorizzazioni per la creazione di file.
-
./MSSQL-conf set filelocation. ErrorLogFile/Home/User/SqlServer/log/ErrorLog
-
La variabile di ambiente per il log degli errori è MSSQL_ERROR_LOG_FILE.
-
Di seguito sono riportati gli scenari e i passaggi per configurare la posizione dei file di base anagrafici:
Nota: assicurati di eseguire il backup completo di tutti i database, incluso il database master, prima di apportare le modifiche desiderate.
SCENARIO 1: modificare la posizione del file di database master nell'installazione di SQL esistente.
-
Le nuove opzioni sono disponibili nell'utilità MSSQL-conf per specificare la posizione di master. MDF, Mastlog. ldf e log degli errori.
-
Di seguito sono riportati i comandi per impostare la posizione.
-
./MSSQL-conf set filelocation. masterdatafile/Home/User/SqlServer/Data/Master.MDF
-
./MSSQL-conf set filelocation. masterlogfile/Home/User/SqlServer/data/Mastlog.ldf
-
Prima di configurare le impostazioni, assicurati che il percorso sia già disponibile e che l'utente di MSSQL disponga dell'autorizzazione completa per la cartella.
-
Dopo aver configurato l'impostazione, Interrompi MSSQL-Server (systemctl stop MSSQL-Server) e sposta master. mdf e mastlog. ldf nella posizione configurata e riavvia SQL Server (systemctl Start MSSQL-Server).
SCENARIO 2: pre-configurare la posizione del file di database master prima dell'installazione.
-
Dopo l'installazione di MSSQL-Server (es: apt-get install MSSQL-Server).
-
È possibile impostare la variabile di ambiente come indicato di seguito:
-
esportare MSSQL_MASTER_DATA_FILE =/Home/User/sqlservr/Data/Master.MDF
-
esportare MSSQL_MASTER_LOG_FILE =/Home/User/sqlservr/data/Mastlog.ldf
-
In alternativa, è possibile usare la procedura descritta nello SCENARIO 1 per impostare la configurazione, quindi modificare l'autorizzazione della cartella /var/opt/MSSQL/ di proprietà dell'account MSSQL. Se si impostano le impostazioni della variabile di ambiente e di MSSQL-conf, la variabile d'ambiente avrà la precedenza.
Nota: il nome del file della base di dati master deve essere "master. mdf" e il log master deve essere "Mastlog. ldf" durante l'installazione. Il nome del file può essere modificato in un secondo momento.
Se la struttura delle cartelle non è stata creata o l'account di MSSQL non ha l'autorizzazione giusta, viene visualizzato un messaggio di errore durante l'installazione.
ERRORE: BootstrapSystemDataDirectories () failure (HRESULT 0x80070002)
La configurazione iniziale di Microsoft SQL Server non è riuscita. Consulta il log degli errori
SCENARIO 3: modificare il nome dei file di database master
-
Interrompi MSSQL-Server.
-
Impostare i nomi dei file usando MSSQL-conf
-
Rinominare i file di database master in nomi di file configurati.
-
Avviare MSSQL-Server
Di seguito sono riportati i comandi per modificare il nome dei file di database 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
Riferimenti
Informazioni sulla terminologiautilizzata da Microsoft per descrivere gli aggiornamenti software.