Spostare i dati TempDB e i file di registro su una nuova unità sul tuo SQL Server

author
2 minutes, 34 seconds Read

Anche se non è qualcosa che dovresti fare spesso, occasionalmente potresti scoprire che è necessario spostare il tempdb su una nuova unità. Questo scenario si è verificato di recente quando, nel processo di creazione di un server virtuale, sono state create solo 2 unità aggiuntive per me. Poiché è consigliabile inserire i dati, il log e il tempdb su unità separate, mi è stato lasciato il dover mettere temporaneamente il tempdb sull’unità E:\ quando inizialmente si configura la nuova installazione di SQL Server.

Alla fine la nuova unità, la chiameremo R:\, è stata aggiunta al server e ora avevo bisogno di spostare tempdb su questa unità.

In questo caso sapevo già dove si trovava il mio tempdb, ma questo potrebbe non essere sempre il caso. Il primo passo da fare quando si sposta tempdb su una nuova unità è verificare la posizione corrente. Il seguente script può essere usato per fare proprio questo.

Verificare la Posizione di TempDB

Transact-SQL

1
2
3
4
5
6

UTILIZZARE
SELEZIONARE nome ‘Nome’,
physical_name COME “Luogo Fisico’,
state_desc COME ‘Stato’
DA sys.master_files
DOVE database_id = DB_ID (‘tempdb’)

Questo script restituirà il nome, la posizione fisica e lo stato corrente dei dati tempdb e dei file di registro. I risultati dovrebbero assomigliare a questo:

TempDBLocation_Results

Ora che ho confermato la posizione dei dati tempdb e dei file di registro, il mio prossimo passo sarà spostarli nella nuova posizione. Prima di spostarli voglio assicurarmi di aver creato tutte le cartelle necessarie sulla nuova unità. Nell’esempio qui sotto li sto mettendo nel R:\SQL cartella quindi avrei bisogno di creare una cartella denominata SQL sull’unità R:\.

Lo script sottostante può essere utilizzato per modificare la posizione sia dei dati tempdb che dei file di log tempdb. È possibile modificare la sezione FILENAME in modo che corrisponda alla posizione scelta.

Modifica dati del database TempDB e la posizione del file di log

Transact-SQL

1
2
3
4
5
6
7
8
9
10

UTILIZZARE
ALTER DATABASE tempdb
MODIFICARE il FILE (NOME = tempdev,
NOMEFILE = ‘R:\SQL\tempdb.mdf’)
VAI
MODIFICA DATABASE tempdb
MODIFICA FILE (NAME = templog,
FILENAME = ‘R:\SQL\templog.ldf’)
VAI

Il passaggio finale consiste nel riavviare l’istanza di SQL Server. È possibile farlo facendo clic destro sul nome di SQL Server in Esplora oggetti e selezionando per interrompere, quindi avviare il servizio o aprendo SQL Server Configuration Manager e farlo da lì. Preferisco usare SQL Server Configuration Manager per questo dato che ho avuto problemi nel trattare i servizi quando sono connessi in remoto a SQL Server tramite Management Studio. Anche se raro, è successo abbastanza da incoraggiarmi ad accedere sempre direttamente al server per avviare / interrompere i servizi.

Una volta che il servizio è di nuovo attivo e funzionante, è possibile rieseguire il primo script per confermare la nuova posizione dei dati TempDB e dei file di registro.

I passaggi precedenti possono essere utilizzati anche per spostare i database msdb e model system. Dovrai solo modificare i valori ALTER DATABASE, NAME e FILENAME per puntare al database applicabile. Se vuoi spostare il database master richiede un approccio leggermente diverso. Per ulteriori informazioni su questo è possibile fare riferimento al mio post sullo spostamento del database del sistema master in una nuova posizione in SQL Server.

Similar Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.