SQL Server cambio path database di sistema

Pubblicato da Alessandro Caredda il

Nell’articolo SQL Server cambio path database di sistema, descrivo un attività che ho dovuto affrontare per un cliente.

In notturna, durante il turno in reperibilità, sono stato svegliato per un allarme sugli spazi dei file di dati dei database di sistema dell’istanza SQL Server.

Il tempo di collegarmi, controllo e l’allarme era rientrato in maniera autonoma. Poco male. Chiuso il ticket e tornato a dormire.

Arrivano le 7 di mattina e si ripresenta la stessa situazione. Mi collego, controllo, allarme sparito.
Questa volta però approfondisco l’analisi e capisco subito la causa del problema.

Controllando mi sono accorto che i database sono stati creati sul disco C:\ rispetto al disco dedicato S:\. Oltretutto la dimensione del disco C:\ era malconcia e molto probabilmente gli allarmi sono stati causati dalla dimensione dinamica del page file del sistema operativo.

Quindi ho deciso di spostare i file di dati e dei TLog nella corretta posizione, secondo lo standard aziendale e ho deciso di condividere i passi eseguiti in questo articolo.

L’obbiettivo del tutorial è indicare la modalità per eseguire il cambio path dei file di dati e dei Transaction Log dei database di sistema.

L’attività sembra complicata ma seguendo i seguenti passi sarà più semplice di quanto si pensa.

Come prima operazione cambiamo le informazioni relative alla posizione dei file di dati e dei TLog dei database model e msdb sul database master come indicato di seguito:

USE master
Go
ALTER DATABASE model MODIFY FILE ( NAME = 'modeldev' , FILENAME = 'S:\XXXX_Dati_01\Data\model.mdf' );
Go
ALTER DATABASE model MODIFY FILE ( NAME = 'modellog' , FILENAME = 'S:\XXXX_Log_01\TLog\modellog.ldf' );
Go
ALTER DATABASE msdb MODIFY FILE ( NAME = 'MSDBData' , FILENAME = 'S:\XXXX_Dati_01\Data\MSDBData.mdf' );
Go
ALTER DATABASE msdb MODIFY FILE ( NAME = 'MSDBLog' , FILENAME = 'S:\XXXX_Log_01\TLog\MSDBLog.ldf' );
Go

Una volta terminato procediamo con lo stop dell’istanza attraverso lo stop del servizio SQLServer.
L’operazione può essere eseguita sia dalla finestra dei servizi o dal CMD di windows con il seguente comando:

net stop mssqlserver

Successivamente eseguiamo la copia dei file di dati e dei TLog sulla posizione indicata nei comandi precedenti.
Infine eseguiamo lo start dell’istanza per verificare il corretto posizionamento dei file di sistema appena spostati con il seguente comando:

net start mssqlserver

Ok. I database msdb e model sono stati migrati sul disco dedicato.

Adesso passiamo al database master.

SQL Server cambio path database di sistema

Lo spostamento del database master ha una procedura diversa rispetto agli altri 2 database di sistema.

Andiamo sul menù start di Windows Server, apriamo il Configuration Manager di SQL Server e seguiamo i seguenti passi:

SQL Server Configuration Manager > Destro del mouse sull’istanza SQL Server > Apriamo le proprietà come da seguente immagine:

Scheda Startup Parameters e settare i nuovi parametri editando “Specify a startup parameter” con i nuovi path, comprensivi del nome dei file.


L’unica attenzione a mettere -d attaccato al path dei dati e -l attaccato al path dei TLog.
Per fissare il parametro click su Update e sul bottone Applica.

A questo punto possiamo fermare l’istanza o dai servizi o dal seguente comando:

net stop mssqlserver

Copiare il file di dati e il Transaction Log del database master sulla directory di destinazione.

Una volta terminata la copia possiamo avviare l’istanza o dalla finestra dei servizi o dal CMD di Windows con il seguenti comando:

net start mssqlserver

Se è stato fatto tutto correttamente l’istanza si aprirà senza presentare errori.

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Categorie: SQL Server

0 commenti

Lascia un commento

Segnaposto per l'avatar